飞思卡尔单片机PWM模块分析(2)

时间:2021-07-05 22:15:53

接上,继续介绍飞思卡尔HCS12系列单片机的PWM模块

(4)PWM预分频时钟寄存器(PWM Prescale Select Register)

PWMPRCLK为Clock A和B选择独立的预分频因子。

读:任何时刻  写:任何时刻

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
0 PCKB2 PCKB1 PCKB0 0 PCKA2 PCKA1 PCKA0
   
复位值 0 0 0 0 0 0 0 0

注意:PWMPRCLK寄存器的位可以在任何时刻写入,如果正在产生PWM信号时改变极性,在转换工程中可能截短或延长输出脉冲。

CLOCK A or B预分频因子的选择

PCKB2/PCKA2 PCKB1/PCKA1 PCKB0/PCKA0 CLOCK A or B的值
0 0 0 总线时钟
0 0 1 总线时钟2分频
0 1 0 总线时钟4分频
0 1 1 总线时钟8分频
1 0 0 总线时钟16分频
1 0 1 总线时钟32分频
1 1 0 总线时钟64分频
1 1 1 总线时钟128分频

(5)PWM分频时钟寄存器(PWM Scale x Register)

PWM分频时钟寄存器用于将CLOCK A or B进行分频,产生CLOCK SA or SB,通过将CLOCK A除以PWMSCLA寄存器中的值,再除以2,形成CLOCK SA.

CLOCK SA=(CLOCK A)/(X*PWMSCLA)

读:任何时刻  写;任何时刻(导致分频计数器装载新的比例因子值PWMSCLA)。

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
读/写 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
复位值 0 0 0 0 0 0 0 0

PWMSCLB的寄存器和A的完全相同。

注:若当PWMSCLA=500时,PWMSCLA默认值为256,此时CLOCK SA等于CLOCK A频率除以512.(即最大分频数为512)

(6)PWM极性寄存器(PWM Poarity Register)

PWMPOL是确定每个PWM通道波形开始的输出极性,如果极性选择位为1,周期开始时PWM通道输出高电平,当通道计数器等于占空比寄存器值时翻转为低电平;相反,如果极性选择位是0,周期开始时PWM通道输出低电平,当通道计数器数值等于占空比计数器时翻转为高电平。

读:任何时刻  写:任何时刻

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
读/写 PPOL7 PPOL6 PPOL5 PPOL4 PPOL3 PPOL2 PPOL1 PPOL0
复位值 0 0 0 0 0 0 0 0

注:PPOLx寄存器的位可以在任意时刻写入。如果正在产生PWM信号时改变极性,在转换过程中可能截短或延长输出脉冲。

(7)PWM居中对齐允许寄存器(PWM Center Align Enable Register)

PWMCAE包含8个控制位,用于控制相应的PWM通道输出波形为中心对齐输出或左对齐输出。如果CAEx=1,相应的PWM通道输出波形为中心对齐,如果CAEx=0,相应的PWM通道输出波形为左对齐。

读:任何时刻   写:任何时刻

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
读/写 CAE7 CAE6 CAE5 CAE4 CAE3 CAE2 CAE1 CAE0
复位值 0 0 0 0 0 0 0 0

注:仅当相应通道被禁止输出时,才可以设置该寄存器。

这里居中对齐寄存器很多情况下会与极性寄存器搞混。

左对齐格式输出时,8位计数器只作加法计数,当计数器计数到占空比寄存器中设置的数值时,PWM通道输出波形就会发生变化,然后再次读取占空比和周期寄存器中的数值以作为下一次参数。

居中对齐输出时,8位计数器即做加法计数也做减法计数,当计数器加法计数到占空比寄存器中设置的数值时,PWM通道输出波形就会发生改变,当计数器加法计数到周期寄存器中设置的数值时,计数器会从加法计数变为减法计数,当计数器再次减法计数到占空比寄存器中的数值时,PWM通道输出波形再次发生变化,当计数器中数值减到0时,计数器重新变为加法计数器,然后再次读取占空比和周期寄存器中的数值作为下一次参数。

总结为左对齐Period=PWMPERx,中心对齐Period=PWMPERx*2

(8)PWM控制寄存器(PWM Control Register)

PWMCTL控制寄存器,该寄存器用于PWM模块的各种控制,其中包括了4个级联控制位,用于将一对8位PWM通道级联成一个16位通道。

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
CON67 CON45 CON23 CON01 PSWAI PFRZ 0 0
   
复位值 0 0 0 0 0 0 0 0

 

 

读:任何时刻  写:任何时刻(导致分频计数器装载新的比例因子值PWMSCLA)

该控制寄存器设定通道的级联和两种工作模式:等待模式和冻结模式。

PSWAI:等待模式下PWM停止位。该位使能,通过禁止时钟输入到预分频器,可降低等待模式下的功耗。

1表示等待模式时,预分频器的时钟输入停止。

0表示等待模式时,允许预分频器的时钟输入。

PFRZ:冻结模式下PWM停止位。

1表示冻结模式时,预分频器的时钟输入停止。

0表示冻结模式时,允许PWM继续工作。