常驻嘉宾
- 积分
- 3818
- 威望
- 304
- 贡献
- 3486
- 兑换币
- 0
- 注册时间
- 2010-2-19
- 在线时间
- 14 小时
|
飞思卡尔全国智能车制作交流群 102662535 人多资料多力量大 只为大家少走弯路,无其他目的手把手教你写S12XS128程序--PWM模块介绍
该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。本文为第一讲,开始介绍该MCU的PWM模块。
PWM 调制波有 8 个输出通道,每一个输出通道都可以独立的进行输出。每 一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器 和两个可供选择的时钟源。每一个 PWM 输出通道都能调制出占空比从 0—100% 变化的波形。
PWM 的主要特点有:
1、它有 8 个独立的输出通道,并且通过编程可控制其输出波形的周期。
2、每一个输出通道都有一个精确的计数器。
3、每一个通道的 PWM 输出使能都可以由编程来控制。
4、PWM 输出波形的翻转控制可以通过编程来实现。
5、周期和脉宽可以被双缓冲。当通道关闭或 PWM 计数器为 0 时,改变周期和脉宽才起作用。
6、8 字节或 16 字节的通道协议。
7、有 4 个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时 钟频率。
8、通过编程可以实现希望的时钟周期。
9、具有遇到紧急情况关闭程序的功能。
10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。
1、PWM启动寄存器PWME
PWME 寄存器每一位如图 1 所示:
复位默认值:0000 0000B
图 1 PWME 寄存器
每一个PWM 的输出通道都有一个使能位 PWMEx 。它相当于一个开关,用来启动和关闭相应通道的 PWM 波形输出。当任意的 PWMEx 位置 1,则相关的 PWM 输出通道就立刻可用。
用法: PWME7=1 --- 通道7 可对外输出波形
PWME7=0 --- 通道7 不能对外输出波形
注意:在通道使能后所输出的第一个波形可能是不规则的。当输出通道工作在串联模式时(PWMCTL 寄存器中的 CONxx 置1),那么)使能相应的 16 位 PWM 输出通道是由 PWMEx 的高位控制的,例如 :设置 PWMCTL_CON01 = 1,通道0、1级联,形成一个16位 PWM 通道,由通道 1 的使能位控制 PWM 的输出。
2、PWM时钟选择寄存器PWMCLK
PWMCLK 寄存器每一位如图3 所示:
复位默认值:0000 0000B
图2 PWMCLK 寄存器
S12的PWM 共有四个时钟源,每一个 PWM 输出通道都有两个时钟可供选择(ClockA、ClockSA 或Clock B、ClockSB))。其中0、1、4、5 通道可选用ClockA和ClockSA,2、3、6、7 通道可选用ClockB、ClockSB 通道。该寄存器用来实现几个通道时钟源的选择。
用法: PCLK0 = 1 --- 通道0(PTP0)的时钟源设为ClockSA
PCLK2 = 0 --- 通道2(PTP2)的时钟源设为ClockB
1、PWM预分频寄存器PWMPRCLK
PWMPRCLK 寄存器每一位如图3 所示:
复位默认值:0000 0000B
图 3 PWMPRCLK 寄存器
PWMPRCLK 寄存器包括ClockA预分频和ClockB预分频的控制位。ClockA、ClockB的值为总线时钟的1/2n (0≤n≤7),具体设置参照图4和图5
图 4 Clock A 预分频设置
图5 Clock B 预分频设置
PCKB0~PCKB2 是对ClockB进行预分频。
PCKA0~PCKA2 是对ClockA进行预分频。
2、PWM分频寄存器PWMSCLA、PWMSCLB
PWMSCLA 寄存器每一位如图 6 所示:
图6 PWMSCLA寄存器
Clock SA 是通过对 PWMSCLA 寄存器的设置来对ClockA 进行分频而产生的。其计算公式为:
Clock SA=Clock A /(2*PWMSCLA)
PWMSCLB 寄存器与PWMSCLA 寄存器相似,Clock SB 就是通过对PWMSCLB 寄存器的设置来对 ClockB 进行分频而产生的。其计算公式为:
Clock SB=Clock B /(2*PWMSCLB)
1、PWM极性选择寄存器PWMPOL
PWMPOL 寄存器每一位如图7 所示:
该寄存器是0~7通道PWM输出起始极性控制位,用来设置PWM输出的起始电平。
用法:PWMPOL_PPOL0=1--- 通道 0 在周期开始时输出为高电平,当计数器等于占空比寄存器的值时,输出为低电平。对外输出波形先是高电平然后再变为低电平。
2、PWM波形对齐寄存器PWMCAE
PWMCAE 寄存器每一位如图 8 所示:
图 8 PWMCAE 寄存器
PWMCAE 寄存器包含 8 个控制位来对每个 PWM 通道设置左对齐输出或中心对齐输出。
用法: PWMCAE_CAE0 = 1 --- 通道0 中心对齐输出
PWMCAE_CAE7 = 0 --- 通道7 左对齐输出
注意:只有输出通道被关闭后才能对其进行设置,即通道被激活后不能对其进行设置。
1、PWM控制寄存器PWMCTL
PWMCTL 寄存器每一位如图 9 所示:
图 9 PWMCTL 寄存器 |
|