接上,继续介绍飞思卡尔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继续工作。