第9PWM脉宽调制.ppt

上传人:sccc 文档编号:5116298 上传时间:2023-06-05 格式:PPT 页数:19 大小:510.02KB
返回 下载 相关 举报
第9PWM脉宽调制.ppt_第1页
第1页 / 共19页
第9PWM脉宽调制.ppt_第2页
第2页 / 共19页
第9PWM脉宽调制.ppt_第3页
第3页 / 共19页
第9PWM脉宽调制.ppt_第4页
第4页 / 共19页
第9PWM脉宽调制.ppt_第5页
第5页 / 共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个可程控选择的时钟源 脉冲输出极性可选 每个PWM通道

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

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

5、以左对齐或中心对齐输出 常数寄存器、计数器都合成为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=0 x22;/B=Bus/4,A=Bus/4PWMPRCLK=0 x07;/B=Bus,A=Bus/128,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,9.3 PWM模块的使用与设置,PWM 时

6、钟比例分频寄存器-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时钟选择 1=时钟源为SA 0=时钟源为APCLK4 通道 4时钟选择 1=时钟源为SA 0=时钟源为A,PCLK3 通道 3时钟选择 1=时钟源为SB.0=时钟源为BPCLK2 通道 2

7、时钟选择 1=时钟源为SB 0=时钟源为B,PCLK1 通道 1时钟选择1=时钟源为SA0=时钟源为APCLK0 通道 0时钟选择1=时钟源为SA0=时钟源为A,PCLK7 通道 7时钟选择 1=通道7的时钟源为SB 0=通道7的时钟源为B.PCLK6 通道 6时钟选择 1=时钟源为SB.0=时钟源为B,PWM 时钟选择寄存器-PWMCLK,PWM 极性选择寄存器-PWMPOL,PPOLx=0-输出周期以低电平开始=1-输出周期以高电平开始,PCLK0,PWM 中心对齐使能寄存器-PWMCAE,CAE6,CAE5,CAE4,CAE3,CAE2,CAE1,CAE0,R,W,Reset:,0,0,

8、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,PWM7ENA,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输入紧急关断

9、触发,.,外部故障输入信号,PWMLVL=1,PWMLVL=0,PWM7INL=1,PWM7INL=0,Interrupt,PWMIE,PWMIF,PWM7ENA=1,PWM控制寄存器-PWMCTL,等待模式,在WAIT模式下,允许输入时钟到预分频器,PSWAI=,1,0,在WAIT模式下,停止输入时钟到预分频器,CON45,CON01,0,PSWAI,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-不级

10、联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 通道占空比寄存器-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

11、 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,通道6,通道 0,.,使能/禁止 PWM 通道:PWME5=1;/Enable PWM channel 5PWME3=0;/Disable PWM channel 3PWME=0 xFF/Enable all 8 PWM channelsPWME=0;/Disable all 8

12、 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通道 PWME选择极性 PWMPOL选择时钟 PWMCLK、PWMPRCLK、PWMSCLA、PWMSCLB选择对齐方式 PWMCAE设置占空比和周期 PWMDTY、PWMPER使能PWM通道 PWME【例9-1】PWM输出脉冲序列【例9-2】PWM用作D/A转换,【例9-1】使用S12X的PWM模块输出一定周期和占

13、空比的脉冲序列。PWM波形从PP0口(PWM0)输出,频率为125Hz,占空比为50的方波信号,时钟源采用ClockSA。假设总线时钟频率fBus=2 MHz。C语言程序代码如下:/函数:PWM初始化/void PWM_Init()PWME=0 x00;/禁止PWM输出 PWMCTL=0 x00;/通道独立不级联,Wait、Freeze模式下继续 PWMPOL=0 xFF;/脉冲极性,先高后低 PWMCAE=0 x00;/左对齐输出方式 PWMCLK=0 xFF;/使用ClockSA时钟 PWMPRCLK=0 x33;/ClockA时钟为总线时钟8分频,=2MHz/8=250KHz PWMSC

14、LA=50;/ClockSA=ClockA/(2*PWMSCLA)=250KHz/(2*50)=2.5KHz PWMPER0=20;/设定通道0周期=(1/2.5KHz)*20=8ms(125Hz)PWMDTY0=10;/设定通道0占空比=10/20=50%/主函数/void main()DisableInterrupts;/关总中断,=asm SEI PWM_Init();/调用PWM初始化函数 PWME=0 x01;/使能通道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备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号