AVR单片机相位修正jpwm

AVR单片机相位修正jpwm
AVR单片机相位修正jpwm

相位修正PWM 模式

相位修正PWM 模式(WGM01:0 = 1) 为用户提供了一个获得高精度相位修PWM 波形的方法。此模式基于双斜坡操作。计时器重复地从BOTTOM 计到MAX ,然后又从MAX 倒退回到BOTTOM 。在一般的比较输出模式下,当计时器往MAX 数时若发生了TCNT0与OCR0的匹配,OC0将清零为低电平;而在计时器往BOTTOM 计数时若发生了TCNT0与OCR0 的匹配, OC0 将置位为高电平。工作于反向输出比较时则正好相反。与单斜坡操作相比,双斜坡操作可获得的最大频率要小。但由于其对称的特性,十分适合于电机控制。

相位修正PWM 模式的PWM 精度固定为8 比特。计时器不断地累加直到MAX ,然后开始减计数。在一个定时器时钟周期里 TCNT0 的值等于MAX 。

图中 TCNT0 的数值用柱状图表示,以说明双斜坡操作。本图同时说明了普通PWM 的输出和反向PWM 的输出。TCNT0 斜坡上的小横条表示OCR0 与TCNT0 的比较匹配。

当计时器达到BOTTOM 时T/C 溢出标志位TOV0 置位。此标志位可用来产生中断。工作于相位修正PWM 模式时,比较单元可以在OC0 引脚产生PWM 波形:将COM01:0设置为2 产生普通相位的PWM ,设置COM01:0 为3 产生反向PWM 信号 ( 参见P79Table41)。要想在引脚上得到输出信号还必须将OC0 的数据方向设置为输出。OCR0和 TCNT0比较匹配发生时OC0 寄存器将产生相应的清零或置位操作,从而产生PWM 波形。工作于相位修正模式时PWM 频率可由下式公式获得:

510

?=

N f

f

clk

OCnPCPWM

变量N 表示预分频因子 (1、 8、 64、256 或1024)。

OCR0寄存器处于极值代表了相位修正PWM 模式的一些特殊情况。在普通PWM 模式

下,若OCR0 等于BOTTOM,输出一直保持为低电平;若OCR0 等于MAX,则输出保持为高电平。反向PWM 模式则正好相反。在Figure 33 的第2 个周期,虽然没有发生比较匹配, OCn 也出现了一个从高到低的跳变。其目的是保证波形在BOTTOM 两侧的对称。没有比较匹配时有两种情况会出现跳变:

?如Figure 33 所示,OCR0A的值从MAX改变为其他数据。当OCR0A值为MAX时,引脚OCn 的输出应该与前面降序记数比较匹配的结果相同。为了保证波形在BOTTOM 两侧的对称,当T/C 的数值为MAX 时,引脚OCn 的输出又必须符合后面升序记数比较匹配的结果。

?定时器从一个比OCR0A 高的值开始记数,并因而丢失了一次比较匹配。系统因此引入发生OCn 却仍然有跳变的现象。

***中断屏蔽寄存器:1:允许中断,0:屏蔽中断

7——OCIE2:T/C2 输出比较匹配中断使能;

6——TOIE2:T/C2 溢出中断使能

5——TICIE1:T/C1 输入捕捉中断使能

4——OCIE1A:T/C1输出比较 A 匹配中断使能

3——OCIE1B:T/C1 输出比较 B 匹配中断使能

2——TOIE1:T/C1 溢出中断使能

1——OCIE0:T/C0 输出比较匹配中断使能

0——TOIE0:T/C0 溢出中断使能

相关主题
相关文档
最新文档