输出比较:
- OC(Output Compare)输出比较
- IC(Input Capture)为输入捕获
- CC(Capture/Compare)一般表示输入捕获和输出比较的单元
- 可以用于产生PWM信号、控制ADC转换触发、控制步进电机等应用。
- 比较输出模式下,TIM将会周期性的比较CNT与CCR寄存器值,对输出电平进行置1、置0、翻转的操作,通过改变比较值输出一定频率和占空比的PWM波形。
- 计数器值TIMx_CNT与通道1捕获比较寄存器CCR1进行比较,通过比较结果输出有效电平和无效电平
- 输出模式控制器的八种比较模式改变OC1REF的高低电平
- 极性选择,寄存器置0,不翻转,置1通过非门取反,信号电平翻转。
输出比较模式:
-
IM_OCMODE_TIMING 输出比较冻结模式,匹配时无通道输出 TIM_OCMODE_ACTIVE 输出比较冻结模式,匹配时无通道输出 TIM_OCMODE_INACTIVE 匹配时设置通道输出为无效电平 TIM_OCMODE_TOGGLE 匹配时设置通道输出电平翻转 TIM_OCMODE_PWM1 PWM输出模式1 TIM_OCMODE_PWM2 PWM输出模式2 TIM_OCMODE_FORCED_ACTIVE 不进行匹配,强制通道输出为有效电平 TIM_OCMODE_FORCED_INACTIVE 不进行匹配,强制通道输出为无效电平 -
PWM模式1:
向上计数:CNT<CCR时,REF置有效电平,CNT≥CCR时,REF置无效电平
向下计数:CNT>CCR时,REF置无效电平,CNT≤CCR时,REF置有效电平
-
PWM模式2:
向上计数:CNT<CCR时,REF置无效电平,CNT≥CCR时,REF置有效电平
向下计数:CNT>CCR时,REF置有效电平,CNT≤CCR时,REF置无效电平
PWM:
- PWM(Pulse Width Modulation)脉冲宽度调制
- 是一种常用于控制电机、LED灯等模块的技术,它可以通过改变脉冲的占空比来控制模块的电压或电流。
PWM参数:
-
TIM基础时钟频率:每个TIM(定时器)有一个基础时钟频率,可以通过分频器来配置,用于确定PWM波形的周期。
-
PWM波形周期:PWM波形的周期由TIM的计数器和预分频器决定,可以通过修改计数器和预分频器的值来调整。一个完整PWM波形所持续的时间
-
占空比:PWM波形的占空比可以通过修改比较寄存器和自动重载寄存器的值来调整。高电平持续时间(Ton)与周期时间(Period)的比值
-
极性:PWM波形的极性可以设置为高电平或低电平。
-
对齐方式:PWM波形的对齐方式可以为左对齐或右对齐,具体设置取决于应用需求。
-
死区时间:当PWM波形由低电平向高电平或由高电平向低电平转换时,可以设置一个死区时间来防止电压瞬间过高或过低,从而保护电路。
-
突发模式:突发模式可以使TIM在一次中断或DMA请求中输出多个PWM波形,提高PWM波形的输出效率。
-
求输出频率为1Khz的频率,占空比为50%,分辨率为1%的pwm波形
以STM32F103为例总频是72M,
freq = 72M / (PSC+1)/ (ARR+1)= 1 khz = 1000 hz
duty = CCR / (ARR+1) = 50%
reso = 1/ (ARR+1) = 1%
得:
(ARR+1) = 100
CRR = 50
(PSC+1)= 720
则:
TIM_TimeBaseInitStructure.TIM_Period = 100 - 1; //ARR
TIM_TimeBaseInitStructure.TIM_Prescaler = 720 - 1; //PSCTIM_OCInitStructure.TIM_Pulse = 50; //CCR
-