RT:这个帖子是用于记录如何使用STM32G071G8单片机的ADC过采样硬件支持实现最高20位分辨率的过程。
1.什么是过采样
过采样技术是一种以牺牲采样速度来提高ADC分辨率和提高信噪比的技术。部分STM32单片机是支持硬件过采样的,比如我现在这个STM32G071G8。可以通过配置过采样将12位的ADC提升到最高20位。通过查看RM0444参考手册得知,通过配置ADC_CFGR2寄存器可以实现最高20bit的采样率,但是因为STM32的ADC寄存器最大只有16bit,所以实际使用需要右移4位舍去最低值。
2.配置方式
使用STM32cubeMx打开ADC配置选项,选择需要使用的ADC通道并配置好采样采样参数,然后按需打开过采样,因为我的项目需要一定的采样速度所以选择了16x,通过查询手册可以得知现在是16位的模式,并右移了4位舍去了最低值,最终得到一个精度更高的12位数据。
2.对此测试
这个是一个电流采样到的ADC值经过串口输出,并打印到串口助手(未打开过采样)
这个是原始没有经过过采样的电流曲线(上面的第一条是原始采样数据,第二条是经过算法滤波后的结果,可见抖动幅度都还是很大)
下面这个结果是打开了硬件过采样技术,可以看到使用了硬件过采样后的结果是立竿见影的,信噪比马上就提高了不少,少了很多本底噪音。所以STM32G0的这个硬件过采样用于对采样速度不高的场合提高信噪比还是很有作用的。
至此这个配置方法记录就完成了。