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