有人使用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应用例程。
责任编辑:彭菁
-
芯片
+关注
关注
462文章
53535浏览量
459133 -
adc
+关注
关注
100文章
7401浏览量
553805 -
STM32
+关注
关注
2305文章
11121浏览量
371164 -
API
+关注
关注
2文章
2149浏览量
66241 -
函数
+关注
关注
3文章
4406浏览量
66839
原文标题:为什么ADC结果出现断层?
文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
Vivado仿真之后没有出现仿真结果的解决方法
引起三防漆喷涂出现飞溅现象的因素
三防漆在喷涂过程中出现虹吸现象该怎么解决
WP4000在电机功率测试中为什么会出现了基波有功功率大于总有功功率现象
DLPC3433出现花屏现象的原因?
使用AVT相机外部触发和DLP4500EVM同步触发,连续上电时间比较久后,DLP投影的光栅图像会有明显的闪烁现象,为什么?
使用一片DLP3010的时候,出现工作一段时间后被击穿的现象,怎么解决?
STM32F407输出的2片ADC的转换值与输入ADC的电压值相同了,不知道是何原因?
ADS52J90配置成了test pattern模式,ADC传输回来的pattern值出现错位现象,为什么?
LTC6087仿真结果发现输出电压出现削峰现象,低电压也达不到轨到轨,怎么解决?
自己做了一版MMB0,出现DSP not ready的现象,为什么?
光伏系统为什么会出现孤岛现象?如何解决光伏系统孤岛现象?

为什么adc结果出现断层现象
评论