单片机第7章S12脉宽调制模块与其应用实例_第1页
单片机第7章S12脉宽调制模块与其应用实例_第2页
单片机第7章S12脉宽调制模块与其应用实例_第3页
单片机第7章S12脉宽调制模块与其应用实例_第4页
单片机第7章S12脉宽调制模块与其应用实例_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机第7章S12脉宽调制模块与其应用实例第一页,共81页。第7章S12脉宽调制模块及其应用实例本章内容

7.1PWM模块概述

7.2PWM模块结构和特点

7.3PWM模块工作原理

7.4PWM模块寄存器及设置

7.5PWM模块基础应用实例

7.6智能车系统中PWM模块的应用第二页,共81页。第7章S12脉宽调制模块及其应用实例7.1PWM模块概述【脉冲宽度调制(Pulse

Width

Modulate,PWM】通过软件编程来调节波形的占空比和周期,以产生精确的输出脉冲序列。7.1.1PWM信号的产生方法利用单片机实现PWM波的方法:利用软件延时通过指令构成程序循环,在不同的循环结束时,改变I/O口的电平。【缺点】极大地占用了CPU资源,而且不易产生精确的脉冲序列。利用输出比较功能或模数递减计数器通过软件编程,任意设定高、低电平的时间常数,输出PWM脉冲信号。【缺点】由于需要重置计数初值,在一定程度上占用CPU的时间。第三页,共81页。第7章S12脉宽调制模块及其应用实例7.1PWM模块概述7.1.1PWM信号的产生方法利用内置的PWM模块单片机内部集成的PWM模块专门用于输出PWM信号。【优点】基本上不占用CPU资源。7.1.2微控制器PWM模块的用途【应用场合】工业控制和消费类机电产品。【D/A转换】与一个低通滤波器配合,输出一个与脉宽成正比的直流电压。【开关量控制】【变频调速】利用PWM模块产生不同频率的电压信号,调节交流电动机的转速,常用于变频器、变频空调、节能冰箱等。第四页,共81页。第7章S12脉宽调制模块及其应用实例7.1PWM模块概述7.1.2PWM模块的用途【平均电流或电压控制】直流电动机调速灯光亮度调节比例电磁阀控制——电喷汽油机的怠速控制阀、EGR控制阀、VVT机构机油压力控制阀,高压共轨柴油机的PCR阀、VNT增压压力调节阀等。

直流伺服电动机控制——航模或智能小车的舵机控制,发动机节气门调节,无人机机翼调节,无人自动驾驶汽车的方向盘控制等。

【控制命令字编码】无线遥控车的控制,通信编码,电视机、空调的遥控部分。第五页,共81页。第7章S12脉宽调制模块及其应用实例7.2PWM模块结构和特点MC9S12DG128单片机的PWM模块与端口P共享引脚。当PWM功能激活后,P口对应引脚的通用I/O功能自动关闭。PWM功能未启用时,相应的引脚可用作通用I/O口。【PWM模块特点】工作频率高——当振荡器频率为16MHz时,PWM模块的最高时钟频率可达25MHz。占空比可调范围宽——占空比调节范围0~100%。分辨率高——最高分辩能力达0.15%。有效时间无效时间周期平均值0%10%50%90%99%第六页,共81页。第7章S12脉宽调制模块及其应用实例7.2.1PWM模块功能【组成】时钟源、预分频器、时钟选择开关、分频器和时钟控制电路、PWM通道、使能控制、极性选择、对齐方式选择以及对应的输出引脚。

7.2PWM模块结构和特点第七页,共81页。第7章S12脉宽调制模块及其应用实例7.2.1PWM模块功能【组成】8路8位独立的PWM通道,通过相应的设置也可以变为4个16位PWM通道。每个PWM通道由独立运行的8位双向脉冲计数器PWMCNT、周期比较寄存器PWMPER和占空比比较寄存器PWMDTY等组成。7.2PWM模块结构和特点第八页,共81页。第7章S12脉宽调制模块及其应用实例7.2.1PWM模块功能【设置】由周期寄存器和占空比寄存器确定PWM波形的输出周期和占空比。由极性寄存器PWMPOL选择PWM输出波形的极性。由对齐方式选择寄存器PWMCAE选择PWM输出波形的对齐方式。【复位】复位后8位加/减脉冲计数器被设置为递增计数,所有通道禁止,即所有计数器不计数。【紧急关闭】PWM通道7除了用于波形输出外,还作为紧急关闭功能的输入。【中断】PWM模块只有一个中断源,在紧急关闭时产生。若PWM关闭寄存器PWMSDN中的中断允许位PWMIE置位,且紧急关闭允许(PWMSDN中的控制位PWM7ENA=1),当PWM7通道出现规定的紧急关闭有效电平(由PWM7IL位决定低电平或高电平)时,中断标志PWMIF置位,向CPU提出中断请求。第九页,共81页。第7章S12脉宽调制模块及其应用实例7.2PWM模块结构和特点7.2.2PWM模块基本特性具有周期和占空比可编程的8个独立PWM通道;每个PWM通道具有独立的计数器;每个通道可编程允许/禁止PWM功能;每个通道可软件选择PWM脉冲极性;具有双缓冲的周期和占空比寄存器,当到达有效周期终点(PWM到达0)或通道禁止时,修改值生效;每个通道可编程中心对齐或左对齐输出;4个时钟源(A、B、SA和SB)提供宽带频率,可编程的时钟选择逻辑;紧急关闭。第十页,共81页。第7章S12脉宽调制模块及其应用实例7.2PWM模块结构和特点7.2.3操作模式【正常工作模式】如果PWM模块使能,PWM连续不断地工作。如果8个通道都被禁止(PWME7~PWME0=0),为了节电,预分频器计数器被关闭。【等待模式】等待模式下,如果PWM控制寄存器PWMCTL中的PSWAI位=0,PWM可以连续不断地工作。如果PWMCTL寄存器中的PSWAI位=1,通过禁止预分频器的输入时钟,可以实现低功耗,此时PWM不工作,PWM输出保持静态(高或低)。第十一页,共81页。第7章S12脉宽调制模块及其应用实例7.2PWM模块结构和特点7.2.3操作模式【冻结模式】在冻结模式下,PWM可以继续工作。通过设置PWMCTL寄存器中的PFRZ位,可以选择禁止预分频器的时钟输入。即,如果PFRZ=1,只要MCU处于冻结模式,预分频器的输入时钟被禁止。为了重新激活预分频器时钟,设置PFRZ=0或退出冻结模式。【停止模式】在停止模式下,由于从IP总线到模块的所有时钟停止,因此,PWM模块停止工作,PWM输出保持静态(高或低)。第十二页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理【PWM模块工作原理】PWM模块工作时,对应有效电平宽度的计数值存放在占空比寄存器中,对应脉冲周期的计数值存放在周期寄存器中。每个通道波形开始的电平由极性选择寄存器PWMPOL中的PPOLx位决定(例如高电平)。PWM启动后,开始一个输出周期,计数器从0开始对时钟脉冲进行计数。当计数值等于占空比寄存器中的预置值时,占空比比较器输出有效,输出控制电路使引脚电平变为规定的极性(例如低电平),计数器继续计数。当计数值等于周期寄存器中的预置值时,周期比较器输出有效,输出控制电路使引脚电平反向(例如高电平),同时复位计数器,开始下一个输出周期。第十三页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.1PWM时钟的产生【时钟电路组成】时钟输入控制、预分频器、分频器和时钟选择电路。【PWM预分频器输入时钟】总线时钟ECLK。由PWM控制寄存器PWMCTL中的PFRZ位、PWM允许寄存器中的8位PWME7~PWME0以及冻结模式信号控制。第十四页,共81页。第7章S12脉宽调制模块及其应用实例7.3.1PWM时钟的产生当MCU处于冻结模式(冻结模式信号激活,FreezeModeSignal=1)时,如果冻结模式PWM停止位PFRZ=1,则禁止总线时钟输入。当所有8个PWM通道被禁止(PWME7~PWME0=0)时,也禁止总线时钟输入。第十五页,共81页。第7章S12脉宽调制模块及其应用实例7.3.1PWM时钟的产生【预分频】【PWM模块时钟源】ClockA、ClockB、ClockSA和ClockSB。ClockA和ClockB由预分频器对总线时钟分频得到。ClockA和ClockB的分频因子分别由PWM预分频时钟选择寄存器PWMPRCLK中的PCKA2、PCKA1、PCKA0和PCKB2、PCKB1、PCKB0位确定,分频系数1~1/128。第十六页,共81页。第7章S12脉宽调制模块及其应用实例7.3.1PWM时钟的产生【时钟分频】一个8位重装载递减计数器从分频寄存器(PWMSCLA)装入用户编程的分频值,对ClockA再次分频。当递减计数器等于1时,发生两件事:脉冲输出和8位计数器重装载。计数器电路输出信号进一步2分频,得到ClockSA,分频比为2,4,6,8,…,512。ClockSA=ClockA/(2PWMSCLA)第十七页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.1PWM时钟的产生【时钟分频】ClockB由另一个重装载计数器再次分频,然后再除以2,得到ClockSB,分频比为2,4,6,8,…,512。重装载计数器的分频比由PWM比例因子寄存器B(PWMSCLB)决定。ClockSB=ClockB/(2PWMSCLB)第十八页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.1PWM时钟的产生【时钟选择】每个PWM通道可以选择两个时钟之一,预分频时钟(ClockA或ClockB)或分频后的时钟(ClockSA或ClockSB)。用PWMCLK寄存器中的PCLKx控制位选择时钟。通道0、1、4和5,只能选择时钟ClockA或ClockSA。通道2、3、6和7,只能选择时钟ClockB或ClockSB。第十九页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.2PWM通道定时器PWM模块的核心——通道定时器。【定时器通道组成】1个通道计数器PWMCNTx1个周期寄存器PWMPERx1个占空比寄存器PWMDTYx(每个寄存器为8位)。波形输出周期由周期寄存器和通道计数器的数值协调控制。占空比由占空比寄存器和通道计数器值协调控制。用户可以选择波形输出的对齐方式和每个通道开始输出的极性。第二十页,共81页。第7章S12脉宽调制模块及其应用实例7.3.2PWM通道定时器【PWM的使能】每个PWM通道有1个启动波形输出的使能位PWMEx。当PWMEx=0时,通道禁止,控制门关闭,通道计数器不计数;当PWMEx=1时,控制门打开,允许时钟送到PWM电路,同时,输出多路转换器切换,立即使能相应的PWM输出。PWM定时器通道框图

第二十一页,共81页。第7章S12脉宽调制模块及其应用实例每个PWM通道有一个极性控制位PPOLx,用来选择PWM输出触发器Q端输出或/Q端输出,决定波形周期开始时的电平。当极性选择寄存器PWMPOL中的极性选择位PPOLx=1时,PWM波形开始为高电平,占空比寄存器中的数值代表高电平的持续时间。如果极性选择位PPOLx=0,开始时输出为低电平,占空比寄存器中的数值代表低电平的持续时间。PWM定时器通道框图

7.3.2PWM通道定时器【PWM的极性选择】第二十二页,共81页。第7章S12脉宽调制模块及其应用实例7.3.2PWM通道定时器【PWM周期和占空比】每个PWM通道的周期寄存器PWMPERx和占空比寄存器PWMDTYx都是双缓冲的,当改变寄存器中的数值后,出现下列情况之一时才生效:当前有效周期结束;写计数寄存器(计数器复位到$00);通道被禁止。【写操作】如果PWM通道被禁止,写周期寄存器和占空比寄存器时,数值将保存到对应的锁存器和缓冲器中。当通道被禁止时,向周期寄存器写0,将导致下一个时钟到来时刻计数器复位。通过向占空比寄存器或周期寄存器写入新的数值,然后写计数器,可以“立即”强制占空比或周期变化。因为这将迫使计数器复位,并且锁存新的占空比或周期值。第二十三页,共81页。第7章S12脉宽调制模块及其应用实例7.3.2PWM通道定时器【PWM定时器的计数器】每个PWM通道有一个专用的8位加/减计数器PWMCNTx。PWM通道使能后,计数器PWMCNTx按选定的时钟源速率工作。当PWM通道计数器工作时,如果相应的PWM通道被禁止(PWMEx=0),则计数器PWMCNTx停止计数;当相应的PWM通道重新变为允许时(PWMEx=1),计数器从PWMCNTx寄存器中的计数值开始,继续计数,在上一次停止处继续输出波形。读通道计数器在任何时刻可以读取每个通道计数器中的数值,不会影响计数器和PWM通道的工作。第二十四页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.2PWM通道定时器【PWM定时器的计数器】写通道计数器向计数器写任何值都将使计数器复位到$00,并将计数器设置为递增计数,同时,立即将缓冲器中的数值装入占空比寄存器和周期寄存器,然后根据极性选择位改变输出电平。第二十五页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.3PWM输出方式【输出类型选择】左对齐输出和居中对齐输出,由PWM居中对齐允许寄存器PWMCAE中的CAEx位决定。根据选择的输出模式(左对齐或居中对齐),PWM计数器与周期寄存器的匹配情况不同:在左对齐输出模式下,计数器从0开始递增计数,直到等于PWM周期寄存器的值,在有效周期结束时,计数器被清0。在居中对齐输出模式下,计数器从0开始先递增计数,当等于PWM周期寄存器的值后,再递减计数,直至回到0。第二十六页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【左对齐输出方式】当PWM居中对齐允许寄存器PWMCAE中的控制位CAEx=0时,PWM通道被设置成左对齐输出方式。此时,8位计数器PWMCNTx只能被设置成循环递增计数。当CAEX=0时,产生三个动作:(1)复位计数器前的T触发器,使其输出Q=0,计数器PWMCNTx设置成递增计数;(2)通过一个与门使计数器前的触发器的T端置0,使Q端电平保持不变;(3)打开上面的与门,这样,当到达一个周期的计数终点时,允许周期比较器复位计数器PWMCNTx和输出T触发器。第二十七页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【左对齐输出方式】PWMEx=1时,产生两个动作:(1)将控制门打开,允许时钟输入;(2)切换输出多路转换器,关闭P口的通用I/O功能,允许PWM脉冲输出。输出波形的初始电平由PWM极性寄存器PWMPOL中的极性选择位PPOLx定义,决定波形由输出T触发器的Q端输出或/Q端输出。PWM启动后,计数器PWMCNTx从0开始递增计数,开始一个输出周期。第二十八页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【左对齐输出方式】当计数值等于占空比寄存器PWMDTYx中的设定值时,占空比比较器输出高电平,使输出T触发器翻转,PWM波形改变状态。此时,PWMCNTx继续计数。

当计数值等于周期寄存器PWMPERx中的设定值时,周期比较器输出高电平,上面的与门输出为高电平,计数器PWMCNTx和输出T触发器复零,PWM波形再次变化。同时,占空比寄存器PWMDTYx和周期计数器PWMPERx均复零,结束一个输出周期。

第二十九页,共81页。第7章S12脉宽调制模块及其应用实例【左对齐输出方式】然后,从相应的缓冲器重新装载周期寄存器和占空比寄存器的设定值,PWMCNTx重新开始计数,开始一个新的输出周期。【通道输出频率】PWMX频率=时钟(A、B、SA或SB)/PWMPERX【PWMX占空比】高电平时间占周期的百分比极性=0(PPOLx=0)时,极性=1(PPOLx=1)时,

第三十页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.3PWM输出方式【居中对齐输出】当PWM居中对齐允许寄存器PWMCAE中的控制位CAEx=1时,PWM通道被设置为居中对齐输出方式。在这种模式下,8位计数器PWMCNTx是双向计数器,既做加法计数,也做减法计数。只要计数器的值等于$00,便设置PWMCNTx为递增计数。第三十一页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【居中对齐输出】当CAEx=1时,产生两个动作:打开计数器前T触发器T端相连的与门,当计数值等于周期寄存器PWMPERx中的设定值时,允许周期比较器输出的高电平使触发器翻转,改变计数器的计数方向;关闭上面的与门,当计数值等于周期寄存器PWMPERx中的设定值时,禁止周期比较器复位计数器PWMCNTx和输出T触发器,以便计数器变为递增计数时,仍保持原来的输出电平。第三十二页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【居中对齐输出】当控制位PWMEx=1时,控制门被打开,允许时钟输入。同时,输出多路转换器允许PWM脉冲输出,关闭P口的通用I/O功能。极性选择位PPOLx控制多路转换器切换,使波形由输出T触发器的Q端或/Q端输出,定义输出波形的初始电平。PWM启动后,计数器PWMCNTx从0递增计数,开始一个输出周期。第三十三页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【居中对齐输出】当计数值等于占空比寄存器PWMDTYx中的设定值时,占空比比较器输出高电平,使输出T触发器翻转,PWM波形改变状态。此时,PWMCNTx继续计数。当计数值等于周期寄存器PWMPERx中的设定值时,周期比较器输出高电平,计数器前T触发器T端输入为1,则触发器翻转,计数器PWMCNTx改变方向,从递增计数变为递减计数。由于此时CAEx=1,上面的与门输出仍为低电平,禁止周期比较器复位计数器PWMCNTx和输出T触发器,输出T触发器仍保持原来的输出电平。

第三十四页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【居中对齐输出】当计数值递减到等于占空比寄存器PWMDTYx中的设定值时,占空比比较器又一次输出高电平,输出触发器再次翻转,PWM输出也改变状态。此时,PWMCNTx仍然继续计数。当计数值递减到0时,结束一个输出周期。同时,计数器PWMCNTx、占空比寄存器PWMDTYx和周期寄存器PWMPERx均复位,计数器方向从递减计数变回到递增计数。随后,从相应的缓冲器装载周期寄存器和占空比寄存器,PWMCNTx重新开始计数,开始一个新的输出周期。第三十五页,共81页。第7章S12脉宽调制模块及其应用实例7.3.3PWM输出方式【居中对齐输出】居中对齐输出模式下,计数器从0递增计数到周期寄存器中的值,然后递减计数到0。【有效周期】2PWMPERx【通道输出频率】PWMx频率=时钟(A、B、SA或SB)/(2PWMPERx)【PWMx占空比】高电平时间占周期的百分比极性=0(PPOLx=0)时,极性=1(PPOLx=1)时,【注意】当通道正在运行时,将PWM的输出模式从左对齐输出模式改为居中对齐输出模式,可能使PWM输出不规则,反之亦然。【建议】在PWM通道使能前,编程输出模式。第三十六页,共81页。第7章S12脉宽调制模块及其应用实例7.3.4通道级联S12单片机允许将2个8位PWM通道级联构成1个16位PWM通道,以获得更高的PWM输出精度。8个通道分为4组,分别为:PWM0和PWM1、PWM2和PWM3、PWM4和PWM5、PWM6和PWM7。【通道级联控制】通道级联由PWM控制寄存器PWMCTL中的4个控制位CONxy选择,其中x=0、2、4、6,y=1、3、5、7。【注意】如果需要级联的两个通道中任意一个正在工作,必须先禁止其工作,然后再级联。只有当两个相应的通道都禁止时,才能改变这些控制位。第三十七页,共81页。第7章S12脉宽调制模块及其应用实例7.3.4通道级联【级联后的寄存器和计数器】2个通道的占空比寄存器、周期寄存器和计数器均连接成16位的寄存器,通道1、3、5、7的寄存器作为低位字节,通道0、2、4、6的寄存器作为高位字节。在级联模式下,按16位方式写16位计数器或者单独写计数器的低位或高位字节都将使16位计数器复位。为了保持数据的一致性,读16位计数器必须按16位方式访问。第三十八页,共81页。第7章S12脉宽调制模块及其应用实例7.3.4通道级联【级联后的输出引脚】级联后的16位通道输出分别使用低8位通道(通道1、3、5、7)的引脚,高8位通道(通道0、2、4、6)的引脚变成通用I/O引脚。【级联后的时钟源】4个16位通道的时钟源分别由低8位通道(通道1、3、5、7)的时钟选择控制位决定,高8位通道(通道0、2、4、6)的时钟选择没有意义。第三十九页,共81页。第7章S12脉宽调制模块及其应用实例7.3PWM模块的工作原理7.3.4通道级联【级联后的使能控制】一旦PWM控制寄存器PWMCTL中的控制位CONxy=1,允许级联模式,则相应的16位PWM通道允许或禁止由低8位通道(通道1、3、5、7)的PWMEx位控制。在这种情况下,高位字节通道(通道0、2、4、6)的PWMEx位无效,且相应的PWM输出被禁止。【级联后的极性选择】级联后PWM输出的极性由相应的低8位通道(通道1、3、5、7)的PPOLx位控制。【级联后的输出对齐模式】级联模式下的左对齐输出和居中对齐输出模式,由低位字节通道(通道1、3、5、7)的CAEx位控制,高位字节通道(通道0、2、4、6)的CAEx位无效。第四十页,共81页。第7章S12脉宽调制模块及其应用实例7.3.4通道级联级联模式下控制寄存器设置

CONXXPWMEXPPOLXPCLKXCAEXPWMX输出CON67PWME7PPOL7PCLK7CAE7PWM7CON45PWME5PPOL5PCLK5CAE5PWM5CON23PWME3PPOL3PCLK3CAE3PWM3CON01PWME1PPOL1PCLK1CAE1PWM17.3.5PWM模块参数的临界条件PWMDTYXPWMPERXPPOLXPWMX输出$00(表示无占空比)>$001始终低电平$00(表示无占空比)>$000始终高电平XX$00(1)(表示无周期)1始终高电平XX$00(1)(表示无周期)0始终高电平>=

PWMPERXXX1始终高电平>=

PWMPERXXX0始终低电平注:(1)计数器=$00,不计数第四十一页,共81页。第7章S12脉宽调制模块及其应用实例7.4PWM模块寄存器及设置PWM模块共有37个寄存器,其中PWM测试寄存器PWMTST、PWM预分频计数寄存器PWMPRSC、PWM比例因子A计数寄存器PWMSCNTA和PWM比例因子B计数寄存器PWMSCNTB仅用于出厂测试。第四十二页,共81页。第7章S12脉宽调制模块及其应用实例7.4PWM模块寄存器及设置第四十三页,共81页。第7章S12脉宽调制模块及其应用实例7.4PWM模块寄存器及设置7.4.1PWM允许寄存器(PWMEnableRegister)【PWME作用】启动或者停止PWM信号输出,每个控制位对应一个PWM通道。当任意一个PWMEx位被置位(PWMEx=1)时,产生相应的PWM信号输出。但是,由于PWMEx需要与时钟源同步,在PWM模块时钟的下一个周期,才能输出正确的PWM波形。当处于级联模式时,PWME1、PWME3、PWME5和PWME7控制对应的4个16位PWM通道,而其他控制位无效。读:任何时刻;写:任何时刻。【注意】通道使能后的第一个PWM周期可能是不正确的。第四十四页,共81页。第7章S12脉宽调制模块及其应用实例7.4.1PWM允许寄存器(PWMEnableRegister)PWME7:PWM通道7允许。 1表示允许PWM通道7输出; 0表示禁止PWM通道7输出。PWME6:PWM通道6允许。如果CON67=1,该位无效。 1表示允许PWM通道6输出; 0表示禁止PWM通道6输出。PWME5:PWM通道5允许。 1表示允许PWM通道5输出; 0表示禁止PWM通道5输出。PWME4:PWM通道4允许。如果CON45=1,该位无效。 1表示允许PWM通道4输出; 0表示禁止PWM通道4输出。第四十五页,共81页。第7章S12脉宽调制模块及其应用实例7.4.1PWM允许寄存器(PWMEnableRegister)PWME3:PWM通道3允许。 1表示允许PWM通道3输出; 0表示禁止PWM通道3输出。PWME2:PWM通道2允许。如果CON23=1,该位无效。 1表示允许PWM通道2输出; 0表示禁止PWM通道2输出。PWME1:PWM通道1允许。 1表示允许PWM通道1输出; 0表示禁止PWM通道1输出。PWME0:PWM通道0允许。如果CON01=1,该位无效。 1表示允许PWM通道0输出; 0表示禁止PWM通道0输出。第四十六页,共81页。第7章S12脉宽调制模块及其应用实例7.4.2PWM极性寄存器(PWMPolarityRegister)【极性寄存器PWMPOL作用】相应PPOLx位决定每个PWM通道波形开始的极性。读:任何时刻;写:任何时刻。【注意】可以在任何时刻写PPOLx寄存器。如果正在产生PWM信号时改变极性,在转换过程中可能截短或延长输出脉冲。PPOLx:PWM通道x输出波形极性。

1=PWM通道x在周期开始时输出高电平,当到达占空比计数值时翻转为低电平; 0=PWM通道x在周期开始时输出低电平,当到达占空比计数值时翻转为高电平。第四十七页,共81页。第7章S12脉宽调制模块及其应用实例7.4.3PWM时钟选择寄存器(PWMClockSelectRegister)【时钟选择寄存器PWMCLK作用】选择每个PWM通道的时钟源。PWM模块共有4个时钟源,分别为ClockA、ClockB、ClockSA和ClockSB,其中ClockA和ClockB由总线时钟直接分频得到,分频因子由PWM预分频时钟选择寄存器PWMPRCLK中的Bit2~Bit0或Bit6~Bit4确定,ClockSA由ClockA通过PWM比例因子寄存器A(PWMSCLA)再次分频得到,ClockSB由ClockB通过PWM比例因子寄存器B(PWMSCLB)再次分频得到。每一个PWM通道可以选择两个时钟之一作为时钟源,即ClockA或ClockSA和ClockB或ClockSB。第四十八页,共81页。第7章S12脉宽调制模块及其应用实例7.4.3PWM时钟选择寄存器(PWMClockSelectRegister)读:任何时刻;写:任何时刻。PCLK7、PCLK6、PCLK3、PCLK2:PWM通道7、6、3、2时钟选择位。 1=ClockSB作为相应通道时钟源; 0=ClockB作为相应通道时钟源。PCLK5、PCLK4、PCLK1、PCLK0:PWM通道5、4、1、0时钟选择位。 1=ClockSA作为相应通道时钟源; 0=ClockA作为相应通道时钟源。【注意】可以在任何时刻写PCLKx寄存器。如果正在产生PWM信号时改变时钟源,在转换过程中可能截短或延长输出脉冲。第四十九页,共81页。第7章S12脉宽调制模块及其应用实例7.4.4PWM预分频时钟选择寄存器(PWMPrescaleClockSelectRegister)【预分频时钟选择寄存器PWMPRCLK作用】选择ClockA和ClockB的预分频因子。 读:任何时刻;写:任何时刻。【注意】可以在任何时刻写PWMPRCLK寄存器。如果正在产生PWM信号时改变预分频因子,在转换过程中可能截短或延长输出脉冲。第五十页,共81页。第7章S12脉宽调制模块及其应用实例7.4.4PWM预分频时钟选择寄存器(PWMPrescaleClockSelectRegister)PCKB2~PCKB0:ClockB预分频因子选择。ClockB可以作为通道2、3、6或7的时钟源,PCKB2~PCKB0决定了ClockB的频率。第五十一页,共81页。第7章S12脉宽调制模块及其应用实例7.4.4PWM预分频时钟选择寄存器(PWMPrescaleClockSelectRegister)PCKA2~PCKA0:ClockA预分频因子选择。ClockA可以用做通道0、1、4或5的时钟源,PCKA2~PCKA0决定了ClockA的频率。第五十二页,共81页。第7章S12脉宽调制模块及其应用实例7.4.5PWM居中对齐允许寄存器(PWMCenterAlignEnableRegister)【居中对齐允许寄存器PWMCAE作用】设置相应PWM通道输出波形为居中对齐输出或左对齐输出。读:任何时刻;写:任何时刻。【注意】仅当相应的通道被禁止输出时,才可以设置该寄存器。CAEx:通道x居中对齐输出方式选择位。1=通道x输出波形为居中对齐方式。0=通道x输出波形为左对齐方式。

第五十三页,共81页。第7章S12脉宽调制模块及其应用实例7.4.6PWM控制寄存器(PWMControlRegister)【控制寄存器PWMCTL作用】级联控制和冻结与等待模式下的PWM允许。

读:任何时刻;写:任何时刻。【注意】仅当需要级联的两个通道都被禁止输出时,才可以设置该寄存器中相应的控制位。CON67:通道6、通道7级联。1表示8位PWM通道6、7级联形成一个16位PWM通道。通道6作为高8位字节,通道7作为低8位字节。通道7输出引脚作为16位PWM的输出(端口PWMP的位7),通道7的时钟选择控制位、极性控制位、输出使能控制位、居中对齐允许位有效;通道6的相应寄存器控制位均无效。0表示通道6、7作为两个独立的8位PWM通道。第五十四页,共81页。第7章S12脉宽调制模块及其应用实例7.4.6PWM控制寄存器(PWMControlRegister)CON45:通道4、通道5级联。1表示8位PWM通道4、5级联形成一个16位PWM通道。通道4作为高8位字节,通道5作为低8位字节,这时通道5输出引脚用做16位PWM的输出(端口PWMP的位5),通道5的时钟选择控制位、极性控制位、输出使能控制位、居中对齐允许位有效;通道4的相应寄存器控制位均无效。0表示通道4、5作为两个独立的8位PWM通道。第五十五页,共81页。第7章S12脉宽调制模块及其应用实例7.4.6PWM控制寄存器(PWMControlRegister)CON23:通道2、通道3级联。1表示8位PWM通道2、3级联形成一个16位PWM通道。通道2作为高8位字节,通道3作为低8位字节,这时通道3输出引脚用做16位PWM的输出(端口PWMP的位3),通道3的时钟选择控制位、极性控制位、输出使能控制位、居中对齐允许位有效;通道2的相应寄存器控制位均无效。0表示通道2、3作为两个独立的8位PWM通道。CON01:通道0、通道1级联。1表示8位PWM通道0、1级联形成一个16位PWM通道。通道0作为高8位字节,通道1作为低8位字节,这时通道1输出引脚用做16位PWM的输出(端口PWMP的位1),通道1的时钟选择控制位、极性控制位、输出使能控制位、居中对齐允许位有效;通道0的相应寄存器控制位均无效。0表示通道0、1作为两个独立的8位PWM通道。第五十六页,共81页。第7章S12脉宽调制模块及其应用实例7.4.6PWM控制寄存器(PWMControlRegister)PSWAI:等待模式下PWM停止位。该位使能,通过禁止时钟输入到预分频器,可降低等待模式下的功耗。 1=等待模式时,预分频器的时钟输入停止; 0=等待模式时,允许预分频器的时钟输入。PFRZ:冻结模式下PWM停止位。 1=冻结模式时,停止预分频器的时钟输入; 0=冻结模式时,允许PWM继续工作。第五十七页,共81页。第7章S12脉宽调制模块及其应用实例7.4.7PWM比例因子寄存器A(PWMScaleARegister,PWMSCLA)PWMSCLA是可编程分频寄存器,用于将ClockA进行分频,产生ClockSA。通过将ClockA除以PWMSCLA寄存器中的值,再除以2,形成ClockSA。读:任何时刻;写:任何时刻(导致分频计数器装载新的比例因子值PWMSCLA)。【注意】向PWMSCLA寄存器写任何值将导致相应的8位递减分频计数器装载新的比例因子值(PWMSCLA)。当PWMSCLA=$00时,PWMSCLA的值被看作是满度值256,此时ClockSA等于ClockA的频率除以512,即ClockA被512分频。第五十八页,共81页。第7章S12脉宽调制模块及其应用实例7.4.8PWM比例因子寄存器B(PWMScaleBRegister,PWMSCLB)PWMSCLB是可编程分频寄存器,用于将ClockB进行分频,产生ClockSB。通过将ClockB除以PWMSCLB寄存器中的值,再除以2,形成ClockSB读:任何时刻;写:任何时刻(导致分频计数器装载新的比例因子值PWMSCLB)。【注意】向PWMSCLB寄存器写任何值将导致相应的8位递减分频计数器装载新的比例因子值(PWMSCLB)。当PWMSCLB=$00时,PWMSCLB的值被看作是满度值256,此时ClockSB等于ClockB的频率除以512,因此,ClockB被512分频。第五十九页,共81页。第7章S12脉宽调制模块及其应用实例7.4.9PWM通道计数寄存器(PWMChannelCounterRegisters)PWM通道计数寄存器PWMCNTx是一个专用的8位加/减计数器,可以按所选择的时钟源频率工作。在左对齐输出模式下,计数器从0计数到周期寄存器中的数值-1。在中心对齐输出模式下,计数器从0开始递增计数到周期寄存器中的数值,然后递减计数回到0。【读操作】该计数器在任何时候可读,而不影响PWM通道的计数和工作。【写操作】任何时刻。向计数器写入任何值将导致计数器复位到$00,计数器方向设置为递增计数,立即将缓冲器的值装入占空比和周期寄存器,然后根据极性选择位改变输出电平。有效周期结束时,计数器被清0。

第六十页,共81页。第7章S12脉宽调制模块及其应用实例7.4.9PWM通道计数寄存器(PWMChannelCounterRegisters)当通道禁止(PWMEx=0)时,PWMCNTX寄存器不计数;当通道重新允许时(PWMEx=1),相关的PWM计数器以PWMCNTx中的值开始计数。【级联模式下的读/写操作】在级联模式下,写16位计数器或者分别写计数器的高8位和低8位,都会使计数器复位。读16位计数器必须按16位方式访问,以保持数据的一致性,高8位和低8位分开读取会得到不正确的结果。【注意】如果用户想要开始一个“纯净的”PWM新波形,而没有任何以前波形的“历史痕迹”,用户必须在允许PWM通道(PWMEx=1)之前,写通道计数器(PWMCNTx)。当通道允许时,写计数器可能会产生一个不正确的PWM周期。第六十一页,共81页。第7章S12脉宽调制模块及其应用实例7.4PWM模块寄存器及设置7.4.10PWM通道周期寄存器(PWMChannelPeriodRegisters)PWM通道周期寄存器PWMPERx的值决定相应PWM通道的周期。通道周期寄存器是双缓冲的,当寄存器中的数值改变后,并不立即生效,直到发生下列事件之一:当前有效周期结束;写计数寄存器(计数器复位到$00);通道被禁止。第六十二页,共81页。第7章S12脉宽调制模块及其应用实例7.4.10PWM通道周期寄存器(PWMChannelPeriodRegisters)读:任何时刻;写:任何时刻。【注意】读该寄存器将返回最新写入的数值,由于双缓冲配置,并非返回当前有效的周期值。当使一个新的周期立即生效时,可能产生一个不规则的PWM周期。【PWM波形周期计算方法】用选择的时钟周期(ClockA、ClockB、ClockSA或ClockSB)乘以周期寄存器中的数值。左对齐方式输出(CAEx=0):PWMx周期=通道时钟周期×PWMPERx居中对齐方式输出(CAEx=1):PWMx周期=通道时钟周期×2×PWMPERx第六十三页,共81页。第7章S12脉宽调制模块及其应用实例7.4PWM模块寄存器及设置7.4.11PWM通道占空比寄存器(PWMChannelDutyRegisters)PWM通道占空比寄存器PWMDTYx的值决定相应PWM通道的占空比。每个PWM通道的占空比寄存器PWMDTYx是双缓冲的,当改变寄存器中的数值后,并不立即生效,而是出现下列情况之一时才生效:当前有效周期结束;写计数寄存器(计数器复位到$00);通道被禁止。第六十四页,共81页。第7章S12脉宽调制模块及其应用实例7.4.11PWM通道占空比寄存器(PWMChannelDutyRegisters)读:任何时刻;写:任何时刻。【注意】读该寄存器将返回最新写入的数值,由于双缓冲配置,并非返回当前有效的占空比值。当使一个新的占空比立即生效时,可能产生一个不正确的PWM周期。根据极性位,占空比寄存器的内容将等于高电平时间或低电平时间的计数值。PWM波形占空比计算公式: 极性为0时(PPOLx=0) 极性为1时(PPOLx=1)第六十五页,共81页。第7章S12脉宽调制模块及其应用实例7.4.12PWM关断寄存器(PWMShutdownRegister)【PWM关断寄存器PWMSDN功能】紧急情况下立即关断PWM通道输出。读:任何时刻;写:任何时刻。PWM7ENA:PWM紧急关断允许。1=允许紧急关断;0=禁止紧急关断。如果该位为1,通道7的引脚被强制配置为输入端口,并启用紧急关断功能。只有当PWM7ENA=1时,关断寄存器PWMSDN中的其他位才有意义。 第六十六页,共81页。第7章S12脉宽调制模块及其应用实例7.4.12PWM关断寄存器(PWMShutdownRegister)PWM7IL:紧急关断有效输入电平选择位。【作用】设置PWM通道7紧急关断的输入有效极性,即如果启用紧急关断功能(PWM7ENA=1),该位确定PWM通道7处于何种电平时,PWM模块才会被紧急关断。1=高电平紧急关断;0=低电平紧急关断。PWM7IN:PWM通道7输入状态位。【作用】只读位,反映PWM通道7引脚当前的电平状态。1=紧急关断允许状态;0=紧急关断禁止状态。第六十七页,共81页。第7章S12脉宽调制模块及其应用实例7.4.12PWM关断寄存器(PWMShutdownRegister)PWMLVL:PWM紧急关断后输出电平选择位。1=强制PWM输出高电平;0=强制PWM输出低电平。PWMRSTRT:PWM重新启动控制位。该位只能写入,读该位始终返回0。1=允许重新启动PWM;0=禁止重新启动PWM。只有当PWM通道7处于无效状态(非紧急关闭)时,才可以重新启动PWM模块。向PWMRSTRT位写1(触发事件)后,当计数器返回0时,PWM通道才开始运行。如果PWM7ENA位被复位到0,只有当计数器回到0后,PWM才开始工作。第六十八页,共81页。第7章S12脉宽调制模块及其应用实例7.4.12PWM关断寄存器(PWMShutdownRegister)PWMIE:PWM中断允许位。1=PWM中断允许;0=PWM中断禁止。PWMIF:PWM中断标志。当PWM7ENA=1时,PWM通道7上的任何电平变化(PWM7IN位状态变化)将产生中断,并使PWMIF置位。1=PWM7IN输入有变化;0=PWM7IN输入无变化。通过向该位写逻辑1来清除标志,写0无效。

第六十九页,共81页。第7章S12脉宽调制模块及其应用实例7.5PWM模块基础应用实例7.5.1PWM的操作设置S12微控制器中的PW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论