新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR掉電保護(hù)電路設(shè)計(jì)圖剖析 —電路圖天天讀(221)

AVR掉電保護(hù)電路設(shè)計(jì)圖剖析 —電路圖天天讀(221)

作者: 時(shí)間:2017-10-28 來源:網(wǎng)絡(luò) 收藏

  AVR自帶的BOD電路,作用是在電壓過低(低于設(shè)定值)時(shí)產(chǎn)生復(fù)位信號,防止CPU意外動(dòng)作。對EEPROM的保護(hù)作用是當(dāng)電壓過低時(shí)保持RESET信號為低,防止CPU意外動(dòng)作,錯(cuò)誤修改了EEPROM的內(nèi)容而我們所理解的掉電檢測功能是指具有預(yù)測功能的可以進(jìn)行軟件處理的功能。

本文引用地址:http://m.butianyuan.cn/article/201710/369043.htm

  例如,用戶想在電源掉電時(shí)把數(shù)據(jù)轉(zhuǎn)存到EEPROM,可行的方法是外接一個(gè)在4.5V翻轉(zhuǎn)的電壓比較器 (VCC=5.0V,BOD=2.7V),輸出接到外部中斷引腳(或其他中斷),一但電壓低于4.5V,馬上觸發(fā)中斷,在中斷服務(wù)程序中把數(shù)據(jù)寫到 EEPROM中保護(hù)起來注意:寫一個(gè)字節(jié)的EEPROM時(shí)間長達(dá)8mS,所以不能寫入太多數(shù)據(jù),電源濾波電容也要選大一些,將AVR的BOD設(shè)為2.7V,從4.5v到2.7這段時(shí)間寫EEPROM。

  

  在圖中,外部9V電源通過7805穩(wěn)壓到5V,作為系統(tǒng)電源使用。而AVR的工作電源則是單獨(dú)提供的,由5v系統(tǒng)電源通過低壓差肖特基二極管1N5817后得到。IN5817的正向壓降為0.3v,因此,AVR的工作電壓為4.7v。電源監(jiān)控芯片IMP809-L的監(jiān)控電壓為4.63V,當(dāng)系統(tǒng)電源的電壓低于4.63V時(shí),在R腳上產(chǎn)生由高電平到低電平的變化,使AVR進(jìn)入INT0中斷。

  該電路的工作原理為:首先通過配置AVR的熔絲位,設(shè)置BOD掉電檢測電壓門限為2.7V,并允許BOD檢測。因此,當(dāng)AVR的Vcc電壓掉到2.7v以下時(shí),AVR就停止工作。電源監(jiān)控芯片IMP809-L檢測電壓門限為4.63v,用于檢測系統(tǒng)電源的電壓。當(dāng)系統(tǒng)電源大于4.63v 時(shí),IMP809-L的R端輸出高電平,整個(gè)系統(tǒng)正常工作。當(dāng)系統(tǒng)電源的電壓跌到4.63v以下時(shí),IMP809-L的R腳輸出低電平,作為AVR外部中斷INT0的申請。INT0設(shè)計(jì)為掉電處理中斷,其主要任務(wù)是備份系統(tǒng)運(yùn)行的重要數(shù)據(jù)到EEPROM中。在提供AVR工作的電源系統(tǒng)中,大容量的電解電容C5作為儲(chǔ)能電容,一旦系統(tǒng)電源電壓下降,二極管1N5817截止,此時(shí)AVR可以靠C5 提供的電儲(chǔ)可以繼續(xù)工作一段時(shí)間。C5容量應(yīng)足夠大,在系統(tǒng)電源掉電過程中,IMP809-L的R端輸出低電平(下降到4.63v)時(shí),要能夠保證維持 AVR的工作電壓Vcc從4.7v降到2.7V的時(shí)間超過300ms,使AVR有時(shí)間做緊急處理和備份數(shù)據(jù)。AVR寫EEPROM大約需要 50-100mA的電流,所以電容C5的值應(yīng)該在1000u~4700u,需要保存的數(shù)據(jù)越多,C5的容量應(yīng)該越大。

  INT0是AVR優(yōu)先級最高的中斷,采用外部電平變化的下降沿觸發(fā)方式。一旦IMP809-L的R腳電平由正常的高電平變?yōu)榈碗娖綍r(shí),將觸發(fā)INT0中斷,進(jìn)入INT0掉電中斷服務(wù)程序。

  在INT0掉電保護(hù)中斷服務(wù)程序中,應(yīng)按以下的步驟和過程處理:

  緊急處理,關(guān)閉所有外部器件的工作,或?qū)⑼獠繝顟B(tài)設(shè)置到安全模式,如關(guān)閉馬達(dá)、開關(guān)等,保證系統(tǒng)不出事故;將AVR所有I/O設(shè)置為輸入方式,最大程度的減少AVR芯片對電源的消耗;循環(huán)檢測INT0引腳是否恢復(fù)高電平。如為高電平則轉(zhuǎn)到下一步E執(zhí)行;如果INT0電平一直為低,程序?qū)⒃诖搜h(huán),直到完全停止運(yùn)行(因?yàn)閮?chǔ)能電容C5的電壓低于2.7v后,AVR的BOD起作用,產(chǎn)生內(nèi)部復(fù)位,AVR停止運(yùn)行程序);再次檢測INT0引腳電平。為低電平時(shí)轉(zhuǎn)回D再次循環(huán)檢測;為高電平時(shí)繼續(xù)向下執(zhí)行(這種情況表示系統(tǒng)電源受到干擾或短時(shí)掉電,現(xiàn)已經(jīng)恢復(fù)正常);恢復(fù)外部器件工作(此時(shí)盡管進(jìn)入了掉電保護(hù)程序,但AVR在C5的維持下,一直正常工作,所有的數(shù)據(jù)并沒有破壞,可以繼續(xù)進(jìn)行工作);

  編輯點(diǎn)評:在實(shí)際應(yīng)用中,系統(tǒng)斷電保護(hù)的設(shè)計(jì)是一個(gè)比較難的問題,實(shí)現(xiàn)的方法和手段也有不同。這個(gè)設(shè)計(jì)主要是作為一個(gè)使用外部中斷的例子,讓讀者可以從中體會(huì)到如何合理和正確的使用外部中斷。

電子發(fā)燒友六月《嵌入式技術(shù)特刊》,更多優(yōu)質(zhì)內(nèi)容,馬上下載閱覽



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉