首页 第7章__MC9S12XS系列脉宽调制模块及其应用实例

第7章__MC9S12XS系列脉宽调制模块及其应用实例

举报
开通vip

第7章__MC9S12XS系列脉宽调制模块及其应用实例《MC9S12XS单片机原理及嵌入式系统开发》MC9S12XS单片机原理及嵌入式系统开发合肥工业大学张阳,吴晔,滕勤Email:yzhang0615@163.com,wuye@ialab.hfut.edu.cn,tengqin7348@126.comTEL:13966717615,13505612773《MC9S12XS单片机原理及嵌入式系统开发》第7章MC9S12XS系列脉宽调制模块及其应用实例PWM模块概述PWM模块结构组成和特点PWM模块寄存器及设置PWM模块应用实例智能车系统中PWM模块的应用《MC9S12...

第7章__MC9S12XS系列脉宽调制模块及其应用实例
《MC9S12XS单片机原理及嵌入式系统开发》MC9S12XS单片机原理及嵌入式系统开发合肥工业大学张阳,吴晔,滕勤Email:yzhang0615@163.com,wuye@ialab.hfut.edu.cn,tengqin7348@126.comTEL:13966717615,13505612773《MC9S12XS单片机原理及嵌入式系统开发》第7章MC9S12XS系列脉宽调制模块及其应用实例PWM模块概述PWM模块结构组成和特点PWM模块寄存器及设置PWM模块应用实例智能车系统中PWM模块的应用《MC9S12XS单片机原理及嵌入式系统开发》7.1PWM模块概述脉冲宽度调制(PWM)是产生精确脉冲序列输出和实现D/A转换的有效 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,微控制器的脉宽调制模块被广泛应用于工业控制和新型消费机电产品中(如智能空调、节能冰箱、电动自行车等)。PWM信号通过软件编程调节波形的占空比、周期和相位,能够用于直流电动机调速、伺服电动机控制、D/A转换器等应用。例如,电视机遥控部分普遍采用14位或16位的PWM产生调谐电压;在无人自动驾驶汽车系统中,常用伺服电动机来控制方向盘,伺服电动机的旋转角度与给定的PWM信号占空比一致,每个占空比数值都对应一个旋转角度;在灯光亮度调节、直流电动机速度控制等方面,采用PWM信号能够很容易实现。MC9S12XS系列产生PWM信号的方法主要有两种:利用输出比较功能和MCU内置的PWM模块实现。利用输出比较功能可以通过软件编程设定输出任意脉冲信号,但会占用CPU资源,而且不易产生精确的脉冲序列;而MCU内部集成的PWM模块专门用于输出PWM信号,使用时极少占用CPU资源。《MC9S12XS单片机原理及嵌入式系统开发》7.2PWM模块结构组成和特点MC9S12XS128内置的PWM模块框图如图7.1所示。《MC9S12XS单片机原理及嵌入式系统开发》7.2PWM模块概述由图7.1可知,MC9S12XS128的PWM模块具有8路8位独立PWM通道,通过相应设置也可以变为4个16位PWM通道,每个PWM通道由独立运行的8位通道计数器PWMCNT、两个比较寄存器为通道周期寄存器PWMPER和占空比寄存器PWMDTY等组成。通过对各寄存器的参数设置,确定PWM波形的输出周期和占空比,另外还可以通过通道极性寄存器PWMPOL和居中对齐使能寄存器PWMCAE设置PWM输出脉冲波形的极性和对齐方式。《MC9S12XS单片机原理及嵌入式系统开发》7.2PWM模块概述PWM模块具有以下基本特征:具有可编程周期和占空比的8个独立PWM通道;每个PWM通道具有独立的计数器;每个通道可编程允许/禁止PWM功能;每个通道可软件选择PWM脉冲极性;具有双缓冲的周期和占空比寄存器,当到达有效周期终点(PWM计数器到达0)或通道禁止时,修改值生效;每个通道可编程中心对齐或左对齐输出;8个8位通道或4个16位通道PWM分辨率;4个时钟源(A、B、SA和SB)提供宽频带频率;可编程的时钟选择逻辑;紧急关闭功能。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置MC9S12XS128的PWM模块的相关寄存器详见 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 7-1,其中PWM测试寄存器(PWMTST)、PWM预分频计数寄存器(PWMPRSC)、PWM比例因子A计数寄存器(PWMSCNTA)和PWM比例因子B计数寄存器(PWMSCNTB)仅用于出厂测试,所以后文不对其进行说明。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.1PWM使能寄存器(PWME)PWM使能寄存器(PWMEnableRegister,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所示。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.1PWM使能寄存器(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输出无效。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.1PWM使能寄存器(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输出无效。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.2PWM极性寄存器(PWMPOL)每个PWM通道波形开始时的信号极性由PWM极性寄存器(PWMPolarityRegister,PWMPOL)中的极性选择位(PPOLx)决定,如果PPOLx位为1,周期脉冲开始时PWM通道输出高电平信号,当通道计数器PWMCNTx数值等于占空比寄存器PWMDTYx数值时翻转为低电平信号;相反,如果PPOLx位为0,周期脉冲开始时PWM通道输出低电平信号,当PWMCNTx数值等于PWMDTYx数值时翻转为高电平信号,PWMPOL寄存器如图7.3所示。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.2PWM极性寄存器(PWMPOL)读:任何时刻;写:任何时刻。注意:PWMPOL寄存器中的PPOLx位可以在任何时刻进行写入操作。如果正在产生PWM信号时要求改变信号极性,则PWM输出脉冲在信号极性转换过程中可能被截短或延长。PPOLx:PWM通道x输出波形极性位。0表示PWM通道x在周期脉冲开始时输出低电平,当到达占空比计数值时翻转为高电平;1表示PWM通道x在周期脉冲开始时输出高电平,当到达占空比计数值时翻转为低电平。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.3PWM时钟选择寄存器(PWMCLK)每一个PWM通道可以选择两个时钟之一作为该通道的时钟源。PWM时钟选择寄存器(PWMClockSelectRegister,PWMCLK)如图7.4所示。读:任何时刻;写:任何时刻。注意:PWMCLK寄存器中的PCLKx位可以在任何时刻写入。如果正在产生PWM信号时要求改变信号极性,则PWM输出脉冲在信号极性转换过程中可能被截短或延长。PCLK7、PCLK6、PCLK3、PCLK2:PWM通道7、6、3、2时钟选择位。0表示ClockB作为相应通道时钟源;1表示ClockSB作为相应通道时钟源。PCLK5、PCLK4、PCLK1、PCLK0:PWM通道5、4、1、0时钟选择位。0表示ClockA作为相应通道时钟源;1表示ClockSA作为相应通道时钟源。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.3PWM时钟选择寄存器(PWMCLK)PWM时钟选择框图如图7.5所示,从图中可知,PWM模块一共有4个时钟源,分别为ClockA、ClockB、ClockSA和ClockSB,其中ClockA和ClockB由总线时钟直接分频得到,分频因子由PWM预分频时钟选择寄存器(PWMPRCLK)中的Bit2~Bit0或Bit6~Bit4确定(如图7.6所示),PWMPRCLK寄存器的介绍详见7.3.4节。ClockSA由ClockA通过PWM比例因子A寄存器(PWMSCLA)再次分频得到,ClockSB由ClockB通过PWM比例因子B寄存器(PWMSCLB)再次分频得到,PWMSCLA寄存器和PWMSCLB寄存器的介绍详见7.3.7节和7.3.8节。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.3PWM时钟选择寄存器(PWMCLK)《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.4PWM预分频时钟选择寄存器(PWMPRCLK)读:任何时刻;写:任何时刻。注意:PWMPRCLK寄存器中的位可以在任何时刻写入。如果正在产生PWM信号时要求改变极信号性,则PWM输出脉冲在信号极性转换过程中可能被截短或延长。PCKB2~PCKB0:ClockB预分频因子选择位。这3位决定了ClockB的分频因子,ClockB可以作为通道2、3、6或7的两个时钟源之一,如表7-2所示。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.4PWM预分频时钟选择寄存器(PWMPRCLK)《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.4PWM预分频时钟选择寄存器(PWMPRCLK)PCKA2~PCKA0:ClockA预分频因子选择位。这3位决定了ClockA的分频因子,ClockA是可以作为通道0、1、4或5的两个时钟源之一,如表7-3所示。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.5PWM居中对齐使能寄存器(PWMCAE)PWM居中对齐使能寄存器(PWMCenterAlignEnableRegister,PWMCAE)包含8个控制位,如图7.7所示。用于控制相应PWM通道输出波形为中心对齐输出或左对齐输出。如果CAEx=1,相应的PWM通道输出波形为中心对齐;如果CAEX=0,相应的PWM通道输出波形为左对齐。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.5PWM居中对齐使能寄存器(PWMCAE)注意:仅当相应的通道被禁止输出时,才可以设置该寄存器。CAEx:通道x居中对齐输出方式位。0表示通道x输出波形为左对齐方式。1表示通道x输出波形为居中对齐方式。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.5PWM居中对齐使能寄存器(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节。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.5PWM居中对齐使能寄存器(PWMCAE)PWM居中对齐输出波形如图7.9所示。当使用居中对齐格式输出时,8位计数器PWMCNTx既做加法计数器也能做减法计数器;当PWMCNTx计数器加法计数到PWMDTYx寄存器中设置的数值时,PWM通道输出波形发生变化;当PWMCNTx计数器加法计数到PWMPERx寄存器中设置的数值时,PWMCNTx计数器会从加法计数器变为减法计数器;当PWMCNTx计数器开始减法计数到PWMDTYx寄存器中的数值时,PWM通道输出波形再次发生变化;当PWMCNTx计数器中数值减到0时,PWMCNTx重新变为加法计数器,然后读取PWMDTYx寄存器和PWMPERx寄存器中的数值作为下一次PWMCNTx计数参考使用。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.6PWM控制寄存器(PWMCTL)PWM控制寄存器(PWMControlRegister,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位字节。读:任何时刻;写:任何时刻。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.6PWM控制寄存器(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的相应寄存器控制位均无效。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.6PWM控制寄存器(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的相应寄存器控制位均无效。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.6PWM控制寄存器(PWMCTL)如果需要PWM输出精度更高,可以将2个8位PWM通道级联构成1个16位PWM通道,如图7.11所示。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.6PWM控制寄存器(PWMCTL)PSWAI:MCU等待工作模式下PWM停止位。使能该位,可以禁止预分频器的时钟输入,降低MCU等待模式下的功耗。0表示等待模式时,允许预分频器时钟输入;1表示等待模式时,禁止预分频器时钟输入。PFRZ:MCU冻结工作模式下PWM停止位,在冻结模式下,PWM通道计数器PWMCNTx停止计数。0表示冻结模式时,允许冻结PWM工作;1表示冻结模式时,禁止预分频器时钟输入。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.7PWM比例因子A寄存器(PWMSCLA)PWM比例因子A寄存器(PWMScaleARegister,PWMSCLA)是可编程分频寄存器,如图7.12所示,用于将ClockA进行分频,产生ClockSA。通过将ClockA除以PWMSCLA寄存器中的值,再除以2,产生ClockSA信号,公式为读:任何时刻;写:任何时刻(将导致分频计数器装载新的PWMSCLA比例因子值)。注意:PWMSCLA默认值为256,当PWMSCLA=$00时,此时ClockSA等于ClockA的频率除以512。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.8PWM比例因子B寄存器(PWMSCLB)PWM比例因子B寄存器(PWMScaleBRegister,PWMSCLB)是可编程分频寄存器,如图7.13所示,用于将ClockB进行分频,产生ClockSB。通过将ClockB除以PWMSCLB寄存器中的值,再除以2,产生ClockSB信号,其公式为读:任何时刻;写:任何时刻(将导致分频计数器装载新的PWMSCLB比例因子值)。注意:PWMSCLB默认值为256,当PWMSCLB=$00时,此时ClockSB等于ClockB的频率除以512。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.9PWM通道计数器(PWMCNT)每个通道有一个专用的8位加/减计数器PWMCNT(PWMChannelCounterRegisters,PWMCNT),计数器PWMCNTx的频率和时钟源频率相关。可以在任何时刻读取PWMCNTx中数值,而不影响PWMCNTx和PWM通道的工作。当处于左对齐输出模式时,PWMCNTx从0开始做加法计数,直到增加到PWM周期寄存器PWMPERx1的值;当处于居中对齐输出模式时,PWMCNTx从0开始进行加法计数,直到增加到PWMPERx的值,然后再进行减法,直至回到0。PWMCNTx寄存器如图7.14所示。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.9PWM通道计数器(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周期脉冲。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.10PWM通道周期寄存器(PWMPER)每个PWM通道有一个独立的周期寄存器PWMPER(PWMChannelPeriodRegister),该寄存器中的值决定相应PWM通道的周期,如图7.15所示。周期寄存器PWMPERx中的数值是双缓冲的,因此,当PWMPERx寄存器中的数值改变后,并不立即生效,直到下列事件中的一个发生:当前有效周期结束;写计数器PWMCNTx(计数器复位到$00);通道被禁止。因此,PWM将总是输出以前的波形或新波形,而不是两者之间的某种无效波形。如果PWM通道被禁止,写入周期寄存器的数值将直接进入锁存器和缓冲器。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.10PWM通道周期寄存器(PWMPER)读:任何时刻;写:任何时刻。注意:读PWMPERx寄存器返回最新写入的数值,而不是返回当前有效的周期值。PWM输出波形的周期计算方法是,用选择的时钟周期(ClockA、ClockB、ClockSA或ClockSB)乘以周期寄存器PWMPERx中的数值。左对齐方式输出(CAEx=0):PWMx周期=通道时钟周期×PWMPERx居中对齐方式输出(CAEx=1):PWMx周期=通道时钟周期×2×PWMPERx《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.11PWM通道占空比寄存器(PWMDTY)每个PWM通道有一个独立的占空比寄存器PWMDTY(PWMChannelDutyRegister),该寄存器中的值决定相应PWM通道的占空比,如图7.16所示。占空比寄存器PWMDTYx中的数值是双缓冲的,因此,当PWMDTYx寄存器中的数值改变后,并不立即生效,直到下列事件中的一个发生:当前有效周期结束;写计数器PWMCNTx(计数器复位到$00);通道被禁止。因此,PWM将总是输出以前的波形或新波形,而不是两者之间的某种无效波形。如果PWM通道被禁止,写入占空比寄存器的数值将直接进入锁存器和缓冲器。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.11PWM通道占空比寄存器(PWMDTY)读:任何时刻;写:任何时刻。注意:读PWMDTYx寄存器返回最新写入的数值,而不是返回当前有效的占空比值。PWMDTYx寄存器中数值的含义,根据极性控制位PPOLx的不同而不同。如果PPOLx位是1,PWM输出波形开始为高电平,当PWMCNTx计数器数值等于PWMDTYx寄存器数值时变为低电平,此时PWMDTYx寄存器中的数值代表了高电平的持续时间;如果PPOLx位是0,PWM输出波形开始为低电平,当PWMCNTx计数器数值等于PWMDTYx寄存器数值时变为高电平,此时PWMDTYx寄存器中的数值代表了低电平的持续时间。PWM波形占空比计算公式如下:《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.11PWM通道占空比寄存器(PWMDTY)表7-5 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 了在忽略PWM输出格式(左对齐或居中对齐方式)和分辨率(8位或16位)情况下,PWM输出波形的临界情况。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.12PWM关闭寄存器(PWMSDN)PWM关闭寄存器(PWMShutdownRegister,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中断。《MC9S12XS单片机原理及嵌入式系统开发》7.3PWM模块寄存器及设置7.3.12PWM关闭寄存器(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表示允许紧急关闭。《MC9S12XS单片机原理及嵌入式系统开发》7.4PWM模块应用实例本节通过一个简单实例,让读者掌握PWM模块的使用和编程方法。本实例使用某一路PWM输出实现D/A转换功能,通过调节PWM输出波形占空比,控制LED灯的亮度,硬件连接如图7.20所示,PWM输出波形用做D/A输出时,最简单的方法就是使用一阶低通滤波器(如图7.20中R1、C1构成一阶低通滤波器)对PWM信号滤波,为了保持输出电压稳定,要确保输出阻抗尽可能大。为此,在低通滤波器后增加了电压跟随器(图7.20中由LM324和R2构成)。软件编程实现PWM输出占空比不断增大,可以观察到LED灯的亮度不断增加;之后PWM输出占空比不断减小,可以观察到LED灯的亮度不断降低。《MC9S12XS单片机原理及嵌入式系统开发》7.4PWM模块应用实例程序清单:《MC9S12XS单片机原理及嵌入式系统开发》7.4PWM模块应用实例程序清单:《MC9S12XS单片机原理及嵌入式系统开发》7.4PWM模块应用实例程序清单:《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用在智能车竞赛系统 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 中,直流电动机和伺服电动机的控制涉及智能车的速度与方向控制,是智能车控制好坏两大关键因素。鉴于篇幅有限,在此仅叙述运用MC9S12XS128的PWM模块实现对直流电动机和伺服电动机的简单控制应用,更详细的速度控制算法和方向(角度)控制算法,请读者参见相关参考文献。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.1应用PWM模块控制直流电动机直流电动机驱动是智能车前行的动力所在。要驱动、控制一个直流电动机需要设计直流电动机驱动电路,既可以使用分立的功率元件(如MOSFET)搭建驱动电路,也可以使用集成的直流电动机功率驱动芯片。在此,以Freescale公司的H桥功率驱动芯片MC33887为例,介绍应用PWM模块控制直流电动机,其芯片内部结构及引脚图分别如图7.21和图7.22所示(芯片详细资料请读者参考MC33887数据手册)。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.1应用PWM模块控制直流电动机MC33887引脚功能如表7-6所示。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.1应用PWM模块控制直流电动机在智能车系统中,运用MC33887驱动直流电动机的原理图如图7.23所示。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.1应用PWM模块控制直流电动机在此用MC9S12XS128的PWM7和PWM3分别作为MC33887的IN1和IN2引脚的输入控制端,并通过MC9S12XS128的ADC模块采样MC33887的反馈电流信号(FB引脚),以实时监控H桥的高边工作电流值,实现对电动机的转速和转矩的闭环控制。将D1(引脚18)和D2(引脚13)分别通过下拉电阻和上拉电阻连接到GND和5V,以使能OUT1(引脚6、7)和OUT2(引脚14、15)的输出控制。运用PWM模块控制直流电动机的源代码如下。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.1应用PWM模块控制直流电动机《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.1应用PWM模块控制直流电动机《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.1应用PWM模块控制直流电动机《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.2应用PWM模块控制伺服电动机伺服电动机(俗称为舵机)是竞赛车模 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 配件,它是一种位置(角度)伺服驱动器,用于需要角度调整变化并可以保持某个角度的控制应用要求。目前在高档遥控玩具、各种航模,包括飞机模型,潜艇模型,遥控机器人等装置中已得到普遍应用。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.2应用PWM模块控制伺服电动机图7.24是车模伺服电动机的机械结构图。车模伺服电动机的工作原理:控制信号(这里为PWM信号)输出作用到控制电路板上的信号调制芯片,获得一个直流偏置电压。在伺服电动机的控制电路板上有一个内部基准电路,该电路可以产生一个周期为20ms,宽度为1.5ms的基准信号,获得的直流偏置电压与电位器的当前电压进行比较,产生一个输出电压差;输出电压差的正值或负值输入到控制电路板上确定小型直流电动机的正转或反转。当小型直流电动机转速一定时,通过级联的变速齿轮组带动可调电位器旋转,最终使得输出电压差为0,此时小型直流电动机转动到某一位置,并保持该位置,停止转动。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.2应用PWM模块控制伺服电动机伺服电动机的输出转角与输入PWM波控制信号的占空比存在如图7.25所示的关系。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.2应用PWM模块控制伺服电动机由伺服电动机的工作原理和图7.25可知,只需改变输入PWM脉冲信号的占空比便能获得不同的转角,实现智能车系统的转向控制功能。在此应用MC9S12XS128的PWM5模块控制伺服电动机,伺服电动机的工作电源电压是4.8~6.0V,为了提高智能车系统的转向性能,在此使用最高工作电压6.0V,原理图如图7.26所示。《MC9S12XS单片机原理及嵌入式系统开发》7.5智能车系统中PWM模块的应用7.5.2应用PWM模块控制伺服电动机有关PWM5的初始化代码已经在前面7.5.1节中给出,以下仅给出伺服电动机控制的相关代码,即设置PWM的占空比值,能够实现伺服电动机的相应转向要求。《MC9S12XS单片机原理及嵌入式系统开发》TheEnd
本文档为【第7章__MC9S12XS系列脉宽调制模块及其应用实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_143311
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2013-03-31
浏览量:18