前不久有朋友大概問了這么一個問題:博主,在復雜的環境下,干擾有點大,有必要外接一個復位IC嗎?
1 寫在前面
我們都知道在復雜環境,比如一些工廠,特別是在有大型機電設備的環境下,我們的電源信號、通信信號都有可能受到干擾。
那么,在這種情況下,我們軟件和硬件都有必要做一定預防處理。
除了需要外接復位IC,同時,為了系統能穩定長期的工作,我們可能還有必要添加看門狗。
本文就圍繞復位IC、看門狗展開相關內容的講解。
2
MCU電路為什么要使用復位芯片?
STM32都有一個最低工作電壓(比如1.8V),當電源電壓跌落到低于MCU所要求的最低值時,MCU工作可能發生混亂,造成程序跑飛,引起整機死機、誤動作等現象。
使用復位IC的原理是通過確定的電壓值(閾值)啟動復位操作,同時排除瞬間干擾的影響,又有防止MCU在電源啟動和關閉期間的誤操作,保證數據安全。
3
看門狗設計和復位
STM32具有IWDG獨立看門狗、WWDG窗口看門狗兩種類型的看門狗。
獨立看門狗由專用的低速時鐘(LSI)驅動,即使主時鐘發生故障它也仍然有效。而窗口看門狗由從APB1時鐘分頻后得到的時鐘驅動,通過可配置的時間窗口來檢測應用程序非正常的過遲或過早的操作。
看門狗復位就是超過一定時間沒有喂狗,看門狗就會發出一個復位信號。
4
看門狗和復位IC同時存在的注意事項
之前有工程師遇到一個問題:STM32外接了復位IC,發現自己的看門狗不起作用,也就是說看門狗不能復位。
這個問題可能很少有人遇到過,我這里就先給大家講講原因,避免以后你以后入坑。
想要明白這里面原因,就需要對復位電路結構和原理做一定的了解。
1.STM32復位
1. NRST引腳上的低電平(外部復位)
2. 窗口看門狗計數終止(WWDG復位)
3. 獨立看門狗計數終止(IWDG復位)
4. 軟件復位(SW復位)
5. 低功耗管理復位
STM32復位內部結構圖
出現問題的電路圖如下:
如果外界了復位IC,這里就需要大家認真看上面兩圖。
一個重要的信息:外接復位IC驅動類型為 CMOS 推拉型驅動。
相信大家看到這里已經明白了為什么。其實,解決辦法就是:將電路中0Ω電阻改為 1K 電阻。
本文就講到這里,希望你以后遇到類似問題,不再有犯這種低級的錯誤。
推薦閱讀與復位相關的文章:
1.STM32片上外設時鐘使能、失能和復位的區別
2.STM32復位類型/來源
3.有一種修飾符能使變量在處理器復位而不被初始化
4.STM32內核復位與系統復位區別及應用