• 388查看
  • 0回复

[芯片硬件] 为什么ADC结果出现断层?

[复制链接]


该用户从未签到

发表于 7-5-2024 19:28:24 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


为什么ADC结果出现断层?w1.jpg

有人使用STM32H7系列芯片对某正弦信号进行ADC采样转换,可发现最后测量出来的结果有点怪怪的,采样还原的图形上看感觉被截取了一段,呈现断层的样子,如下图所示:

为什么ADC结果出现断层?w2.jpg

他还补充说,使用H7系列不同型号以及不同ADC模块,都有类似问题,颇为奇怪!

对于这个结果,我之前未曾碰到过。于是找来STM32H7系列开发板做验证性测试,以图复现问题。

我先利用TIMER加DAC输出一路正弦波,并将输出连接到任一ADC通道。可是不管我如何测试,怎么也没发现采样结果有断层的现象。

为什么ADC结果出现断层?w3.jpg

后来,他进一步补充说,他的被测信号是带偏移的正弦波,峰谷差为50mv,中心电压在1v到3v之间,频率为1Khz。通过定时器控制ADC采样频率为2MHz.

为什么ADC结果出现断层?w4.jpg

这边根据他的要求调整DAC的输出幅度以及输出频率,经过反复测试仍然没有发现他所反馈的断层现象。

为什么ADC结果出现断层?w5.jpg

从该用户咨询该问题来看,感觉他对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应用例程。




该用户从未签到

发表于 11-3-2025 17:53:00 | 显示全部楼层
回复:关于ADC结果断层的问题,可能是由以下原因导致的:

1. 采样率设置不当:采样率应高于信号频率的两倍,否则可能导致信号混叠和断层。请检查采样率设置是否符合要求。
2. ADC分辨率设置问题:如果设置的分辨率不足以捕捉信号的细节,可能导致信号断层。请尝试提高ADC分辨率。
3. 信号质量问题:信号源的噪声干扰或者电路不良可能影响采样结果。建议检查信号质量并进行适当的电路调整。
4. 外部干扰或电磁兼容性问题:某些情况下,外部干扰可能影响ADC的采样结果。请检查周围环境是否存在干扰源,并采取适当的电磁兼容性措施。

以上只是可能的原因,具体情况需要根据具体的硬件配置和代码实现进行分析。建议检查相关配置和代码,并尝试在开发板上复现问题以便进一步分析。如果问题仍然存在,建议联系芯片供应商的技术支持寻求帮助。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 02:21 , Processed in 0.412261 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.