我們?cè)谧?a href="http://www.nxhydt.com/tags/adc/" target="_blank">ADC應(yīng)用時(shí),有些場(chǎng)合需要精確測(cè)量出待測(cè)信號(hào)的數(shù)據(jù),有時(shí)可能并不關(guān)心ADC結(jié)果多準(zhǔn)確,只要滿足某個(gè)范圍即可,這時(shí)我們就可以考慮使用STM32ADC看門狗功能了。
STM32
ADC基本上都支持模擬看門狗功能,即ADC模塊對(duì)被檢測(cè)的模擬通道的轉(zhuǎn)換結(jié)果基于硬件對(duì)其合法性、安全性進(jìn)行監(jiān)測(cè)。我們可以設(shè)置被監(jiān)測(cè)通道的轉(zhuǎn)換結(jié)果合法性檢查的上下閾值,若結(jié)果處于閾值之外則視為異常,并可以觸發(fā)中斷。
尤其有些場(chǎng)合,我們可能使用到數(shù)個(gè)ADC通道,8個(gè)、10個(gè)甚至更多,同時(shí)程序還需要基于各通道的轉(zhuǎn)換結(jié)果進(jìn)行合法性或安全性監(jiān)測(cè),此時(shí)使用ADC模擬看門狗功能就很方便。我們可以先讓模擬看門狗做第一步把關(guān),只有出現(xiàn)異常數(shù)據(jù)時(shí)才去進(jìn)一步檢查確認(rèn)。不然的話,每次一批數(shù)據(jù)出來(lái)后,我們得逐個(gè)去檢查合法性。一般來(lái)講,多數(shù)情況下異常可能只是偶爾、個(gè)別通道發(fā)生,這樣每次轉(zhuǎn)換完成后總是不分青紅皂白地去逐一檢查、確認(rèn),顯然有點(diǎn)浪費(fèi)時(shí)間,啰嗦無(wú)益,這也會(huì)影響系統(tǒng)性能。
我這里使用STM32L4開(kāi)發(fā)板,簡(jiǎn)單演示下實(shí)現(xiàn)過(guò)程,供有需要的人士參考。
這里只開(kāi)啟ADC1模塊的8個(gè)規(guī)則通道,使用DMA傳送轉(zhuǎn)換結(jié)果,并設(shè)置模擬看門狗。使用CubeMx圖形化配置工具進(jìn)行工程配置。
我只啟用了模擬看門狗1,針對(duì)8個(gè)規(guī)則通道的轉(zhuǎn)換結(jié)果進(jìn)行實(shí)時(shí)監(jiān)測(cè)。【當(dāng)然你可以有其它更為靈活的設(shè)計(jì)。各個(gè)STM32系列這個(gè)地方不完全一樣。】
開(kāi)啟ADC模擬看門狗的中斷。
代碼里設(shè)置一個(gè)記錄ADC結(jié)果異常的標(biāo)志Flag_ADC_Abnormal,若發(fā)生結(jié)果異常會(huì)在ADC中斷對(duì)該標(biāo)志變量賦非0值。
在主循環(huán)里若發(fā)現(xiàn)異常標(biāo)志非0,然后去進(jìn)一步做所有ADC結(jié)果的確認(rèn)。
上面演示過(guò)程中監(jiān)測(cè)到一個(gè)異常數(shù)據(jù),觸發(fā)了模擬看門狗中斷,ADC結(jié)果異常標(biāo)志被賦0xff值,會(huì)做進(jìn)一步異常數(shù)據(jù)的確認(rèn)。
我在上面采用的一個(gè)模擬看門狗對(duì)8個(gè)通道的結(jié)果進(jìn)行監(jiān)測(cè),如果一輪掃描轉(zhuǎn)換下來(lái)出現(xiàn)多個(gè)異常數(shù)據(jù),會(huì)觸發(fā)幾次中斷呢?
不妨基于同一開(kāi)發(fā)板驗(yàn)證下。我加個(gè)ADC中斷次數(shù)累計(jì)變量ADC_Res_CNT,并把閾值下限調(diào)整為1200,其它不動(dòng)。【見(jiàn)下圖】
然后進(jìn)行測(cè)試,得到下面結(jié)果。
從結(jié)果看,除了2個(gè)數(shù)據(jù)正常外其它均異常,故一輪轉(zhuǎn)換下來(lái)發(fā)生了6次中斷,顯然我們可以根據(jù)中斷次數(shù)進(jìn)一步判斷一輪轉(zhuǎn)換下來(lái)的異常通道數(shù)。【注:這里ADC配置為單次掃描模式,DMA配置為Normal模式。】
-
mcu
+關(guān)注
關(guān)注
146文章
16991瀏覽量
350309 -
adc
+關(guān)注
關(guān)注
98文章
6437瀏覽量
544089 -
STM32
+關(guān)注
關(guān)注
2266文章
10871瀏覽量
354796
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論