旋转突进 发表于 2025-9-30 08:55

HC32L130 ADC信号采集数据波动

请问,我用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]
查看完整版本: HC32L130 ADC信号采集数据波动