quartus管脚分配后需要保存吗_掉电保存数据到EEPROM
我想在掉電時保存數據(3 個字節)到 EEPROM 中,用 BOD掉電檢測,不知怎樣使用。望高手指點:
1. 在 BOOT 區設置好 BODEN,BODLEVEL,后軟件還要怎樣設置?
2. 掉電中斷是否是產生復位?我的寫 EEPROM 程序應該放在什么地方?他和其他復位怎樣區別?
3. 設置了 BOOT 區后,硬件上是否要加電源到一個管腳比較后才產生中斷?
掉電檢測 BOD 的誤解
AVR自帶的 BOD(Brown-out Detection)電路,作用是在電壓過低(低于設定值)時產生復位信號,防止 CPU 意外動作 .
對 EEPROM 的保護作用是當電壓過低時保持 RESET 信號為低,防止 CPU 意外動作,錯誤修改了 EEPROM 的內容
而我們所理解的掉電檢測功能是指 具有預測功能的可以進行軟件處理的功能。
例如,用戶想在電源掉電時把 SRAM 數據轉存到 EEPROM,可行的方法是外接一個在 4.5V 翻轉的電壓比較器(VCC=5.0V,BOD=2.7V),輸出接到外部中斷引腳(或其他中斷),一但電壓低于 4.5V,馬上觸發中斷,在中斷服務程序中把數據寫到 EEPROM 中保護起來。
注意: 寫一個字節的 EEPROM 時間長達 8mS,所以不能寫入太多數據,電源濾波電容也要選大一些。將 AVR 的 BOD 設為 2.7V,從 4.5v 到 2.7 這段時間寫 EEPROM。掉電檢測使用 IMP809。
參考電路如下:
在圖中,外部 9V 電源通過 7805 穩壓到 5V,作為系統電源使用。而 AVR 的工作電源則是單獨提供的,由 5v 系統電源通過低壓差肖特基二極管 1N5817 后得到。IN5817 的正向壓降為 0.3v,因此,AVR 的工作電壓為 4.7v。電源監控芯片 IMP809-L 的監控電壓為 4.63V,當系統電源的電壓低于 4.63V 時,在 R 腳上產生由高電平到低電平的變化,使 AVR 進入 INT0 中斷。
該電路的工作原理為:首先通過配置 AVR 的熔絲位,設置 BOD 掉電檢測電壓門限為 2.7V,并允許 BOD 檢測。因此,當 AVR 的 Vcc 電壓掉到 2.7v 以下時,AVR 就停止工作(掉電檢測功能是 AVR 片內的功能之一,見第二章的 2.6.2 AVR 的復位源和復位方式)。電源監控芯片 IMP809-L 檢測電壓門限為 4.63v,用于檢測系統電源的電壓。當系統電源大于 4.63v 時,IMP809-L 的 R 端輸出高電平,整個系統正常工作。當系統電源的電壓跌到 4.63v 以下時,IMP809-L 的 R 腳輸出低電平,作為 AVR 外部中斷 INT0 的申請。INT0 設計為掉電處理中斷,其主要任務是備份系統運行的重要數據到 EEPROM 中。
在提供 AVR 工作的電源系統中,大容量的電解電容C4 作為儲能電容,一旦系統電源電壓下降,二極管 1N5817 截止,此時 AVR 可以靠 C4 提供的電儲可以繼續工作一段時間。C4 容量應足夠大,在系統電源掉電過程中,IMP809-L 的 R 端輸出低電平(下降到 4.63v)時,要能夠保證維持 AVR 的工作電壓 Vcc 從 4.7v 降到 2.7V 的時間超過 300ms,使 AVR 有時間做緊急處理和備份數據。AVR 寫 EEPROM 大約需要 50-100mA 的電流,所以電容 C4 的值應該在 1000u~4700u,需要保存的數據越多,C4 的容量應該越大。
C4 的大小取決于 CPU 的型號即 Icc 的大小,由 D1,C4 單獨為 CPU 供電是關鍵 .
總結
以上是生活随笔為你收集整理的quartus管脚分配后需要保存吗_掉电保存数据到EEPROM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 螺钉装弹垫平垫机器人_【经验总结】什么时
- 下一篇: ArcGIS Engine开发之量测功能