Nuru_Banmian
Nuru_Banmian
Published on 2025-06-17 / 55 Visits
0
0

通用定时器_输出比较原理和工作模式

输出比较的作用

此功能是用来控制输出方波

大多用于输出PWM波形,也可输出其他波形,但只能是方波

输出比较框图

通用定时器-输出比较功能框图.png

包含三个部分

  • 计数器部分

  • 捕获比较储存器*4

    可以同时实现4路比较

  • 输出部分*4

输出比较原理

核心思想

以通道1为例

假设计数器向上计数,重装载寄存器的值为99

捕获/比较寄存器的值为60

比较寄存器的值和计数器的值进行大小比较

根据比较结果的不同,产生不同的输出:高电平/低电平

输出比较的8种模式

CCMR1寄存器OC1M[2,0],共三位控制

一般使用PWM模式1,及OC1M = 110

CCMR : 控制比较模式寄存器

OCM : out put compare

假设计数器的值是CNT,比较寄存器1的值是CCR=60

  1. OC1M[2:0] = 000

​ 输出冻结, CNT和CCR比较结果不影响输出.

  1. OC1M[2:0] = 001

​ 强制输出高电平。一旦CNT=CCR,强制输出高电平,再不改变。

  1. OC1M[2:0] = 010

​ 强制输出低电平。一旦CNT=CCR,强制输出低电平,再不改变。

  1. OC1M[2:0]=011

​ 输出翻转。一旦CNT=CCR,则翻转输出。高->低, 低->高。

​ 输出结果其实是一个方波:频率为计数器的溢出频率的一半,占空比为50%

下图为此情况方波输出图

通用定时器_OC1M_011.png

  1. OC1M[2:0]=100

​ 强制输出低电平。

  1. OC1M[2:0]=101

    强制输出高电平

  2. OC1M[2:0]=110

    PWM模式1

    1. CNT < CCR 输出高电平

    2. CNT >= CCR 输出低电平

      波形频率: 计数器溢出频率

      波形占空比:

      CCR/(重装载寄存器值+1) = 60/(99+1) = 60%

通用定时器_OC1M_110.png

  1. OC1M[2:0]=111

    PWM模式2,和模式1刚好相反,占空比也刚好相反

    1. CNT < CCR 输出低电平

    2. CNT >= CCR 输出高电平


Comment