第9PWM脉宽调制.ppt

上传人:本田雅阁 文档编号:2114194 上传时间:2019-02-16 格式:PPT 页数:19 大小:510.02KB
返回 下载 相关 举报
第9PWM脉宽调制.ppt_第1页
第1页 / 共19页
第9PWM脉宽调制.ppt_第2页
第2页 / 共19页
第9PWM脉宽调制.ppt_第3页
第3页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第9PWM脉宽调制.ppt》由会员分享,可在线阅读,更多相关《第9PWM脉宽调制.ppt(19页珍藏版)》请在三一文库上搜索。

1、第09章 PWM脉宽调制,PULSE WIDTH MODULATION-数字脉冲输出 脉冲宽度调制(PWM)是工业控制和机电产品中最常用的技术。例如控制电动机的速度和伺服电机的旋转角度等。,Ton,Toff,Tperiod,Average,占空比=高电平时间/周期 =Ton/Tperiod,9.1 PWM概述,S12X MCU可以不通过定时器,而使用专门的PWM模块以产生PWM波形,极少占用CPU资源 S12X MCU可提供优异的频率高、分辨率高、占空比可调、范围宽的PWM信号。主要特性:, 8个带周期占空比可程控的PWM独立通道(与PTP复用) 4个可程控选择的时钟源 脉冲输出极性可选 每个

2、PWM通道有专用的计数器 每个PWM通道可使能/禁止 占空比可调范围0100 分辨率: 8位 (8通道), 16位 (4通道) 周期和占空比双缓冲 每个通道有中心对齐和左对齐方式 带中断功能的紧急切断,9.2 PWM结构原理和功能描述,PWM波形输出原理,开始,周期Tperoid,占空比 TDuty PWMDTYx,PWMPERx,PWMPERx,fClock, TClock,8-bit Counter,PWMCNTx,时钟源,8-bit Compare =,PWMDTYx,8-bit Compare =,PWMPERx,0x00,0x00,Reset,Pin,当8位计数器的值等于PWMDTY

3、(占空比常数寄存器)时,电平从有效跳到无效; 当8位计数器的值等于PWMPER(周期常数寄存器)时,电平从无效跳到有效,然后计数器清0,重新开始计数开始下一个周期,PWM 时钟源,Bus Clock,PWMPRCLK,Clock SA,Clock SB,Clock A,Clock B,PWMSCLA,PWMSCLB,预分频: 1、2、4、8、16、32、64、128,比例分频: 2、4、8、16、32、64、512,比例分频: 2、4、8、16、32、64、512,对齐方式选择-左对齐,时钟源 选择= 10 MHz (100 ns period) PPOLx = 1 PWMPERx = 4 P

4、WMDTYx = 1,PWMx 频率 = 10 MHz/4 = 2.5 MHz 即:PWMx 周期 = 1/2.5MHz=400 ns PWMx 占空比 = 1/4*100% = 25%,对齐方式选择-中心对齐,时钟源 Clock = 10 MHz (100 ns period) PPOLx = 0 PWMPERx = 4 PWMDTYx = 1,PWMx 频率 = 10 MHz/8 = 1.25 MHz PWMx 周期 = 1/1.25MHz=800 ns PWMx 占空比 = (4-1)/4*100% = 75%,通道级联-16位分辨率,两个8位PWM通道可以组合成一个16位PWM通道,例

5、如:,周期/占空比 比较,PWMCNT6,PWMCNT7,PWM7输出,PWM7 时钟源,软件可选择通道组合 在级联模式下,可以左对齐或中心对齐输出 常数寄存器、计数器都合成为16位-增加了分辨率,周期可以更长,PWM 时钟预分频寄存器-PWMPRCLK,0,PCKB2,PCKB1,PCKB0,0,PCKA2,PCKA1,PCKA0,R,W,Reset:,0,0,0,0,0,0,0,0,可在任意时刻读写! x = A or B,例:设置 PRESCALE 寄存器- PWMPRCLK = 0x22; / B= Bus/4, A = Bus/4 PWMPRCLK = 0x07; / B = Bus

6、, A = Bus/128,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,9.3 PWM模块的使用与设置,PWM 时钟比例分频寄存器-PWMSCLA、PWMSCLB,PWMSCLx = $00 PWMSCLx value is 256 可在任意时刻读写! x = A or B,准一些,PCLK6,PCLK5,PCLK4,PCLK3,PCLK2,PCLK1,R,W,Reset:,0,0,0,0,0,0,0,0,PCLK7,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,PCLK5 通道 5时钟选择

7、1 =时钟源为SA 0 =时钟源为A PCLK4 通道 4时钟选择 1 =时钟源为SA 0 =时钟源为A,PCLK3 通道 3时钟选择 1 =时钟源为SB. 0 =时钟源为B PCLK2 通道 2时钟选择 1 =时钟源为SB 0 =时钟源为B,PCLK1 通道 1时钟选择 1 =时钟源为SA 0 =时钟源为A PCLK0 通道 0时钟选择 1 =时钟源为SA 0 =时钟源为A,PCLK7 通道 7时钟选择 1 = 通道7的时钟源为SB 0 =通道7的时钟源为B. PCLK6 通道 6时钟选择 1 =时钟源为SB. 0 =时钟源为B,PWM 时钟选择寄存器- PWMCLK,PWM 极性选择寄存器

8、-PWMPOL,PPOLx=0-输出周期以低电平开始 =1-输出周期以高电平开始,PCLK0,PWM 中心对齐使能寄存器-PWMCAE,CAE6,CAE5,CAE4,CAE3,CAE2,CAE1,CAE0,R,W,Reset:,0,0,0,0,0,0,0,0, $_04,CAE7,CAEx 中心对齐模式选择,通道 x 0 = 通道 x 左对齐输出 1 = 通道 x 中心对齐输出,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,.,PWM 关断寄存器-PWMSDN 主要用于处理通道7的紧急关闭中断,PWMIE,PWMLVL,0,PWM7INL,PW

9、M7ENA,R,W,Reset:,0,0,0,0,0,0,0,0, $_24,PWMIF,PWM7IN,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,PWMRSTRT,紧急关断,通道 7输入紧急关断触发,.,外部故障输入 信号,PWMLVL=1,PWMLVL=0,PWM7INL=1,PWM7INL=0,Interrupt,PWMIE,PWMIF,PWM7ENA=1,PWM控制寄存器-PWMCTL,等待模式,在WAIT模式下,允许输入时钟到预分频器,PSWAI =,1,0,在WAIT模式下,停止输入时钟到预分频器,CON45,CON01,0,PS

10、WAI,R,W, $_05,CON67,CON23,PFRZ,0,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,使能/禁止时钟 在WAIT模式时,PWM计数器停止 在Freeze模式时,通道级联控制: 0-不级联 1-级联成16位,PWM 通道周期寄存器-PWMPERx,Bit 6,Bit 5,Bit 4,Bit 3,Bit 2,Bit 1,Bit 0,R,W,Reset:,1,1,1,1,1,1,1,1, $_14-_1B,Bit 7,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,PWM 通道

11、占空比寄存器-PWMDTYx,Bit 6,Bit 5,Bit 4,Bit 3,Bit 2,Bit 1,Bit 0,R,W,Reset:,1,1,1,1,1,1,1,1, $_1C-_23,Bit 7,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,注:周期与占空比计算按书上公式,PWM使能/禁止寄存器-PWME,PWME6,PWME5,PWME4,PWME3,PWME2,PWME1,PWME0,R,W,Reset:,0,0,0,0,0,0,0,0, $_00,PWME7,0 = 通道x禁止 1 = 通道x使能,下一个时钟开始输出PWM,通道7,通

12、道6,通道 0,使能/禁止 PWM 通道: PWME5 = 1; / Enable PWM channel 5 PWME3 = 0; / Disable PWM channel 3 PWME = 0xFF / Enable all 8 PWM channels PWME = 0; / Disable all 8 PWM channels,软件示例,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,9.4 PWM的应用实例,S12X MCU中的PWM模块一旦设置完成,不需软件干预即可生成PWM信号,除非要改变周期或占空比。初始化步骤: 关闭PWM通道

13、 PWME 选择极性 PWMPOL 选择时钟 PWMCLK、PWMPRCLK、PWMSCLA、PWMSCLB 选择对齐方式 PWMCAE 设置占空比和周期 PWMDTY、PWMPER 使能PWM通道 PWME 【例9-1】PWM输出脉冲序列 【例9-2】PWM用作D/A转换,【例9-1】使用S12X的PWM模块输出一定周期和占空比的脉冲序列。PWM波形从PP0口(PWM0)输出,频率为125Hz,占空比为50的方波信号,时钟源采用ClockSA。假设总线时钟频率fBus=2 MHz。 C语言程序代码如下: /函数:PWM初始化/ void PWM_Init() PWME=0x00; /禁止PW

14、M输出 PWMCTL=0x00; /通道独立不级联,Wait、Freeze模式下继续 PWMPOL=0xFF; /脉冲极性,先高后低 PWMCAE=0x00; /左对齐输出方式 PWMCLK=0xFF; /使用ClockSA时钟 PWMPRCLK=0x33; /ClockA时钟为总线时钟8分频,=2MHz/8=250KHz PWMSCLA=50; /ClockSA= ClockA / (2*PWMSCLA) = 250KHz/ (2*50) = 2.5KHz PWMPER0=20; /设定通道0周期 = (1/2.5KHz) * 20 = 8ms (125Hz) PWMDTY0=10; /设定

15、通道0占空比 = 10/20 =50% /主函数/ void main() DisableInterrupts; /关总中断, = asm SEI PWM_Init(); /调用PWM初始化函数 PWME=0x01; /使能通道0的PWM输出 while(1) ,【例9-2】,#include /* common defines and macros */ #include “derivative.h“ /* derivative-specific definitions */ /#define PWM_BEEP /条件编译,选择为PWM输出控制蜂鸣器或是LED亮暗控制 / / 程序说明:PWM脉宽调制的D/A输出控制范例:控制蜂鸣器或是LED亮暗 / 硬件平台:CQU-S12X-CORE/改变占空比,使其在0%100%变化 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1