有人使用STM32H7系列芯片對某正弦信號進行ADC采樣轉(zhuǎn)換,可發(fā)現(xiàn)最后測量出來的結(jié)果有點怪怪的,采樣還原的圖形上看感覺被截取了一段,呈現(xiàn)斷層的樣子,如下圖所示:
他還補充說,使用H7系列不同型號以及不同ADC模塊,都有類似問題,頗為奇怪!
對于這個結(jié)果,我之前未曾碰到過。于是找來STM32H7系列開發(fā)板做驗證性測試,以圖復(fù)現(xiàn)問題。
我先利用TIMER加DAC輸出一路正弦波,并將輸出連接到任一ADC通道。可是不管我如何測試,怎么也沒發(fā)現(xiàn)采樣結(jié)果有斷層的現(xiàn)象。
后來,他進一步補充說,他的被測信號是帶偏移的正弦波,峰谷差為50mv,中心電壓在1v到3v之間,頻率為1Khz。通過定時器控制ADC采樣頻率為2MHz.
這邊根據(jù)他的要求調(diào)整DAC的輸出幅度以及輸出頻率,經(jīng)過反復(fù)測試仍然沒有發(fā)現(xiàn)他所反饋的斷層現(xiàn)象。
從該用戶咨詢該問題來看,感覺他對STM32及ADC應(yīng)用還是比較熟悉的。后來經(jīng)同事提醒,會不會是客戶在使用ADC前沒做校準(zhǔn)。說實在的,對于使用ADC模塊前做校準(zhǔn)應(yīng)該說基本的標(biāo)準(zhǔn)動作了。所以,對于該用戶我下意識地不太懷疑他使用ADC前沒做 校準(zhǔn)。現(xiàn)在又實在沒法復(fù)現(xiàn)其問題現(xiàn)象,只好試著提醒他ADC校準(zhǔn)的問題。因為H7系列ADC校準(zhǔn)包含兩方面,一方面是偏移校準(zhǔn),一方面是線性校準(zhǔn)。我把這兩個校準(zhǔn)函數(shù)提供給他參考。
HAL_ADCEx_Calibration_Start(&hadc1,ADC_CALIB_OFFSET_LINEARITY,ADC_SINGLE_ENDED );
HAL_ADCEx_Calibration_Start(&hadc1,ADC_CALIB_OFFSET, ADC_SINGLE_ENDED );
后來,該用戶反饋說,他們的確在使用ADC之前做了校準(zhǔn),不過只做了其中的一個,即沒有同時做偏移校準(zhǔn)和線性校準(zhǔn)。當(dāng)他對ADC模塊做了兩類校準(zhǔn)后一切正常,ADC結(jié)果不再出現(xiàn)詭異現(xiàn)象,恢復(fù)正常。看來是該用戶的一個小失誤,虛驚一場,大折騰一番。
一般來講,在啟動STM32ADC模塊前需主動做校準(zhǔn),這是基本操作。在ST提供的庫函數(shù)里有現(xiàn)存的API函數(shù)可以調(diào)用,不清楚時可以參考ST公司提供的ADC應(yīng)用例程。
責(zé)任編輯:彭菁
-
芯片
+關(guān)注
關(guān)注
453文章
50396瀏覽量
421791 -
adc
+關(guān)注
關(guān)注
98文章
6430瀏覽量
544083 -
STM32
+關(guān)注
關(guān)注
2266文章
10871瀏覽量
354794 -
API
+關(guān)注
關(guān)注
2文章
1485瀏覽量
61814 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4304瀏覽量
62429
原文標(biāo)題:為什么ADC結(jié)果出現(xiàn)斷層?
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論