STM32G4的ADC精准度真的能打吗?
高速采样时误差大不大?偏移校准容易搞吗?精度高低和布局也有关系。 我测电池电压,误差能控制在1%。 用了DMA之后延迟反而低了。 自带参考电压精度一般般。 电源干扰对采样影响不小。 Trigger触发方式选对很关键。 差分ADC香,但代码复杂。 校准要做,不然偏移大。 多通道切换时候有点误差。 用温度补偿效果还不错。 对于大多数应用来说,12 位的分辨率已经足够提供高精度的测量结果。 .实际误差受参考电压稳定性、输入信号噪声、模拟输入源阻抗、PCB布局等因素影响。例如,电源噪声会导致参考电压波动,从而影响ADC转换精度。 采样时间过短可能导致信号未稳定,造成采样值偏差;过长则可能降低转换速率,引入更多环境噪声。需根据信号频率动态调整采样时间,例如在低速高精度场景下选择较长采样时间(如144周期@36MHz ADC时钟),高速场景下适当缩短采样时间并结合平均法补偿精度损失。
抗混叠处理,高速采样时需对输入信号进行抗混叠处理,可通过RC滤波器抑制高频噪声,避免采样瞬间放大器输出信号产生尖峰,导致采样值偏大。
确保ADC处于禁用状态(ADEN = 0),设置ADCALDIF位选择单端或差分输入校准。设置ADCAL位启动校准,等待ADCAL位自动清除表示校准完成。校准因子存储在ADC_CALFACT寄存器中,可在重新启用ADC前重新注入校准因子,避免重复校准。
在多通道切换采样时,可能存在通道间干扰或切换延迟导致的误差,可通过优化通道切换顺序、增加采样保持时间等方式减小误差。
STM32G4的ADC模块提供自动校准功能,可消除因工艺或带隙变化引起的偏移误差。校准过程中,ADC计算一个7位宽的校准因子,并应用于后续转换,直到下一次ADC断电。
通过多次采样内部基准电压(如VREFINT),计算实际ADC转换值与理论值的偏差,进而对采样结果进行软件补偿。例如,利用ST工厂校准值和实际采样值反算VDDA电压,从而修正ADC计算式,提高采样精度。
使用高精度、低噪声的参考电压源,并确保其驱动能力满足需求。在输入信号与ADC引脚之间添加跟随器,提高输入阻抗,避免分压效应;对高速信号进行抗混叠滤波。
页:
[1]