有人使用STM32H7系列芯片對某正弦信號進行ADC采樣轉換,可發(fā)現(xiàn)最后測量出來的結果有點怪怪的,采樣還原的圖形上看感覺被截取了一段,呈現(xiàn)斷層的樣子,如下圖所示:

他還補充說,使用H7系列不同型號以及不同ADC模塊,都有類似問題,頗為奇怪!
對于這個結果,我之前未曾碰到過。于是找來STM32H7系列開發(fā)板做驗證性測試,以圖復現(xiàn)問題。
我先利用TIMER加DAC輸出一路正弦波,并將輸出連接到任一ADC通道??墒遣还芪胰绾螠y試,怎么也沒發(fā)現(xiàn)采樣結果有斷層的現(xiàn)象。

后來,他進一步補充說,他的被測信號是帶偏移的正弦波,峰谷差為50mv,中心電壓在1v到3v之間,頻率為1Khz。通過定時器控制ADC采樣頻率為2MHz.

這邊根據(jù)他的要求調(diào)整DAC的輸出幅度以及輸出頻率,經(jīng)過反復測試仍然沒有發(fā)現(xiàn)他所反饋的斷層現(xiàn)象。

從該用戶咨詢該問題來看,感覺他對STM32及ADC應用還是比較熟悉的。后來經(jīng)同事提醒,會不會是客戶在使用ADC前沒做校準。說實在的,對于使用ADC模塊前做校準應該說基本的標準動作了。所以,對于該用戶我下意識地不太懷疑他使用ADC前沒做 校準?,F(xiàn)在又實在沒法復現(xiàn)其問題現(xiàn)象,只好試著提醒他ADC校準的問題。因為H7系列ADC校準包含兩方面,一方面是偏移校準,一方面是線性校準。我把這兩個校準函數(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之前做了校準,不過只做了其中的一個,即沒有同時做偏移校準和線性校準。當他對ADC模塊做了兩類校準后一切正常,ADC結果不再出現(xiàn)詭異現(xiàn)象,恢復正常。看來是該用戶的一個小失誤,虛驚一場,大折騰一番。
一般來講,在啟動STM32ADC模塊前需主動做校準,這是基本操作。在ST提供的庫函數(shù)里有現(xiàn)存的API函數(shù)可以調(diào)用,不清楚時可以參考ST公司提供的ADC應用例程。
責任編輯:彭菁
-
芯片
+關注
關注
463文章
54017瀏覽量
466300 -
adc
+關注
關注
100文章
7513瀏覽量
556062 -
STM32
+關注
關注
2310文章
11162瀏覽量
373515 -
API
+關注
關注
2文章
2375瀏覽量
66803 -
函數(shù)
+關注
關注
3文章
4417瀏覽量
67538
原文標題:為什么ADC結果出現(xiàn)斷層?
文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
ADC芯片溫度計算出來的溫度有時錯的離譜,為什么?
電纜接頭局放現(xiàn)象出現(xiàn)后需要如何處理?
激光雷達點云為什么會出現(xiàn)吸點現(xiàn)象?
CW32L010x8用ADC例程調(diào)試時,發(fā)現(xiàn)ADC轉換的結果一直是0xcdcd,為什么?
Vivado仿真之后沒有出現(xiàn)仿真結果的解決方法
開關柜局部放電監(jiān)測的現(xiàn)象都有哪些?
引起三防漆噴涂出現(xiàn)飛濺現(xiàn)象的因素
三防漆在噴涂過程中出現(xiàn)虹吸現(xiàn)象該怎么解決
瞬間膠發(fā)生白化現(xiàn)象的原因及解決方法
WP4000在電機功率測試中為什么會出現(xiàn)了基波有功功率大于總有功功率現(xiàn)象
IGBT模塊的反向恢復現(xiàn)象
為什么adc結果出現(xiàn)斷層現(xiàn)象
評論