[技术问答] HC32L130 ADC信号采集数据波动

[复制链接]
993|8
旋转突进 发表于 2025-9-30 08:55 | 显示全部楼层 |阅读模式
请问,我用HC32L130的ADC做直流信号采集时,为什么测得的数据波动很大.例如我用2.5V参考电压,ADC12位才100mv的直流电压,测得ADC数值范围在155 - 175.这个波动范围正常吗,还是我配置有问题.ADC时钟频率12MHz,采样速率2KHz.采用定时器触发ADC采样.下面是我的初始化配置,请大家帮忙看看.
                ///< ADC 初始化配置
                stcAdcCfg.enAdcMode         = AdcScanMode;              ///<采样模式-扫描
                stcAdcCfg.enAdcClkDiv       = AdcMskClkDiv4;            ///<采样分频-4
                stcAdcCfg.enAdcSampCycleSel = AdcMskSampCycle8Clk;      ///<采样周期数-8
                stcAdcCfg.enAdcRefVolSel    = AdcMskRefVolSelExtern1;   ///<参考电压选择-外部2.5V
                stcAdcCfg.enAdcOpBuf        = AdcMskBufDisable;         ///<OP BUF配置-关
                stcAdcCfg.enInRef           = AdcMskInRefDisable;       ///<内部参考电压使能-关
                stcAdcCfg.enAdcAlign        = AdcAlignRight;            ///<转换结果对齐方式-右
wubangmi 发表于 2025-9-30 10:36 | 显示全部楼层
stcAdcCfg.enAdcOpBuf        = AdcMskBufEnable;         ///<OP BUF配置-开


试试把这个打开
dffzh 发表于 2025-9-30 11:20 | 显示全部楼层
按照你提供的参数来计算的话,100mv电压输入对应的ADC采样值应该是:
0.1*4096/2.5 = 163.84左右;
你采集到的波动应该在合理范围内;
另外,可以增加滤波算法,比如采集20次后进行排序,去掉最大最小值,剩余数据求平均来得到最终的ADC采样值,然后换算成实际电压值。
xch 发表于 2025-9-30 12:29 | 显示全部楼层
你这是仅采样一路信号吗?

采样信号前得先采样一个对地短路的输入通道。
 楼主| 旋转突进 发表于 2025-9-30 14:35 | 显示全部楼层
xch 发表于 2025-9-30 12:29
你这是仅采样一路信号吗?

采样信号前得先采样一个对地短路的输入通道。 ...

你好,能详细说一下吗?我在数据手册上没有看到类似的说明
 楼主| 旋转突进 发表于 2025-9-30 14:36 | 显示全部楼层
wubangmi 发表于 2025-9-30 10:36
stcAdcCfg.enAdcOpBuf        = AdcMskBufEnable;         ///

你好,我试了没有效果
 楼主| 旋转突进 发表于 2025-9-30 14:37 | 显示全部楼层
dffzh 发表于 2025-9-30 11:20
按照你提供的参数来计算的话,100mv电压输入对应的ADC采样值应该是:
0.1*4096/2.5 = 163.84左右;
你采集 ...

感谢你的建议,我试一下看看效果.
dffzh 发表于 2025-9-30 14:43 | 显示全部楼层
旋转突进 发表于 2025-9-30 14:37
感谢你的建议,我试一下看看效果.

平均次数越多,也就是样本数越多,最终平均数据会越平滑。
xch 发表于 2025-9-30 16:46 | 显示全部楼层
旋转突进 发表于 2025-9-30 14:35
你好,能详细说一下吗?我在数据手册上没有看到类似的说明

手册不会写自己缺陷的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部