智能车笔记9 PWM寄存器

脉冲宽度调制(PWM),是英文“Pulse Width Modulation“。简单的讲,就是可调宽度的方波。

PWM 工作原理

S12X 微控制器PWM 模块是由独立运行的8 位脉冲计数器PWMCNTx(PWM Channel Counter Registers)、两个比较寄存器PWMPERx(PWM Channel Period Registers) 和PWMDTYx(PWM Channel Duty Registers) 组成。Duty是占空比的意思。

PWM波有两种工作方式:

1、左对齐方式

在该方式下,脉冲计数器为循环递增计数,计数初值为0 。当PWM 使能后,计数器PWMCNT 从0开始对时钟信号递增计数,开始一个输出周期。当计数值与占空比常数寄存器PWMDTY 相等时,比较器1 输出有效,将触发器置位,而PWMCNT 继续计数;当计数值与周期常数寄存器PWMPER 相等时,比较器2 输出有效,将触发器复位,同时PWMCNT 也复位,结束一个输出周期。


2、中心对齐方式

在该方式下,脉冲计数器为双向计数,计数初值为0 。当PWM 使能后,计数器PWMCNT 从0 开始对时钟信号递增计数,开始输出一个周期。当计数器与占空比常数寄存器PWMDTY 相等时,比较器1 输出有效,触发器翻转,而PWMCNT 继续计数,当计数值与周期常数PWMPER 相等时,比较器2输出有效,此时改变PWMCNT 的计数方向,使其递解计数;当PWMCNT 再次与PWMDTY相等时,比较器1 再一次输出有效,使触发器再次翻转,而PWMCNT 继续递减计数,等待PWMCNT 减回至0,完成一个输出周期。



不过,PWM初始化是一个比较DT的事情。与PWM有关的寄存器主要有:

1.PWM使能寄存器PWM Enable Register(PWME)

在通道使能后所输出的第一个波形可能是不规则的。当输出通道工作在串联模式时(PWMCTL 寄存器中的CONxx 置1),那么)使能相应的16 位PWM 输出通道是由PWMEx 的高位控制的,例如:设置PW MCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道1 的使能位控制PWM 的输出。

2.PWM时钟选择寄存器PWM Clock Select Register(PWMCLK)


3.PWM预分频寄存器PWM Prescale Clock Select Register(PWMPRCLK)

PWMPRCLK 寄存器包括ClockA 预分频和ClockB 预分频的控制位。ClockA、ClockB 的值为总线时钟的1/2n (0≤n≤7)。
【说明】PCKB0~PCKB2 是对ClockB进行预分频。
PCKA0~PCKA2 是对ClockA 进行预分频。

4.PWM 极性选择寄存器PWM Polarity Register(PWMPOLx)

该寄存器是0~7通道PWM输出起始极性控制位,用来设置PWM输出的起始电平。
用法:PWMPOL_PPOL0=1--- 通道0 在周期开始时输出为高电平,当计数器等于占空比寄存器的值时,输出为低电平。对外输出波形先是高电平然后再变为低电平。

5.PWM控制寄存器PWM Control Register(PWMCTL)


【用法】
PWMCTL_CON67=1 --- 通道6、7 级联成一个16位的PWM通道。此时只有7 通道的控制字起作用,原通道7的使能位、PWM输出极性选择位、时钟选择控制位以及对齐方式选择位用来设置级联后的PWM输出特性
PWMCTL_CON67=0 --- 通道6,7 通道不级联
CON45、CON23、CON01 的用法同CON67 相似。设置此控制字的意义在于扩大了PWM 对外输出脉冲的频率范围。

PSWAI=1 --- MCU 一旦处于等待状态,就会停止时钟的输入。这样就不会因时钟在空操作而费电;当它置为0,则MCU 就是处于等待状态,也允许时钟的输入。
PFRZ=1 --- MCU 一旦处于冻结状态,就会停止计数器工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值