STM32 ADC應(yīng)用要注意的幾點(diǎn)問題
1、Vdda沒有供電或沒有正常供電;STM32系列眾多,該參數(shù)不可一概而論,細(xì)節(jié)請(qǐng)參考各個(gè)芯片數(shù)據(jù)手冊(cè)。
2、采樣電阻取值不合適,跟采樣時(shí)間不匹配,經(jīng)常表現(xiàn)為輸入電阻過大、配置的采樣時(shí)間偏短。實(shí)際設(shè)計(jì)時(shí)可以參考下STM32官方各系列評(píng)估板的相關(guān)電路。另外可以參考ST官方的應(yīng)用筆記AN2834。關(guān)于ADC 應(yīng)用其它的應(yīng)用筆記,可以去WWW.STMCU.COM.CN搜索ADC即可。
3、ADC上電開啟到穩(wěn)定需要一段時(shí)間,即Tstab,該參數(shù)在數(shù)據(jù)手冊(cè)里有介紹。在使用寄存器操作時(shí)要特別注意這個(gè)時(shí)間。另外要注意給ADC外設(shè)上電、使能ADC功能、啟動(dòng)ADC轉(zhuǎn)換、實(shí)質(zhì)AD轉(zhuǎn)換是不一樣的動(dòng)作和不同的時(shí)間點(diǎn)。
4、輸入信號(hào)幅度超過ADC參考電壓范圍導(dǎo)致轉(zhuǎn)換結(jié)果的數(shù)據(jù)錯(cuò)誤。
5、芯片供電的波動(dòng)尤其VREF的波動(dòng)和外來干擾都會(huì)導(dǎo)致ADC轉(zhuǎn)換值的異常。
6、在使用注入觸發(fā)轉(zhuǎn)換時(shí),觸發(fā)事件的時(shí)間間隔必須大于注入轉(zhuǎn)換序列所需的轉(zhuǎn)換時(shí)間。比方有兩個(gè)注入通道所需轉(zhuǎn)換時(shí)間為28 ADCLK,那觸發(fā)事件的間隔必須大于28個(gè)ADCLK,比方29,30 個(gè)ADCLK等都可以。
7、大多數(shù)STM32的ADC模塊在使用前需要校準(zhǔn)。校準(zhǔn)須在啟動(dòng)AD轉(zhuǎn)換之前完成。原則上給ADC外設(shè)上電后校準(zhǔn)一次就夠,但當(dāng)參考電壓波動(dòng)較大、溫度變化較劇烈時(shí)需再次校準(zhǔn)。
8、開啟ADC的DMA功能,建議在ADC校準(zhǔn)之后進(jìn)行。換句話說校準(zhǔn)ADC前不要使能其ADC的DMA功能。尤其涉及到多通道ADC DMA傳輸時(shí)要注意這個(gè)次序。
9、如果使用ADC的DMA傳輸,在啟動(dòng)AD轉(zhuǎn)換時(shí),DMA需配置好且被使能待命。
10、當(dāng)使用內(nèi)部SENSOR ADC通道時(shí),注意這些通道從開啟到穩(wěn)定跟開啟ADC模塊一樣都是需要時(shí)間的;針對(duì)這些特定傳感器通道的AD采樣時(shí)間,手冊(cè)里往往有相關(guān)參數(shù)明確告知,請(qǐng)參照使用。比方內(nèi)部溫度傳感器通道的采樣時(shí)間推薦為17us.
11、ADC通道序列的修改應(yīng)該保證在ADC的停止?fàn)顟B(tài)下進(jìn)行。
12、在多通道ADC DMA傳輸時(shí),經(jīng)常出現(xiàn)因?yàn)榫彌_區(qū)數(shù)據(jù)類型、源數(shù)據(jù)類型不一致導(dǎo)致的異常狀況。這里主要是因?yàn)閿?shù)據(jù)寬度不一致所導(dǎo)致的問題。
13、當(dāng)外部信號(hào)被選擇為注入轉(zhuǎn)換的觸發(fā)信號(hào)時(shí),只有其上升沿才有效。
上面提到的都只是拋磚引玉的提醒, 設(shè)計(jì)應(yīng)用時(shí)多留意下,特別是第7、8、9、12四點(diǎn)提醒。STM32的ADC外設(shè)在不同系列間也不完全相同,尤其涉及多個(gè)ADC模塊配合采樣轉(zhuǎn)換的時(shí)候還是挺復(fù)雜的。任何時(shí)候都不忘多查看STM32英文參考手冊(cè)和數(shù)據(jù)手冊(cè)。
評(píng)論