看似简单的计数模式选择,背后隐藏着STM32定时器设计的精妙逻辑。
STM32的定时器远不止简单的“数数”工具。中央对齐模式(Center-Aligned Mode)是STM32通用定时器和高级定时器的一项重要特性,它通过双向计数机制为PWM生成、电机控制等应用提供了更高的精度和灵活性。
中央对齐模式之所以重要,是因为它能够在每个计数周期内产生对称的PWM波形,这对于减少电机控制的电磁噪声和谐波失真至关重要,当然,最重要的还是为SVPWM打下来基础。
一、中央对齐模式工作原理
在中央对齐模式下,计数器不是简单地单向计数,而是先向上计数到自动重装载值(ARR),然后向下计数到0,如此循环往复。
这种双向计数方式产生了一个对称的计数周期,使得PWM信号在ARR/2处达到峰值,形成对称的波形。
与单向计数模式相比,中央对齐模式的最大特点是每个完整周期包含两次计数方向转换,这为精确控制时间敏感型任务提供了更多机会。
二、3种中央对齐模式
STM32通过TIMx_CR1寄存器中的CMS[1:0]位域来配置三种不同的中央对齐模式,它们在更新事件(UEV)触发位置和中断触发次数上存在关键差异。
以下是三种模式的对比总结:
模式1(CMS[1:0]=01)
模式1的计数顺序是:从0开始向上计数到ARR值,然后向下计数到0,完成一个周期。
更新事件(UEV)仅在向下计数到0时触发一次,这意味着每个完整周期只产生一次更新中断。这种模式特别适合生成对称的互补PWM,如用于FOC(磁场定向控制)算法。
配置代码示例:
TIM1->CR1 |= TIM_CounterMode_CenterAligned1; // CMS[1:0]=01
模式2(CMS[1:0]=10)
模式2采用相反的计数顺序:先向下计数到0,然后向上计数到ARR值。
与模式1不同,模式2的更新事件仅在向上计数到ARR时触发一次。这种特性使其适用于有特定时序同步需求的应用场景。
模式3(CMS[1:0]=11)
模式3是最为活跃的中央对齐模式,计数器双向计数,且更新事件在计数器向下计数到0和向上计数到ARR时均会触发。
这意味着每个完整周期会产生两次更新事件,中断触发频率是前两种模式的两倍。这种高频中断特性使其非常适合需要频繁处理定时事件的应用,这意味着我们可以更快的更改PWM占空比。
三、匹配事件与中断触发机制
当比较寄存器CCR的值在0到ARR之间时,一个中央对齐计数周期内会发生两次匹配事件(CNT=CCR)。
不同模式决定了这两次匹配事件是否触发比较事件标志(如CC4IF)以及何时触发:
模式1:只在向下计数过程中发生匹配动作时置位比较事件标志
模式2:只在向上计数过程中发生匹配动作时置位比较事件标志
模式3:在向上和向下计数过程中发生匹配动作时都会置位比较事件标志
这些比较事件标志被置位时可以触发中断或DMA请求,为实时控制系统提供了灵活的事件响应机制。
四、实际应用场景
电机控制
中央对齐模式在电机控制中尤为重要,特别是模式1被广泛用于FOC电机控制中的PWM生成。对称的PWM波形可以减少电机的电磁噪声和谐波失真,提高控制精度和效率。
ADC同步触发
在需要精确采样时刻的应用中,可以利用中央对齐模式的不同特性来同步ADC转换。例如,可以选择在计数器上溢点的左侧或右侧启动ADC转换,通过在合适的时间点开启转换来提高采样精度。
高频中断应用
模式3因其每个周期触发两次中断的特性,适合需要高频事件处理的应用场景。虽然这会增加CPU中断负载,但提供了更精细的时间控制能力。
注意:STM32F3、STM32G4、STM32F7、STM32H7等系列提供了更先进的硬件特性,如通过配置高级定时器通道的输出信号边沿组合来实现ADC同步触发,可以进一步减少软件处理和CPU参与。
五、配置示例与注意事项
配置STM32定时器为中央对齐模式的基本步骤:
使能定时器时钟:通过RCC模块使能相应定时器的时钟。
设置预分频器和自动重装载值:根据所需频率设置PSC和ARR寄存器。
选择中央对齐模式:配置TIMx_CR1寄存器的CMS位域选择模式1/2/3。
设置比较值:配置CCR寄存器定义匹配点。
使能中断/DMA:根据需要使能比较事件的中断或DMA请求。
启动定时器:设置CEN位启动计数器。
简单配置示例:
// 配置TIM1为中央对齐模式1TIM1->PSC = 71; // 预分频器,假设系统时钟72MHzTIM1->ARR = 999; // 自动重装载值TIM1->CCR1 = 500; // 比较匹配值,50%占空比TIM1->CR1 |= TIM_CounterMode_CenterAligned1; // 设置为中央对齐模式1TIM1->CR1 |= TIM_CR1_CEN; // 使能计数器
重要注意事项:
中央对齐模式下,定时器的有效计数频率是时钟频率的一半,因为每个周期包含两次计数(向上和向下)。
在使用中央对齐模式生成PWM时,波形的对称性更好,但中断负载可能更高(特别是模式3)不同的STM32系列可能在实现细节上略有差异,建议参考具体型号的参考手册。
最后
STM32定时器的三种中央对齐模式提供了不同的事件触发策略,适应多样化的应用需求:
模式1专注于向下计数时触发,适合FOC电机控制;
模式2侧重于向上计数时触发,用于特定同步场景;
模式3则提供双向触发,满足高频中断应用的需求。
9706