《飞思卡尔10章脉宽调制模块课件》由会员分享,可在线阅读,更多相关《飞思卡尔10章脉宽调制模块课件(22页珍藏版)》请在金锄头文库上搜索。
1、第第10章章 S12脉宽调制模块脉宽调制模块lPULSE WIDTH MODULATIONl脉冲宽度调制(PWM)是工业控制和机电产品中最常用的技术。例如控制电动机的速度和伺服电机的旋转角度等。飞思卡尔10章脉宽调制模块课件什么是PWM?TonToffTperiodAverage0 %10 %50 %90 %99 %应用:D/A转换 马达控制音调生成正弦波生成占空比=高电平时间/周期=Ton/Tperiod飞思卡尔10章脉宽调制模块课件10.1 PWM概述S12可提供优异的频率高、分辨率高、占空比可调、范围宽的PWM信号。主要特点: 8个带周期占空比可程控的PWM独立通道 4个可程控选择的时钟
2、源 每个PWM通道有专用的计数器 PWM每个通道脉冲极性可以选择 每个PWM通道可使能/禁止 周期和占空比双缓冲 每个通道有中心对齐和边缘对齐方式 分辨率: 8位 (8通道), 16位 (4通道) 带中断功能的紧急切断 占空比可调范围0100飞思卡尔10章脉宽调制模块课件10.2 PWM结构和原理通道通道 7周期和占空比计数器通道通道 6周期和占空比计数器.通道通道 0周期和占空比计数器管脚使能选择极性选择对齐方式选择管脚管脚飞思卡尔10章脉宽调制模块课件10.2.1 PWM工作原理开始周期 TPWMTPWM占空比 TDutyPWMDTYxPWMPERxPWMPERxfClock, TCloc
3、k8-bit CounterPWMCNTx时钟8-bit Compare =PWMDTYx8-bit Compare =PWMPERx0x000x00ResetPin当8位计数器的值等于PWMDTY(duty cycle寄存器)时,电平从有效跳到无效;当8位计数器的值等于PWMPER(周期寄存器)时,电平从无效跳到有效,然后计数器清0,重新开始计数飞思卡尔10章脉宽调制模块课件PWMPERxPWMDTYxPWM 计时器通道 8-Bit CounterPWMCNTx8-Bit Compare =PWMDTYx8-Bit Compare =PWMPERxPWMCNT0 $_0CPWMCNT1 $_
4、0DPWMCNT2 $_0EPWMCNT3 $_0FPWMCNT4 $_10PWMCNT5 $_11 PWMCNT6 $_12PWMCNT7 $_13PWMDTY0 $_1CPWMDTY1 $_1DPWMDTY2 $_1E PWMDTY3 $_1FPWMDTY4 $_20 PWMDTY5 $_21PWMDTY6 $_22PWMDTY7 $_23PWMPER0 $_14PWMPER1 $_15PWMPER2 $_16PWMPER3 $_17PWMPER4 $_18PWMPER5 $_19PWMPER6 $_1APWMPER7 $_1B极性位Polarity Bit = 1 Duty = High
5、 TimeChannel xx = 0 . 7DoubleBufferedDoubleBufferedPWMDTYxPWMPERx占空比寄存器周期寄存器飞思卡尔10章脉宽调制模块课件对齐方式选择-左对齐Clock SourceE = 100 nsDuty Cycle= 75 %Period= 400 ns时钟源 = E = 10 MHz (100 ns period)PPOLx = 0PWMPERx = 4PWMDTYx = 1PWMx 频率 = 10 MHz/4 = 2.5 MHzPWMx 周期 = 400 nsPWMx 占空比 = *100% = 75%Start飞思卡尔10章脉宽调制模块
6、课件对齐方式选择-中央对齐 PWMDTYxE = 100nsPeriod = PWMPERx*2= 800 ns时钟源 = E = 10 MHz (100 ns period)PPOLx = 0PWMPERx = 4PWMDTYx = 1PWMx 频率 = 10 MHz/8 = 1.25 MHzPWMx 周期 = 800 nsPWMx 占空比 = *100% = 75%StartPWMDTYxE = 100nsPWMPERxPWMPERxDuty Cycle = 75%飞思卡尔10章脉宽调制模块课件16位分辨率两个两个8位位PWM通道可以组合成一个通道可以组合成一个16位位PWM通道通道Per
7、iod/Duty ComparePWMCNT6PWMCNT7PWM7Clock Source 7CONxxPWMExPPOLxPCLKxCAExPWMx OUTPUTCON67PWME7PPOL7PCLK7CAE7PWM7CON45PWME5PPOL5PCLK5CAE5PWM5CON23PWME3PPOL3PCLK3CAE3PWM3CON01PWME1PPOL1PCLK1CAE1PWM1飞思卡尔10章脉宽调制模块课件16位 PWM 组合 软件可选择通道组合软件可选择通道组合. 在组合模式下,可以左对齐或中心对齐输出在组合模式下,可以左对齐或中心对齐输出 增加了分辨率,周期可以更长增加了分辨率,
8、周期可以更长CLOCK SOURCE 5 PWCNT 4 PWCNT 5PERIOD/DUTY COMPARECLOCK SOURCE 7 PWCNT 6 PWCNT 7PERIOD/DUTY COMPARECLOCK SOURCE 3 PWCNT 2 PWCNT 3PERIOD/DUTY COMPARECLOCK SOURCE 1 PWCNT 0 PWCNT 1PERIOD/DUTY COMPAREPWM7PWM5PWM3PWM1飞思卡尔10章脉宽调制模块课件PWM 时钟选择 1.Clock A (Ch 0, Ch 1, Ch 4, Ch 5)2.Clock SA (scaled A; Ch
9、 0, Ch 1, Ch 4, Ch 5)3.Clock B (Ch 2, Ch 3, Ch 6, Ch 7)4.Clock SB (scaled B; Ch 2, Ch 3, Ch 6, Ch 7)4个时钟源:Bus ClockDivide by Prescaler Taps:248163264128预分频PWMPRCLK $_03Clock SAClock SBClock AFurther Division of the clock:2468.512Clock BFurther Division of the clock:2468.512PWMSCLA $_08PWMSCLB $_09分频
10、飞思卡尔10章脉宽调制模块课件PWM 时钟选择 预分频寄存器 0PCKB2 PCKB1 PCKB00PCKA2 PCKA1 PCKA0RWReset: 00000000= Unimplemented or ReservedPWMPRCLK $_03PCKx2PCKx1PCKx0Value of Clock x000Bus Clock001Bus Clock / 2010Bus Clock / 4011Bus Clock / 8100Bus Clock / 16101Bus Clock / 32110Bus Clock / 64111Bus Clock / 128可在任意时刻读写!x = A o
11、r B设置 PRESCALE 寄存器:PWMPRCLK = 0x22;/ B= Bus/4, A = Bus/4PWMPRCLK = 0x07;/ B = Bus, A = Bus/128Software ExamplesBit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 0飞思卡尔10章脉宽调制模块课件PWM 时钟选择 分频寄存器总线时钟fBusDivide by Prescaler Taps:2481632641288-Bit Down CounterBit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0PWMSCLx分频值
12、PWMSCLx = $00 PWMSCLx value is 256可在任意时刻读写!x = A or B/ 2Clock SxClock xClock x = fBus / PWMPRCLKCount = 1PWMPRCLK $_03PWMSCLB $_09PWMSCLA $_08例如:要求: Clock Sx = 1 kHz总线时钟 = 16 MHzPrescaler = 128 Prescaler = 64Clock x = 125 kHzClock x = 250 kHzPWMSCLx = 63 PWMSCLx = 125 Clock Sx = 992 HzClock Sx = 100
13、0 Hz飞思卡尔10章脉宽调制模块课件PCLK6 PCLK5 PCLK4 PCLK3 PCLK2 PCLK1RWReset: 00000000PWMCLK $_02PCLK7Bit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 0PCLK5 通道 5时钟选择 1 =时钟源为SA 0 =时钟源为APCLK4 通道 4时钟选择 1 =时钟源为SA 0 =时钟源为APCLK3 通道 3时钟选择 1 =时钟源为SB. 0 =时钟源为BPCLK2 通道 2时钟选择 1 =时钟源为SB 0 =时钟源为BPCLK1 通道 1时钟选择1 =时钟源为SA0 =时钟源为APCLK0 通道
14、0时钟选择1 =时钟源为SA0 =时钟源为APCLK7 通道 7时钟选择 1 = 通道7的时钟源为SB 0 =通道7的时钟源为B.PCLK6 通道 6时钟选择 1 =时钟源为SB. 0 =时钟源为B飞思卡尔10章脉宽调制模块课件使能/禁止 PWMPWME6 PWME5 PWME4 PWME3 PWME2 PWME1 PWME0RWReset:00000000PWME $_00PWME71 = 通道 x 使能. 下一个时钟开始输出PWM 0 = 通道x禁止通道7通道6通道 0.使能/禁止 PWM 通道:PWME5 = 1;/ Enable PWM channel 5PWME3 = 0;/ Dis
15、able PWM channel 3PWME = 0xFF/ Enable all 8 PWM channelsPWME = 0;/ Disable all 8 PWM channels软件示例软件示例Bit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 0飞思卡尔10章脉宽调制模块课件PWM 中央对齐使能寄存器 CAE6CAE5CAE4CAE3CAE2CAE1CAE0RWReset: 00000000PWMCAE $_04CAE7CAEx 中心对齐模式选择,通道 x1 = 通道 x 中心对齐输出0 = 通道 x 左边对齐输出 Bit 0Bit 1Bit 2Bit 3B
16、it 4Bit 5Bit 6Bit 0通道7通道6通道 0.飞思卡尔10章脉宽调制模块课件紧急关闭紧急关闭通道 7Channel 6Period and DutyCounterChannel 5Period and DutyCounter.Channel 0Period and DutyCounter故障输入信号PWMLVL=1PWMLVL=0PWM7INL=1PWM7INL=0InterruptPWMIEPWMIF飞思卡尔10章脉宽调制模块课件PWM 关闭寄存器PWMIEPWMRSTRTPWMLVL0PWM7INL PWM7ENRWReset: 00000000PWMSDN $_24PWMI
17、F0PWM7IN= Unimplemented or Reserved设置关闭有效电平PWM7INL设置关闭时的输出电平PWMLVL使能紧急关闭PWM7ENAInitialisation中断使能PWMIEBit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 0飞思卡尔10章脉宽调制模块课件工作模式等待模式在WAIT模式下,允许输入时钟到预分频器PSWAI=10在WAIT模式下,停止输入时钟到预分频器冻结模式在FREEZE模式下,PWM计数器继续 PFRZ=10在FREEZE模式下,PWM计数器停止CON45CON010PSWAIRWPWMCTL $_05CON67CON
18、23PFRZ0Bit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 0使能使能/禁止时钟禁止时钟在在WAIT模式时模式时PFRZ PWM计数器停止在计数器停止在 Freeze模式时模式时16 位工作模式飞思卡尔10章脉宽调制模块课件PWM 通道周期寄存器-周期计算Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0RWReset: 11111111PWMPERx $_14-_1BBit 7Bit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 0左对齐输出左对齐输出中心对齐输出中心对齐输出飞思卡尔10章脉宽调制模块课件PWM 通道占空比寄存器-占空比计算Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0RWReset: 11111111PWMDTYx $_1C-_23Bit 7Bit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 0极性极性 = 0极性极性 = 1飞思卡尔10章脉宽调制模块课件10.4 PWM的应用实例见P180飞思卡尔10章脉宽调制模块课件