STM32芯片的ADC模塊往往都支持模擬看門狗功能,即可以對(duì)單個(gè)或多個(gè)通道開啟模擬轉(zhuǎn)換值的監(jiān)測(cè)。當(dāng)模擬通道ADC值超出設(shè)定的閾值時(shí)可以產(chǎn)生模擬看門狗事件并可觸發(fā)看門狗中斷。【注:下面截圖或數(shù)據(jù)都是基于STM32L4系列芯片的,其它STM32系列與其類似。】


結(jié)合上圖,當(dāng)選定的ADC通道的轉(zhuǎn)換結(jié)果比設(shè)置的閾值上限還高或比設(shè)定的閾值下限還低時(shí)都可以通過硬件觸發(fā)模擬看門狗事件或中斷。

假設(shè)現(xiàn)有STM32用戶有這樣一個(gè)應(yīng)用需求,他希望STM32的供電電壓低于一定程度時(shí)就提示低壓報(bào)警,然后軟件將進(jìn)行相關(guān)處理。
關(guān)于這個(gè)應(yīng)用需求,我們就可以利用片內(nèi)的一個(gè)參考電壓和模擬看門狗來實(shí)現(xiàn)。
我們知道,STM32芯片內(nèi)部都內(nèi)置了一個(gè)比較穩(wěn)定的內(nèi)部參考電壓,即VREFINT。它的電壓值一般在1.2v上下,每顆芯片之間可能存在差異。該電壓信號(hào)固定與某ADC通道在片內(nèi)相連。ST公司在芯片出廠時(shí)對(duì)所有芯片的這個(gè)內(nèi)部參考電壓都做了ADC轉(zhuǎn)換值的準(zhǔn)確測(cè)量,得到一個(gè)校準(zhǔn)值。測(cè)量是在常溫條件下,ADC參考電壓vdda=vref+為3.0V的條件下進(jìn)行,結(jié)果存儲(chǔ)在特定地址。
下圖是STM32L4系列芯片的數(shù)據(jù)手冊(cè)中對(duì)VREFINT的ADC校準(zhǔn)值的測(cè)試條件及其存放地址的信息。

我們通過讀出芯片特定存儲(chǔ)地址的VREFINT轉(zhuǎn)換值,進(jìn)而可以求算出它的具體電壓值。我從手邊一塊STM32L4開發(fā)板讀取相應(yīng)地址的內(nèi)容,如下面截圖所示:

我們從圖中可知VERFINT的ADC值為0x067c,據(jù)此可以反求出它的電壓值:【這里是12位ADC分辨率,據(jù)資料可知校準(zhǔn)測(cè)試時(shí)的VDDA=3V。后面都以該芯片數(shù)據(jù)展開】
0xfff:3.0 = 0x067c:VREFINT
根據(jù)上式可以得到該芯片的VREFINT為1.216v。
在較寬泛的芯片供電范圍內(nèi),該內(nèi)部參考電壓值是個(gè)比較穩(wěn)定而準(zhǔn)確的數(shù)據(jù)。現(xiàn)在假設(shè)目前的應(yīng)用場(chǎng)景滿足VDDA=VDD,VDD在使用過程中會(huì)隨時(shí)間慢慢下降,當(dāng)VDD低到一定程度時(shí)需告警并需軟件提前做些處理。

盡管VDDA/VDD在變,但VDDA始終是ADC模塊的基準(zhǔn)電壓,它對(duì)應(yīng)的ADC值始終是滿量程值【0xfff】,另外VREFINT的電壓值也沒變,不過隨著VDDA的變化,VREFINT所對(duì)應(yīng)ADC值會(huì)一直在變化。但在任一時(shí)刻下面的關(guān)系式總是成立的【當(dāng)然,電源電壓至少要保障芯片能正常工作】:
VDDA:4095 = VREFINT:Adc_vrefint
上式中的Adc_vrefint為VREFINT在當(dāng)前VDDA條件下所對(duì)應(yīng)的ADC值,VREFINT為前面計(jì)算出來的電壓值1.216v.
不難理解,對(duì)于同一VREFINT,隨著VDDA的不斷走低,它所對(duì)的轉(zhuǎn)換值則是不斷走高。
假設(shè)當(dāng)VDDA低到2.65V時(shí)告警,我們可將上式中的VDDA換成2.65v,即可求出VREFINT此時(shí)所對(duì)應(yīng)ADC值,經(jīng)計(jì)算此時(shí)Adc_vrefint等于1879。也就是說,當(dāng)VREFINT的所對(duì)應(yīng)的ADC轉(zhuǎn)換值等于1879時(shí),VDDA就降到了2.65V.當(dāng)VREFINT的轉(zhuǎn)換值大于1879時(shí),意味著VDDA比2.65V還要低。【具體使用時(shí)可以考慮一定裕量】
基于上述原理,我們開啟VREFINT通道的模擬看門狗功能,擬定出合適的模擬看門狗的閾值。結(jié)合剛才的描述,1879就可以做VREFINT通道模擬看門狗的閾值上限,當(dāng)VREFINT的轉(zhuǎn)換值大于1879時(shí)就會(huì)產(chǎn)生模擬看門狗事件及中斷。
下圖是使用STM32CubeMx進(jìn)行相關(guān)配置的部分截圖。

上面主要基于STM32芯片和一個(gè)特定應(yīng)用需求,大致介紹了如何使用片內(nèi)參考電壓實(shí)現(xiàn)模擬看門狗的基本思路,同時(shí)也順便介紹了基于內(nèi)部參考電壓對(duì)芯片電源進(jìn)行監(jiān)測(cè)的方案。當(dāng)然,有人可能注意到了,有關(guān)芯片電源監(jiān)測(cè)話題前面也專門分享過,但沒提模擬看門狗的內(nèi)容。
-
看門狗
+關(guān)注
關(guān)注
10文章
610瀏覽量
72932 -
adc
+關(guān)注
關(guān)注
100文章
7511瀏覽量
555907 -
STM32
+關(guān)注
關(guān)注
2309文章
11162瀏覽量
373399
原文標(biāo)題:ADC模擬看門狗應(yīng)用方案介紹
文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
STM32中的獨(dú)立看門狗和窗口看門狗是什么
什么是模擬看門狗?模擬看門狗有什么用處?
stm32看門狗時(shí)間計(jì)算 獨(dú)立看門狗和窗口看門狗的特性是什么
什么是stm32看門狗?獨(dú)立看門狗和窗口看門狗工作原理解析
STM32看門狗配置(獨(dú)立看門狗IWDG和窗口看門狗WWDG)
STM32的看門狗配置詳情解說
stm32看門狗復(fù)位技巧編輯
基于STM32、FreeRTOS 實(shí)現(xiàn)硬件看門狗+軟件看門狗監(jiān)測(cè)多任務(wù)的方法
stm32看門狗的特點(diǎn)是什么
STM32 ADC模擬看門狗及其應(yīng)用
STM32:獨(dú)立看門狗、窗口看門狗的配置
STM32中的獨(dú)立看門狗和窗口看門狗
詳解獨(dú)立看門狗的實(shí)現(xiàn)原理
STM32中的獨(dú)立看門狗和窗口看門狗
STM32芯片如何使用片內(nèi)參考電壓實(shí)現(xiàn)模擬看門狗
評(píng)論