有人使用STM32H7系列芯片對某正弦信號進行ADC采樣轉換,可發現最后測量出來的結果有點怪怪的,采樣還原的圖形上看感覺被截取了一段,呈現斷層的樣子,如下圖所示:
他還補充說,使用H7系列不同型號以及不同ADC模塊,都有類似問題,頗為奇怪!
對于這個結果,我之前未曾碰到過。于是找來STM32H7系列開發板做驗證性測試,以圖復現問題。
我先利用TIMER加DAC輸出一路正弦波,并將輸出連接到任一ADC通道。可是不管我如何測試,怎么也沒發現采樣結果有斷層的現象。
后來,他進一步補充說,他的被測信號是帶偏移的正弦波,峰谷差為50mv,中心電壓在1v到3v之間,頻率為1Khz。通過定時器控制ADC采樣頻率為2MHz.
這邊根據他的要求調整DAC的輸出幅度以及輸出頻率,經過反復測試仍然沒有發現他所反饋的斷層現象。
從該用戶咨詢該問題來看,感覺他對STM32及ADC應用還是比較熟悉的。后來經同事提醒,會不會是客戶在使用ADC前沒做校準。說實在的,對于使用ADC模塊前做校準應該說基本的標準動作了。所以,對于該用戶我下意識地不太懷疑他使用ADC前沒做 校準。現在又實在沒法復現其問題現象,只好試著提醒他ADC校準的問題。因為H7系列ADC校準包含兩方面,一方面是偏移校準,一方面是線性校準。我把這兩個校準函數提供給他參考。
HAL_ADCEx_Calibration_Start(&hadc1,ADC_CALIB_OFFSET_LINEARITY,ADC_SINGLE_ENDED );
HAL_ADCEx_Calibration_Start(&hadc1,ADC_CALIB_OFFSET, ADC_SINGLE_ENDED );
后來,該用戶反饋說,他們的確在使用ADC之前做了校準,不過只做了其中的一個,即沒有同時做偏移校準和線性校準。當他對ADC模塊做了兩類校準后一切正常,ADC結果不再出現詭異現象,恢復正常。看來是該用戶的一個小失誤,虛驚一場,大折騰一番。
一般來講,在啟動STM32ADC模塊前需主動做校準,這是基本操作。在ST提供的庫函數里有現存的API函數可以調用,不清楚時可以參考ST公司提供的ADC應用例程。
責任編輯:彭菁
-
芯片
+關注
關注
459文章
52201瀏覽量
436415 -
adc
+關注
關注
99文章
6640瀏覽量
548304 -
STM32
+關注
關注
2290文章
11017瀏覽量
362464 -
API
+關注
關注
2文章
1563瀏覽量
63551 -
函數
+關注
關注
3文章
4371瀏覽量
64223
原文標題:為什么ADC結果出現斷層?
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
DLPC3433出現花屏現象的原因?
使用一片DLP3010的時候,出現工作一段時間后被擊穿的現象,怎么解決?
ADS52J90配置成了test pattern模式,ADC傳輸回來的pattern值出現錯位現象,為什么?
自己做了一版MMB0,出現DSP not ready的現象,為什么?
光伏系統為什么會出現孤島現象?如何解決光伏系統孤島現象?

評論