【官方原创】STM32 ADC过采样功能与应用介绍 LAT1598
关键字:过采样
1. 前言
STM32系列MCU中,很多系列集成了硬件过采样单元,通过过采样可以实现对数据的平均 滤波,改善数据的信噪比从而提升采样精度,本文对硬件过采样单元的功能进行介绍,并给出一 个实际的应用案例。
2. 硬件过采样单元
2.1. 整体框架

如上图所示,红色框内所示部分即为ADC中集成的硬件过采样单元,包含数据累加与数据 移位两个部分,最终在ADC结果寄存器中得到的值如下:

N代表过采样次数,M代表平均系数,其与设定的右移位数相关,假设右移x位,则M = 2X。芯片系列不同,N和M的范围不同:
• G4的过采样次数最高256x,原始数据最多可达20bit(12+8),最多支持右移8位,即M 最大值为256,对应的ADC_DR为16bit,在没有右移的情况下会自动截断,只保留 16bit结果。
• H7的过采样次数最高1024x,原始数据最多可达26bit(16+10),最多支持右移10位, 即M最大值为1024,对应的ADC_DR为32bit,在没有右移的情况下可从ADC_DR 中 获取全部的26bit结果。
2.2. 过采样工作模式
过采样有两种工作模式,如下图:

• 模式1:正常模式(Normal mode,TROVS = 0),过采样单元在ADC单次触发下连续 完成所设定的N次采样。
• 模式 2:触发模式(Triggered mode,TROVS = 1),过采样单元在每次ADC触发下 完成一次采样,需要N次ADC触发,才能完成所设定的N次采样。
过采样过程中,单次采样的时间与普通采样一致。
当Regular通道的过采样被Injected通道中断后,Regular通道采样恢复方式如下:
• 继续模式(continue mode),在该模式下,虽然被injected通道频繁中断,但 Regular通道过采样依旧能够完成。

• 重新开始模式(resumed mode),该模式下,injected通道触发间隔必须大于 Regular通道的过采样时间,否则Regular通道的过采样无法完成。

另外需要注意:
• 当Regular通道和Injected通道同时使能过采样时,Regular通道的恢复模式只能选 择重新开始模式(resumed mode),如下图所示。

• 当Regular通道工作在过采样触发模式(Triggered mode),Injected通道不能使能 过采样模式,因为通道共用硬件过采样模块,若Injected过采样使能,Regular的值 将丢失。但是可以使用Auto-injected模式,即Regular通道过采样完成后,自动启 动Injected 通道采样,如下图:
3. 应用案例
在某些应用中,需要求输入信号的平均值,比如电源应用中电感电流的平均值,需要在一个 波形周期内对电流进行多次采样,然后取平均值,如下图所示,在这中情况下就可以使用过采样 Triggered 模式来完成。

假设需要在一个波形周期内等间隔采样16次,在设置了过采样为Triggered模式后,还需 要选择合适的ADC触发方式,保证采样能够等间隔的发生。
假设Buck电路或是Boost电路采用固定频率控制,即电感电流信号周期由PWM的周期决 定。可以使用TIM1来产生固定频率的PWM,同时TIM2与TIM1同步,且TIM2的频率为 TIM1的8倍,使用TIM2的更新事件即UEV事件(up-down计数模式下,在0点和PER点都会 产生UEV事件)来触发ADC启动采样,完成一个PWM周期内16次采样,如下图所示。

在CubeMx中的与以上ADC触发方案相关的配置如下:
ADC的配置:

主定时器TIM1的配置:

从定时器TIM2的配置:

4. 小结
本文简单介绍了STM32 ADC过采样功能及注意事项,并给出了一个实例来说明过采样 功能的应用。
更多推荐
所有评论(0)