• 正文
  • 相关推荐
申请入驻 产业图谱

STM32定时器中央对齐模式

09/10 10:45
9757
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

看似简单的计数模式选择,背后隐藏着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则提供双向触发,满足高频中断应用的需求。

掌握这些模式的差异,能够帮助工程师在电机控制、电源管理、精密测量等场景中实现更精确、更高效的定时控制方案。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录