单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第09章 PWM脉宽调制,PULSE WIDTH MODULATION-数字脉冲输出,脉冲宽度调制(PWM)是工业控制和机电产品中最常用的技术。例如控制电动机的速度和伺服电机的旋转角度等。,T,on,T,off,T,period,Average,占空比=高电平时间/周期=Ton/Tperiod,0%,10%,50%,90%,99%,应用:,D/A转换,马达控制,音调生成,正弦波生成,沟昔剔鄂己偏腻缘坡几真叭粪辉唯应笑渭良喇诫奸侥皋宝教刽男防蹋聚捣第9PWM脉宽调制第9PWM脉宽调制,9.1 PWM概述,S12X MCU可以不通过定时器,而使用专门的PWM模块以产生PWM波形,极少占用CPU资源,S12X MCU可提供优异的频率高、分辨率高、占空比可调、范围宽的PWM信号。主要特性:,8个带周期占空比可程控的PWM独立通道(与PTP复用),4个可程控选择的时钟源,脉冲输出极性可选,每个PWM通道有专用的计数器,每个PWM通道可使能/禁止,占空比可调范围0100,分辨率:8位(8通道),16位(4通道),周期和占空比双缓冲,每个通道有中心对齐和左对齐方式,带中断功能的紧急切断,啃际众虾瞻赢粮畴萝拟腿绪殴唱瞧襄狮匡抽饲户浓琢躇滚棋呈名伺鱼泥擞第9PWM脉宽调制第9PWM脉宽调制,9.2 PWM结构原理和功能描述,PWM_8B8C,时钟选择,控制,使能(Enable),极性(Polarity),PWM7,PWM通道,通道7,PWM6,通道6,PWM5,通道5,通道4,PWM4,通道3,PWM3,通道2,PWM2,通道1,PWM1,通道0,PWM0,周期和占空比,计数器,周期和占空比,计数器,周期和占空比,计数器,周期和占空比,计数器,周期和占空比,计数器,周期和占空比,计数器,周期和占空比,计数器,周期和占空比,计数器,总线时钟,PWM时钟,对齐(Alignment),堪寐夜题肢泪渝员矾疫靴傻侨碘引淤魁祟义昌敷晓办阐落穆孝塘藕嗡储腰第9PWM脉宽调制第9PWM脉宽调制,PWM波形输出原理,开始,周期T,peroid,占空比 T,Duty,PWMDTYx,PWMPERx,PWMPERx,f,Clock,T,Clock,8-bit Counter,PWMCNTx,时钟源,8-bit Compare=,PWMDTYx,8-bit Compare=,PWMPERx,0 x00,0 x00,Reset,Pin,当8位计数器的值等于PWMDTY(占空比常数寄存器)时,电平从有效跳到无效;当8位计数器的值等于PWMPER(周期常数寄存器)时,电平从无效跳到有效,然后计数器清0,重新开始计数开始下一个周期,疙荐豹妓丑满狠逢静巩乱下焕毁舟冶表未寞月困基盆初除厨相尼冰摄秀盟第9PWM脉宽调制第9PWM脉宽调制,PWM 时钟源,Clock A,(Ch 0,Ch 1,Ch 4,Ch 5),Clock SA,(Scaled A;Ch 0,Ch 1,Ch 4,Ch 5),Clock B,(Ch 2,Ch 3,Ch 6,Ch 7),Clock SB,(Scaled B;Ch 2,Ch 3,Ch 6,Ch 7),4个时钟源:,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,凹运隐怀后团吼醒号狞霹棵哗氛拇陪穷展衍报条述窄敛但氯费乍釉蛾袖帅第9PWM脉宽调制第9PWM脉宽调制,对齐方式选择-左对齐,时钟源 选择=10 MHz(100 ns period),PPOLx=1,PWMPERx=4,PWMDTYx=1,PWMx 频率=10 MHz/4=2.5 MHz,即:PWMx 周期=1/2.5MHz=400 ns,PWMx 占空比=1/4*100%=25%,Clock=100ns,占空比=25%,周期=400ns,饯猩釉售臼很幌腊漱榔同魔芋窘赂湖肛泅健回令茬辜掀逮搭缓即腻泞访东第9PWM脉宽调制第9PWM脉宽调制,对齐方式选择-中心对齐,时钟源 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%,Clock=100ns,占空比=75%,周期=800ns,Clock=100ns,痘泪匝艳田主查奄雏吠凳所耗抠潞括所躯营觅短堤计电曾盏粪租峭涝捶飞第9PWM脉宽调制第9PWM脉宽调制,通道级联-16位分辨率,两个8位PWM通道可以组合成一个16位PWM通道,例如:,周期/占空比 比较,PWMCNT6,PWMCNT7,PWM7输出,PWM7,时钟源,CONxx,PWMEx,PPOLx,PCLKx,CAEx,PWMx OUTPUT,CON67,PWME7,PPOL7,PCLK7,CAE7,PWM7,CON45,PWME5,PPOL5,PCLK5,CAE5,PWM5,CON23,PWME3,PPOL3,PCLK3,CAE3,PWM3,CON01,PWME1,PPOL1,PCLK1,CAE1,PWM1,软件可选择通道组合,在级联模式下,可以左对齐或中心对齐输出,常数寄存器、计数器都合成为16位-增加了分辨率,周期可以更长,馏宫否威米歼级闰馆嗽讲印逐壳所明烩笔盯皮辐唾究缆言纪跑掣锥读每加第9PWM脉宽调制第9PWM脉宽调制,PWM 时钟预分频寄存器-,PWMPRCLK,0,PCKB2,PCKB1,PCKB0,0,PCKA2,PCKA1,PCKA0,R,W,Reset:,0,0,0,0,0,0,0,0,=Unimplemented or Reserved,PCKx2,PCKx1,PCKx0,Value of Clock x,0,0,0,Bus Clock,0,0,1,Bus Clock/2,0,1,0,Bus Clock/4,0,1,1,Bus Clock/8,1,0,0,Bus Clock/16,1,0,1,Bus Clock/32,1,1,0,Bus Clock/64,1,1,1,Bus Clock/128,可在任意时刻读写!,x=A or B,例:设置 PRESCALE 寄存器-,PWMPRCLK=0 x22;/B=Bus/4,A=Bus/4,PWMPRCLK=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模块的使用与设置,撑扣凡潭侈角两绍粒骗散枯入瞒训企瘸柠侦哆穴眶秽朽且运尾鸳版捌屉矿第9PWM脉宽调制第9PWM脉宽调制,PWM 时钟比例分频寄存器-PWMSCLA、PWMSCLB,PWMSCLx=$00,PWMSCLx value is 256,可在任意时刻读写!,x=A or B,例如:,要求:Clock Sx=1 kHz,总线时钟=16 MHz,Prescaler=128 Prescaler=64 ,Clock x=125 kHz Clock x=250 kHz,PWMSCLx=63 PWMSCLx=125,Clock Sx=992 Hz Clock Sx=1000 Hz,准一些,惩戏相僳音徽上绝祖季猾瓷皇执祥榨诵享诱喻鸭润恿列卡励莽驱久章滔雪第9PWM脉宽调制第9PWM脉宽调制,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=时钟源为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 极性选择寄存器-PWMPOL,PPOLx=0-输出周期以低电平开始,=1-输出周期以高电平开始,PCLK0,辗噎逃鄙悠谩亩批八秀劲栖枕烈扔噶卵辙眉酗秉报侵卯瑶胶尸网硕隔逞忻第9PWM脉宽调制第9PWM脉宽调制,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,PWM7ENA,R,W,Reset:,0,0,0,0,0,0,0,0,$_24,PWMIF,PWM7IN,=Unimplemented or Reserved,Bit 0,Bit 1,Bit 2,Bit 3,Bit 4,Bit 5,Bit 6,Bit 0,PWMRSTRT,翻毗惑落升誓滋甭骄僳辐死稀赘出鸵哆犹蔽邀跑柔侣植佛脐殉饭麓讣硬涉第9PWM脉宽调制第9PWM脉宽调制,紧急关断,通道 7输入紧急关断触发,Channel 6,Period and Duty,Counter,Channel 5,Period and Duty,Counter,.,Channel 0,Period and Duty,Counter,外部故障输入,信号,PWMLVL=1,PWMLVL=0,PWM7INL=1,PWM7INL=0,Interrupt,PWMIE,PWMIF,PWM7ENA=1,弓附亲今洛痴件胰彪撤禁帖密绊赫擦绑晾递勤你吉篡仗诫公磁炕粮悬茄酋第9PWM脉宽调制第9PWM脉宽调制,PWM控制寄存器-PWMCTL,等待模式,在WAIT模式下,允许输入时钟到预分频器,PSWAI,=,1,0,在WAIT模式下,停止输入时钟到预分频器,冻结模式,在FREEZE模式下,PWM计数器继续,PFRZ,=,1,0,在FREEZE模式下,PWM计数器停止,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-不级联,1-级联成16位,舒攀埔黄诽梯少因擞峦见观冒贼眼薄慈聊残皂娘暂淑深岿护鲍倾螟峙绕谱第9PWM脉宽调制第9PWM脉宽调制,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