PIC單片機內(nèi)部掉電鎖定復(fù)位
1.設(shè)計思路
在單片機應(yīng)用系統(tǒng)中,如果采用干電池或者充電電池供電,則存在電池電壓不斷下降的問題,如果采用市電供電,則存在著電壓波動和電源干擾的問題。
電源電壓的不穩(wěn)定,是造成單片機執(zhí)行程序發(fā)生混亂甚至死機的重要原因之一。所以,許多著名半導(dǎo)體制造公司為此目的研制了名叫“電壓檢測器”或者“uP監(jiān)控器”的專用集成電路。
在PIC系列單片機中,有許多型號內(nèi)部就集成了這項功能(BOR)電路,如PIC16F87X。因此,對于PIC單片機的開發(fā)者來說,就可以免用外加專用集成電路,降低了成本,簡化了電路。
掉電鎖定復(fù)位時序如圖1所示,圖中均用高電平表示有效的內(nèi)部復(fù)位信號,該圖描繪了3種不同的情況。
圖1 掉電鎖定復(fù)位時序
· 電源電壓產(chǎn)生了一次獨立的瞬間跌落,在VDD下降到門檻的下限值BVDDmax時,迫使芯片進入復(fù)位狀態(tài),當(dāng)VDD回升到門檻的上限值BVDDmax時,再延時72ms使單片機脫離復(fù)位狀態(tài)。
· 兩次鄰近的電壓跌落,其時間間隔不大于72ms。
· 電壓跌落狀態(tài)維持了較長的一段時間。
2.電路設(shè)計
利用掉電復(fù)位(BOR,brown-out reset),可以為單片機提供電源跌落的預(yù)警信號。一旦發(fā)現(xiàn)VDD下降到某一個門檻值時,就使單片機及時復(fù)位以免系統(tǒng)失控。這個復(fù)位狀態(tài)一直保持到VDD重新上升到門檻值以上之后。
在PIC單片機中,把實現(xiàn)該功能的電路稱作掉電鎖定復(fù)位電路。與掉電鎖定復(fù)位有關(guān)的硬件電路如圖2所示,由圖可以看出,內(nèi)部BOR功能是啟用還是禁止,可以通過系統(tǒng)配置字的BODEN位來設(shè)定。
圖2 掉電鎖定復(fù)位硬件電路
當(dāng)VDD降低到一個特定電壓值BVDD以下時,鎖定復(fù)位電路將單片機推入并且鎖定在復(fù)位狀態(tài)上;當(dāng)VDD回升到BVDD電壓值以上時,定時器PWRT被啟動,開始延時72ms,然后才脫離復(fù)位狀態(tài)而進入程序運行狀態(tài)。
掉電復(fù)位期間,不會改變各寄存器的值(電源控制寄存器PCON中的掉電鎖定復(fù)位標(biāo)志位BOR被清0除外),原因是這種復(fù)位的目的是使系統(tǒng)在電源恢復(fù)正常之后能夠繼續(xù)運行,因此,應(yīng)該使各個寄存器的內(nèi)容維持原狀。