资源预览内容
第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
第9页 / 共57页
第10页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MC9S12XS单片机原理单片机原理及嵌入式系统开发及嵌入式系统开发张张 阳,吴阳,吴 晔,滕晔,滕 勤勤 Email:,:, TEL:,:,MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发第第7章章 MC9S12XS系列脉宽调制模块系列脉宽调制模块及其应用实例及其应用实例 PWM模块概述模块概述 PWM模块结构组成和特点模块结构组成和特点 PWM模块寄存器及设置模块寄存器及设置 PWM模块应用模块应用实例实例 智能车系统中智能车系统中PWM模块的应用模块的应用MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.1 PWM模块概述模块概述脉冲宽度调制(PWM)是产生精确脉冲序列输出和实现D/A转换的有效方法,微控制器的脉宽调制模块被广泛应用于工业控制和新型消费机电产品中(如智能空调、节能冰箱、电动自行车等)。PWM信号通过软件编程调节波形的占空比、周期和相位,能够用于直流电动机调速、伺服电动机控制、D/A转换器等应用。例如,电视机遥控部分普遍采用14位或16位的PWM产生调谐电压;在无人自动驾驶汽车系统中,常用伺服电动机来控制方向盘,伺服电动机的旋转角度与给定的PWM信号占空比一致,每个占空比数值都对应一个旋转角度;在灯光亮度调节、直流电动机速度控制等方面,采用PWM信号能够很容易实现。 MC9S12XS系列产生PWM信号的方法主要有两种:利用输出比较功能和MCU内置的PWM模块实现。利用输出比较功能可以通过软件编程设定输出任意脉冲信号,但会占用CPU资源,而且不易产生精确的脉冲序列;而MCU内部集成的PWM模块专门用于输出PWM信号,使用时极少占用CPU资源。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.2 PWM模块结构组成和特点模块结构组成和特点MC9S12XS128内置的PWM模块框图如图7.1所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.2 PWM模块概述模块概述由图7.1可知,MC9S12XS128的PWM模块具有8路8位独立PWM通道,通过相应设置也可以变为4个16位PWM通道,每个PWM通道由独立运行的8位通道计数器PWMCNT、两个比较寄存器为通道周期寄存器PWMPER和占空比寄存器PWMDTY等组成。通过对各寄存器的参数设置,确定PWM波形的输出周期和占空比,另外还可以通过通道极性寄存器PWMPOL和居中对齐使能寄存器PWMCAE设置PWM输出脉冲波形的极性和对齐方式。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.2 PWM模块概述模块概述PWM模块具有以下基本特征:具有可编程周期和占空比的8个独立PWM通道;每个PWM通道具有独立的计数器;每个通道可编程允许/禁止PWM功能;每个通道可软件选择PWM脉冲极性;具有双缓冲的周期和占空比寄存器,当到达有效周期终点(PWM计数器到达0)或通道禁止时,修改值生效;每个通道可编程中心对齐或左对齐输出;8个8位通道或4个16位通道PWM分辨率;4个时钟源(A、B、SA和SB)提供宽频带频率;可编程的时钟选择逻辑;紧急关闭功能。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置 MC9S12XS128的PWM模块的相关寄存器详见表7-1,其中PWM测试寄存器(PWMTST)、PWM预分频计数寄存器(PWMPRSC)、PWM比例因子A计数寄存器(PWMSCNTA)和PWM比例因子B计数寄存器(PWMSCNTB)仅用于出厂测试,所以后文不对其进行说明。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置 MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.1 PWM使能寄存器(使能寄存器(PWME) PWM使能寄存器(PWM Enable Register,PWME)中的每个控制位对应相应的PWM通道,可以通过设置相应的控制位启动或者停止PWM信号输出。当任意一个PWMEx位被置位(PWMEx=1)时,相应的PWM信号产生输出。但是,由于PWMEx需要与时钟源同步,直到PWM模块时钟的下一个周期到来,才能输出正确的PWM波形。 当处于级联模式时,8个8位PWM通道通过两两级联构成4个16位的PWM通道,此时PWME1、PWME3、PWME5和PWME7对应控制4个16位PWM通道,而其他控制位无效,如图7.2所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.1 PWM使能寄存器(使能寄存器(PWME)读:任何时刻;写:任何时刻。PWME7:PWM通道7使能位。 0表示禁止PWM通道7输出; 1表示允许PWM通道7输出。PWME6:PWM通道6使能位。 0表示禁止PWM通道6输出; 1表示允许PWM通道6输出,如果CON67=1,该位无效,且PWM通道6输出无效。PWME5:PWM通道5使能位。 0表示禁止PWM通道5输出; 1表示允许PWM通道5输出。PWME4:PWM通道4使能位。 0表示禁止PWM通道4输出; 1表示允许PWM通道4输出,如果CON45=1,该位无效,且PWM通道4输出无效。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.1 PWM使能寄存器(使能寄存器(PWME)PWME3:PWM通道3使能位。 0表示禁止PWM通道3输出; 1表示允许PWM通道3输出。PWME2:PWM通道2使能位。 0表示禁止PWM通道2输出; 1表示允许PWM通道2输出,如果CON23=1,该位无效,且PWM通道2输出无效。PWME1:PWM通道1使能位。 0表示禁止PWM通道1输出; 1表示允许PWM通道1输出。PWME0:PWM通道0使能位。 0表示禁止PWM通道0输出; 1表示允许PWM通道0输出;如果CON01=1,该位无效,且PWM通道0输出无效。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置 7.3.2 PWM极性寄存器(极性寄存器(PWMPOL) 每个PWM通道波形开始时的信号极性由PWM极性寄存器(PWM Polarity Register,PWMPOL)中的极性选择位(PPOLx)决定,如果PPOLx位为1,周期脉冲开始时PWM通道输出高电平信号,当通道计数器PWMCNTx数值等于占空比寄存器PWMDTYx数值时翻转为低电平信号;相反,如果PPOLx位为0,周期脉冲开始时PWM通道输出低电平信号,当PWMCNTx数值等于PWMDTYx数值时翻转为高电平信号,PWMPOL寄存器如图7.3所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.2 PWM极性寄存器(极性寄存器(PWMPOL) 读:任何时刻;写:任何时刻。 注意:PWMPOL 寄存器中的PPOLx位可以在任何时刻进行写入操作。如果正在产生PWM信号时要求改变信号极性,则PWM输出脉冲在信号极性转换过程中可能被截短或延长。PPOLx:PWM通道x输出波形极性位。0表示PWM通道x在周期脉冲开始时输出低电平,当到达占空比计数值时翻转为高电平;1表示PWM通道x 在周期脉冲开始时输出高电平,当到达占空比计数值时翻转为低电平。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.3 PWM时钟选择寄存器(时钟选择寄存器(PWMCLK) 每一个PWM通道可以选择两个时钟之一作为该通道的时钟源。PWM时钟选择寄存器(PWM Clock Select Register,PWMCLK)如图7.4所示。读:任何时刻;写:任何时刻。注意:PWMCLK寄存器中的PCLKx位可以在任何时刻写入。如果正在产生PWM信号时要求改变信号极性,则PWM输出脉冲在信号极性转换过程中可能被截短或延长。PCLK7、PCLK6、PCLK3、PCLK2:PWM通道7、6、3、2时钟选择位。0表示Clock B作为相应通道时钟源;1表示Clock SB作为相应通道时钟源。PCLK5、PCLK4、PCLK1、PCLK0:PWM通道5、4、1、0时钟选择位。0表示Clock A作为相应通道时钟源;1表示Clock SA作为相应通道时钟源。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.3 PWM时钟选择寄存器(时钟选择寄存器(PWMCLK) PWM时钟选择框图如图7.5所示,从图中可知,PWM模块一共有4个时钟源,分别为Clock A、Clock B、Clock SA和Clock SB,其中Clock A和Clock B由总线时钟直接分频得到,分频因子由PWM预分频时钟选择寄存器(PWMPRCLK)中的Bit2Bit0或Bit6Bit4确定(如图7.6所示),PWMPRCLK寄存器的介绍详见7.3.4节。Clock SA由Clock A通过PWM比例因子A寄存器(PWMSCLA)再次分频得到,Clock SB由Clock B通过PWM比例因子B寄存器(PWMSCLB)再次分频得到,PWMSCLA寄存器和 PWMSCLB寄存器的介绍详见7.3.7节和7.3.8节。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.3 PWM时钟选择寄存器(时钟选择寄存器(PWMCLK)MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.4 PWM预分频时钟选择寄存器(预分频时钟选择寄存器(PWMPRCLK) 读:任何时刻;写:任何时刻。注意:PWMPRCLK寄存器中的位可以在任何时刻写入。如果正在产生PWM信号时要求改变极信号性,则PWM输出脉冲在信号极性转换过程中可能被截短或延长。PCKB2PCKB0:Clock B预分频因子选择位。这3位决定了Clock B的分频因子,Clock B可以作为通道2、3、6或7的两个时钟源之一,如表7-2所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.4 PWM预分频时钟选择寄存器(预分频时钟选择寄存器(PWMPRCLK)MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.4 PWM预分频时钟选择寄存器(预分频时钟选择寄存器(PWMPRCLK) PCKA2PCKA0:Clock A预分频因子选择位。这3位决定了Clock A的分频因子,Clock A是可以作为通道0、1、4或5的两个时钟源之一,如表7-3所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.5 PWM居中对齐使能寄存器(居中对齐使能寄存器(PWMCAE) PWM居中对齐使能寄存器(PWM Center Align Enable Register,PWMCAE)包含8个控制位,如图7.7所示。用于控制相应PWM通道输出波形为中心对齐输出或左对齐输出。如果CAEx=1,相应的PWM通道输出波形为中心对齐;如果CAEX=0,相应的PWM通道输出波形为左对齐。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.5 PWM居中对齐使能寄存器(居中对齐使能寄存器(PWMCAE) 注意:仅当相应的通道被禁止输出时,才可以设置该寄存器。CAEx:通道x居中对齐输出方式位。0表示通道x输出波形为左对齐方式。1表示通道x输出波形为居中对齐方式。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.5 PWM居中对齐使能寄存器(居中对齐使能寄存器(PWMCAE) PWM左对齐输出波形如图7.8所示。当使用左对齐方式输出时,8位通道计数器PWMCNTx只做加法计数;当PWMCNTx计数器加法计数到通道占空比寄存器PWMDTYx中设置的数值时,PWM通道输出波形发生变化;当PWMCNTx计数器加法计数到通道周期寄存器PWMPERx中设置的数值时,PWMCNTx清零,输出波形电平发生变化,然后读取PWMDTYx寄存器和PWMPERx寄存器中的数值作为下一次PWMCNTx加法计数参考使用。PWM通道计数器PWMCNTx介绍详见7.3.9节,PWM通道周期寄存器PWMPERx介绍详见7.3.10节,PWM通道占空比寄存器PWMDTYx介绍详见7.3.11节。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.5 PWM居中对齐使能寄存器(居中对齐使能寄存器(PWMCAE) PWM居中对齐输出波形如图7.9所示。当使用居中对齐格式输出时,8位计数器PWMCNTx既做加法计数器也能做减法计数器;当PWMCNTx计数器加法计数到PWMDTYx寄存器中设置的数值时,PWM通道输出波形发生变化;当PWMCNTx计数器加法计数到PWMPERx寄存器中设置的数值时,PWMCNTx计数器会从加法计数器变为减法计数器;当PWMCNTx计数器开始减法计数到PWMDTYx寄存器中的数值时,PWM通道输出波形再次发生变化;当PWMCNTx计数器中数值减到0时,PWMCNTx重新变为加法计数器,然后读取PWMDTYx寄存器和PWMPERx寄存器中的数值作为下一次PWMCNTx计数参考使用。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.6 PWM控制寄存器(控制寄存器(PWMCTL) PWM控制寄存器(PWM Control Register,PWMCTL)如图7.10所示。该寄存器用于PWM模块的各种控制,其中包括4个级联控制位,用于将一对8位PWM通道级联成一个16位通道。当通道6和通道7级联时,通道6的寄存器成为16位寄存器中的高8位字节,通道7的寄存器为16位寄存器中的低8位字节;当通道4和通道5级联时,通道4的寄存器成为16位寄存器中的高8位字节;当通道2和通道3级联时,通道2的寄存器成为16位寄存器中的高8位字节;当通道0和通道1级联时,通道0的寄存器成为16位寄存器中的高8位字节。读:任何时刻;写:任何时刻。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.6 PWM控制寄存器(控制寄存器(PWMCTL)注意:仅当需要级联的两个通道都被禁止输出时,才可以设置PWMCTL寄存器中相应的控制位。 CON67:通道6、通道7级联位。0表示通道6、7作为两个独立的8位PWM通道。1表示8位PWM通道6、7级联形成一个16位PWM通道。通道6的寄存器作为16位通道的高8位字节,通道7作为低8位字节,这时通道7的引脚用做16位PWM的信号输出(端口PWM7),通道7的时钟选择控制位、极性控制位、输出使能控制位、居中对齐使能位有效;通道6的相应寄存器控制位均无效。 CON45:通道4、通道5级联位。0表示通道4、5作为两个独立的8位PWM通道。1表示8位PWM通道4、5级联形成一个16位PWM通道。通道4的寄存器作为16位通道的高8位字节,通道5作为低8位字节,这时通道5的引脚用做16位PWM的信号输出(端口PWM5),通道5的时钟选择控制位、极性控制位、输出使能控制位、居中对齐使能位有效;通道4的相应寄存器控制位均无效。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.6 PWM控制寄存器(控制寄存器(PWMCTL) CON23:通道2、通道3级联位。0表示通道2、3作为两个独立的8位PWM通道。1表示8位PWM通道2、3级联形成一个16位PWM通道。通道2的寄存器作为16位通道的高8位字节,通道3作为低8位字节,这时通道3的引脚用做16位PWM的信号输出(端口PWM3),通道3的时钟选择控制位、极性控制位、输出使能控制位、居中对齐使能位有效;通道2的相应寄存器控制位均无效。 CON01:通道0、通道1级联位。0表示通道0、1作为两个独立的8位PWM通道。1表示8位PWM通道0、1级联形成一个16位PWM通道。通道0的寄存器作为16位通道的高8位字节,通道1作为低8位字节,这时通道1的引脚用做16位PWM的信号输出(端口PWM1),通道1的时钟选择控制位、极性控制位、输出使能控制位、居中对齐使能位有效;通道0的相应寄存器控制位均无效。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.6 PWM控制寄存器(控制寄存器(PWMCTL) 如果需要PWM输出精度更高,可以将2个8位PWM通道级联构成1个16位PWM通道,如图7.11所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.6 PWM控制寄存器(控制寄存器(PWMCTL)PSWAI:MCU等待工作模式下PWM停止位。使能该位,可以禁止预分频器的时钟输入,降低MCU等待模式下的功耗。0表示等待模式时,允许预分频器时钟输入;1表示等待模式时,禁止预分频器时钟输入。PFRZ:MCU冻结工作模式下PWM停止位,在冻结模式下,PWM通道计数器PWMCNTx停止计数。0表示冻结模式时,允许冻结PWM 工作;1表示冻结模式时,禁止预分频器时钟输入。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.7 PWM比例因子比例因子A寄存器(寄存器(PWMSCLA) PWM比例因子A寄存器(PWM Scale A Register,PWMSCLA)是可编程分频寄存器,如图7.12所示,用于将Clock A进行分频,产生Clock SA。通过将Clock A除以PWMSCLA寄存器中的值,再除以2,产生Clock SA信号,公式为读:任何时刻;写:任何时刻(将导致分频计数器装载新的PWMSCLA比例因子值)。注意:PWMSCLA默认值为256,当PWMSCLA=$00时,此时Clock SA等于Clock A的频率除以512。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.8 PWM比例因子比例因子B寄存器(寄存器(PWMSCLB) PWM比例因子B寄存器(PWM Scale B Register,PWMSCLB)是可编程分频寄存器,如图7.13所示,用于将Clock B进行分频,产生Clock SB。通过将Clock B除以PWMSCLB寄存器中的值,再除以2,产生Clock SB信号,其公式为读:任何时刻;写:任何时刻(将导致分频计数器装载新的PWMSCLB比例因子值)。注意:PWMSCLB默认值为256,当PWMSCLB=$00时,此时Clock SB等于Clock B的频率除以512。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.9 PWM通道计数器(通道计数器(PWMCNT) 每个通道有一个专用的8位加/减计数器PWMCNT(PWM Channel Counter Registers,PWMCNT),计数器PWMCNTx的频率和时钟源频率相关。可以在任何时刻读取PWMCNTx中数值,而不影响PWMCNTx和PWM通道的工作。当处于左对齐输出模式时,PWMCNTx从0开始做加法计数,直到增加到PWM周期寄存器PWMPERx1的值;当处于居中对齐输出模式时,PWMCNTx从0开始进行加法计数,直到增加到PWMPERx的值,然后再进行减法,直至回到0。PWMCNTx寄存器如图7.14所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.9 PWM通道计数器(通道计数器(PWMCNT)向计数器PWMCNTx写入任何值将导致其复位到$00,PWMCNTx计数器方向设置为向上计数,从周期寄存器PWMPERx和占空比寄存器PWMDTYx的缓冲器中得到周期和占空比的数值,然后根据极性选择位PPOLx改变输出电平。当相应的PWM通道被禁止(PWMEx=0)时,PWMCNTx计数器不工作;当相应的PWM通道使能时(PWMEx=1),计数器以PWMCNTx中的值作为初始值开始计数。在16位级联模式下,无论对16位计数器访问,还是对高8位和低8位计数器分开访问,都会使计数器PWMCNTx复位清零。读取16位计数器必须用16位方式访问,以保持数据的一致性,高8位和低8位计数器分别读取会得到不正确的数值。读:任何时刻;写:任何时刻。注意:当通道使能时写PWMCNTx可能会产生一个无效的PWM周期脉冲。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.10 PWM通道周期寄存器(通道周期寄存器(PWMPER)每个PWM通道有一个独立的周期寄存器PWMPER(PWM Channel Period Register),该寄存器中的值决定相应PWM通道的周期,如图7.15所示。周期寄存器PWMPERx中的数值是双缓冲的,因此,当PWMPERx寄存器中的数值改变后,并不立即生效,直到下列事件中的一个发生:当前有效周期结束;写计数器PWMCNTx(计数器复位到$00);通道被禁止。因此,PWM将总是输出以前的波形或新波形,而不是两者之间的某种无效波形。如果PWM通道被禁止,写入周期寄存器的数值将直接进入锁存器和缓冲器。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.10 PWM通道周期寄存器(通道周期寄存器(PWMPER)读:任何时刻;写:任何时刻。注意:读PWMPERx寄存器返回最新写入的数值,而不是返回当前有效的周期值。PWM输出波形的周期计算方法是,用选择的时钟周期(Clock A、Clock B、Clock SA或Clock SB)乘以周期寄存器PWMPERx中的数值。左对齐方式输出(CAEx = 0):PWMx周期=通道时钟周期PWMPERx居中对齐方式输出(CAEx = 1):PWMx周期=通道时钟周期2PWMPERxMC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.11 PWM通道占空比寄存器(通道占空比寄存器(PWMDTY)每个PWM通道有一个独立的占空比寄存器PWMDTY(PWM Channel Duty Register),该寄存器中的值决定相应PWM通道的占空比,如图7.16所示。占空比寄存器PWMDTYx中的数值是双缓冲的,因此,当PWMDTYx寄存器中的数值改变后,并不立即生效,直到下列事件中的一个发生: 当前有效周期结束;写计数器PWMCNTx(计数器复位到$00);通道被禁止。因此,PWM将总是输出以前的波形或新波形,而不是两者之间的某种无效波形。如果PWM通道被禁止,写入占空比寄存器的数值将直接进入锁存器和缓冲器。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.11 PWM通道占空比寄存器(通道占空比寄存器(PWMDTY)读:任何时刻;写:任何时刻。注意:读PWMDTYx寄存器返回最新写入的数值,而不是返回当前有效的占空比值。PWMDTYx寄存器中数值的含义,根据极性控制位PPOLx的不同而不同。如果PPOLx位是1,PWM输出波形开始为高电平,当PWMCNTx计数器数值等于PWMDTYx寄存器数值时变为低电平,此时PWMDTYx寄存器中的数值代表了高电平的持续时间;如果PPOLx位是0,PWM输出波形开始为低电平,当PWMCNTx计数器数值等于PWMDTYx寄存器数值时变为高电平,此时PWMDTYx寄存器中的数值代表了低电平的持续时间。PWM波形占空比计算公式如下:MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置 7.3.11 PWM通道占空比寄存器(通道占空比寄存器(PWMDTY) 表7-5总结了在忽略PWM输出格式(左对齐或居中对齐方式)和分辨率(8位或16位)情况下,PWM输出波形的临界情况。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.12 PWM关闭寄存器(关闭寄存器(PWMSDN)PWM关闭寄存器(PWM Shutdown Register,PWMSDN)具有紧急情况下立即关闭PWM通道输出的功能,PWM紧急关闭情况下,PWM通道7被配置为输入端口。PWMSDN寄存器如图7.19所示。读:任何时刻;写:任何时刻。PWMIF:PWM中断标志位。当PWM7ENA=1时,PWM通道7引脚上的电平变化将产生中断并置位PWMIF。向PWMIF位写1操作实现清零,PWMIF位写0操作无效。0表示PWM通道7输入信号无变化;1表示PWM通道7输入信号有变化。PWMIE:PWM中断使能位。0表示禁止PWM中断;1表示允许PWM中断。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.3 PWM模块寄存器及设置模块寄存器及设置7.3.12 PWM关闭寄存器(关闭寄存器(PWMSDN)PWMRSTRT:PWM重新启动控制位。只有当PWM通道7处于无效状态(非紧急关闭)时,才可以重新启动PWM模块。向PWMRSTRT位写1(触发事件)之后,当计数器返回0时,PWM通道才开始运行。如果PWM7ENA位被复位到0,只有当计数器返回到0后,PWM模块才能开始工作。读取该位始终返回0。PWMLVL:PWM紧急关闭后输出电平选择位。PWM紧急关闭情况下,PWM通道7为输入端口,其他PWM通道的输出电平由PWMLVL位确定。0表示其他PWM通道输出低电平;1表示其他PWM通道输出高电平。PWM7IN:PWM通道7输入状态位,该位反应了PWM通道7引脚的电平状态。PWM7INL:PWM紧急关闭后通道7输入电平选择位。PWM紧急关闭(PWM7ENA=1)情况下,该位确定PWM通道7输入电平有效值。0表示有效电平为低电平;1表示有效电平为高电平。PWM7ENA:PWM紧急关闭使能位。如果该位为1,通道PWM7被强制配置为输入端口,并启用紧急关闭功能。PWMSDN寄存器中其他位仅在PWM7ENA=1时才有意义。0表示禁止紧急关闭;1表示允许紧急关闭。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.4 PWM模块应用实例模块应用实例 本节通过一个简单实例,让读者掌握PWM模块的使用和编程方法。本实例使用某一路PWM输出实现D/A转换功能,通过调节PWM输出波形占空比,控制LED灯的亮度,硬件连接如图7.20所示,PWM输出波形用做D/A输出时,最简单的方法就是使用一阶低通滤波器(如图7.20中R1、C1构成一阶低通滤波器)对PWM信号滤波,为了保持输出电压稳定,要确保输出阻抗尽可能大。为此,在低通滤波器后增加了电压跟随器(图7.20中由LM324和R2构成)。软件编程实现PWM输出占空比不断增大,可以观察到LED灯的亮度不断增加;之后PWM输出占空比不断减小,可以观察到LED灯的亮度不断降低。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.4 PWM模块应用实例模块应用实例 程序清单:MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.4 PWM模块应用实例模块应用实例 程序清单:MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.4 PWM模块应用实例模块应用实例 程序清单:MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用在智能车竞赛系统设计中,直流电动机和伺服电动机的控制涉及智能车的速度与方向控制,是智能车控制好坏两大关键因素。鉴于篇幅有限,在此仅叙述运用MC9S12XS128的PWM模块实现对直流电动机和伺服电动机的简单控制应用,更详细的速度控制算法和方向(角度)控制算法,请读者参见相关参考文献。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.1 应用应用PWM模块控制直流电动机模块控制直流电动机直流电动机驱动是智能车前行的动力所在。要驱动、控制一个直流电动机需要设计直流电动机驱动电路,既可以使用分立的功率元件(如MOSFET)搭建驱动电路,也可以使用集成的直流电动机功率驱动芯片。在此,以Freescale公司的H桥功率驱动芯片MC33887为例,介绍应用PWM模块控制直流电动机,其芯片内部结构及引脚图分别如图7.21和图7.22所示(芯片详细资料请读者参考MC33887数据手册)。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.1 应用应用PWM模块控制直流电动机模块控制直流电动机 MC33887引脚功能如表7-6所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.1 应用应用PWM模块控制直流电动机模块控制直流电动机 在智能车系统中,运用MC33887驱动直流电动机的原理图如图7.23所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.1 应用应用PWM模块控制直流电动机模块控制直流电动机 在此用MC9S12XS128的PWM7和PWM3分别作为MC33887的IN1和IN2引脚的输入控制端,并通过MC9S12 XS128的ADC模块采样MC33887的反馈电流信号(FB引脚),以实时监控H桥的高边工作电流值,实现对电动机的转速和转矩的闭环控制。将D1(引脚18)和D2(引脚13)分别通过下拉电阻和上拉电阻连接到GND和5 V,以使能OUT1(引脚6、7)和OUT2(引脚14、15)的输出控制。运用PWM模块控制直流电动机的源代码如下。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.1 应用应用PWM模块控制直流电动机模块控制直流电动机 MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.1 应用应用PWM模块控制直流电动机模块控制直流电动机 MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.1 应用应用PWM模块控制直流电动机模块控制直流电动机 MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.2 应用应用PWM模块控制伺服电动机模块控制伺服电动机 伺服电动机(俗称为舵机)是竞赛车模标准配件,它是一种位置(角度)伺服驱动器,用于需要角度调整变化并可以保持某个角度的控制应用要求。目前在高档遥控玩具、各种航模,包括飞机模型,潜艇模型,遥控机器人等装置中已得到普遍应用。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.2 应用应用PWM模块控制伺服电动机模块控制伺服电动机 图7.24是车模伺服电动机的机械结构图。车模伺服电动机的工作原理:控制信号(这里为PWM信号)输出作用到控制电路板上的信号调制芯片,获得一个直流偏置电压。在伺服电动机的控制电路板上有一个内部基准电路,该电路可以产生一个周期为20 ms,宽度为1.5 ms的基准信号,获得的直流偏置电压与电位器的当前电压进行比较,产生一个输出电压差;输出电压差的正值或负值输入到控制电路板上确定小型直流电动机的正转或反转。当小型直流电动机转速一定时,通过级联的变速齿轮组带动可调电位器旋转,最终使得输出电压差为0,此时小型直流电动机转动到某一位置,并保持该位置,停止转动。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.2 应用应用PWM模块控制伺服电动机模块控制伺服电动机 伺服电动机的输出转角与输入PWM波控制信号的占空比存在如图7.25所示的关系。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.2 应用应用PWM模块控制伺服电动机模块控制伺服电动机 由伺服电动机的工作原理和图7.25可知,只需改变输入PWM脉冲信号的占空比便能获得不同的转角,实现智能车系统的转向控制功能。在此应用MC9S12XS128的PWM5模块控制伺服电动机,伺服电动机的工作电源电压是4.86.0 V,为了提高智能车系统的转向性能,在此使用最高工作电压6.0 V,原理图如图7.26所示。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发7.5 智能车系统中智能车系统中PWM模块的应用模块的应用7.5.2 应用应用PWM模块控制伺服电动机模块控制伺服电动机 有关PWM5的初始化代码已经在前面7.5.1节中给出,以下仅给出伺服电动机控制的相关代码,即设置PWM的占空比值,能够实现伺服电动机的相应转向要求。MC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发The EndMC9S12XSMC9S12XS系列脉宽调制模块及其应用实例课件系列脉宽调制模块及其应用实例课件单单片机原理及嵌入式系统开发片机原理及嵌入式系统开发
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号