欠壓復位(以下稱為BOR)是單片機可靠性的一項重要功能,通常用于解決電源問題,下面將介紹欠壓復位的另一個問題。
單片機的“電量不足”是電源電壓不足或暫時降低,低于可靠運行所需的水平。許多單片機具有保護電路,該電路可檢測電源電壓何時低于此水平,并將設備置于復位狀態,以確保在電源恢復時正確啟動。此操作也稱為“欠壓復位”,英文縮寫為“BOR”。類似的功能稱為低電壓檢測(LVD),它更復雜,增加了對多個電壓電平的檢測,可以在觸發復位之前產生中斷。
BOR通常由控制寄存器中的某個位使能。通常,當BOR引起復位時,狀態位會置1。該狀態位在復位后仍然有效,并允許程序檢測到問題并執行其他恢復或記錄事件。
如果BOR被禁用會怎樣?一般情況下,其表現為電源電壓穩定下降。至于原因,可能是電源老化或電池放電。
如上圖所示,V1是正常電源電壓。V2是微控制器可能無法可靠運行的點。我將V3顯示為操作完全停止的點。在V2和V3之間是一個“危險區域”,在該區域可能發生錯誤并且操作不可靠。當電源進出危險區域時,該設備可以正常工作數年,然后損壞!出現故障。BOR級別設置為高于V2,并通過復位設備來代替危險區域。重置不太可靠,但總比不確定好。接下來,我介紹一種情況,其中電源正常運行,但使用BOR解決了另一個問題。
當電源關閉時,電壓不會一直下降。相反,其他電源將電源電壓保持在危險區域。這種電壓的另外一種叫法是“虛假電量”。目前,沒有BOR可以檢測到這種情況并引起復位。再次打開電源時,設備可能無法正常上電,因為可能不會觸發上電復位電路。由于電源電壓低于最小值并且沒有復位,因此后續操作不確定。
以Microchip的單片機為例,在驗證是本人用的是PIC16F877-20I/L。這該單片機是工業版本,工作溫度范圍為-40°C至+85°C。采用16MHz時鐘時,電源范圍為+4.0V至+5.5V。模塊內部的工作電壓(V1)是+5V。顯示器顯示的是,單片機(V2)上的虛假電量電壓約為+1.5V。
還有其他兩種情況,“RAM數據保持電壓(VDR)”為+1.5V,“典型值”?!癡DD啟動電壓”(VPOR)以確保內部上電復位為0V,“典型值”。將所有這些情況加在一起可以告訴我們,該設備處于危險區域之內。由于電壓遠高于此電壓,因此無法預期上電復位(VPOR)。此外,由于虛假電量處于RAM保持電壓下,因此也無法預期的欠壓會使設備保持活動狀態(VDR)。誰知道設備的其余部分在做什么?
為什么打開BOR可以解決此問題?欠壓復位觸發規范(VBOR)的范圍是+3.7V至+4.35V,典型值為+4.0V。虛假電量電平遠低于BOR的觸發電壓。問題解決了。但是,為什么微控制器在實驗室中可以正常工作并以許多次電源循環正常運行仍然是個謎。
總結,虛假電量可能有幾種情況:外部信號,電路中的多個電源,電容器需要時間才能完全放電。