有人使用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應用例程。
責任編輯:彭菁
-
芯片
+關注
關注
456文章
50927瀏覽量
424594 -
adc
+關注
關注
98文章
6510瀏覽量
544987 -
STM32
+關注
關注
2270文章
10906瀏覽量
356528 -
API
+關注
關注
2文章
1504瀏覽量
62157 -
函數
+關注
關注
3文章
4338瀏覽量
62734
原文標題:為什么ADC結果出現斷層?
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論