F28335 ePWM计数模块(CC)与 动作模块(AC)及其寄存器配置 |
您所在的位置:网站首页 › em221cn是什么模块 › F28335 ePWM计数模块(CC)与 动作模块(AC)及其寄存器配置 |
1 计数比较模块 1.1 计数比较模块作用 计数比较模块是以时基计数器的值作为输入,与比较寄存器CMPA和CMPB不断进行比较的,当时基计数器的值等于其中之一时,就会产生相应的事件。 F28335就是通过对比这些值,来产生事件,与动作模块AC相配合来调节PWM的占空比以及频率。 补充:采用影子寄存器来更新比较值CMPA和CMPB 能够有效的防止在PWM周期内出现故障以及毛刺。 1.2 计数比较模块的关键信号 CTR=CMPA 时基计数器的值等于CMPA的值CTR=CMPB 时基计数器的值等于CMPB的值CTR=0 时基计数器的值等于0CTR=TBPRD 时基计数器的值等于周期寄存器的值1.3 计数比较模块的特点 计数比较模块需要产生两个独立的比较事件,才能产生PWM波对于向上递增或者向下递减计数模式来说,在一个PWM周期内,CTR和CMPA和CMPB比较事件只发生一次,所以就需要和0或PRD相对比。而增减模式,CTR和CMPA和CMPB比较事件发生两次,更加灵活。 计数比较模块需要与动作模块AC相互配合以上每个关键信号的到来,都可以产生一个动作信号,这个动作信号可以是置高和置低,我们在设置的时候,灵活运用就可以产生不同的PWM。 1.4 计数比较器寄存器配置 计数比较寄存器 A与计数比较器B 计数比较控制寄存器 采用影子寄存器来更新比较值CMPA和CMPB 能够有效的防止在PWM周期内出现故障以及毛刺。 一般对计数控制寄存器的配置主要是配置好影子寄存器。 配置方式: EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; //CMPA影子装载模式 EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; //CMPB影子装载模式 EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; //CTR=0 影子寄存器A装载 EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO; //CTR=0 影子寄存器B装载2 动作模块 AC 2.1 动作模块的作用 动作模块在PWM波形形成过程中起到关键作用,它决定了相应事件发生时间时应该输出什么电平。 根据计数比较器模块的关键信号(CTR=0,CMPA,CMPB和PRD)产生动作(置高,拉低,翻转)管理以上事件发生后PWM的输出极性针对时基计数器递增或者递减时提供独立的动作控制。2.2 动作模块的关键信号 动作模块的关键信号就是计数比较寄存器和时基寄存器的比较结果,还有软件的强制信号software forced event CTR=CMPA 时基计数器的值等于CMPA的值CTR=CMPB 时基计数器的值等于CMPB的值CTR=0 时基计数器的值等于0CTR=TBPRD 时基计数器的值等于周期寄存器的值软件强制信号 由AQSFRC和 AQCSF两个寄存器处理。2.3 动作模块事件的优先级 动作模块区别于其他模块的一个很大特性就是它具有优先级。 这是因为动作模块在同一时刻有可能会收到2个到2个以上的事件,这个就需要优先级控制他的动作顺序。 增减模式下优先级表 2.4 动作模块寄存器的配置 动作控制寄存器 如下是一个增计数模式下,AQCTL的配置 EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // CTR上升至CMPA值 置1 ePWMA输出高 EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; // CTR下降至CMPA值 置0 ePWMA输出低 EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET; // CTR上升至CMPB值 置1 ePWMB输出高 EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR; // CTR下降至CMPB值 置0 ePWMB输出低3 典型的波形配置例子 以下的程序内只包括计数模式寄存器,计数比较器寄存器和动作控制寄存器这三个关键点的代码 3.1 单边不对称波形 EPwm1Regs.TBCTL.bit.CTRMODE=TB_UP; //计数模式 EPwm1Regs.TBPRD = 1000; EPwm1Regs.CMPA.half.CMPA = 500; EPwm1Regs.CMPB = 200; EPwm1Regs.AQCTLA.bit.ZRO = AQ_CLEAR; // CTR=0 置0 ePWMA输出低 EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // CTR上升至CMPA值 置1 ePWMA输出高 EPwm1Regs.AQCTLB.bit.ZRO = AQ_CLEAR; // CTR=0 置0 ePWMB输出低 EPwm1Regs.AQCTLB.bit.CBU = AQ_SET; // CTR上升至CMPB值 置1 ePWMB输出高3.2 双边对称波形 EPwm1Regs.TBCTL.bit.CTRMODE=TB_UP_DOWN; //计数模式 EPwm1Regs.TBPRD = 1000; EPwm1Regs.CMPA.half.CMPA = 200; EPwm1Regs.CMPB = 500; EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // CTR上升至CMPA值 置1 ePWMA输出高 EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // CTR减少至CMPA值 置0 ePWMA输出低 EPwm1Regs.AQCTLB.bit.CBU = AQ_SET; // CTR上升至CMPB值 置1 ePWMB输出高 EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR; // CTR减少至CMPB值 置1 ePWMB输出低3.3 双边沿不对成波形 EPwm1Regs.TBCTL.bit.CTRMODE=TB_UP_DOWN; //计数模式 EPwm1Regs.TBPRD = 1000; EPwm1Regs.CMPA.half.CMPA = 400; EPwm1Regs.CMPB = 800; EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // CTR上升至CMPA值 置1 ePWMA输出高 EPwm1Regs.AQCTLA.bit.CBD = AQ_CLEAR; // CTR减少至CMPB值 置0 ePWMA输出低 EPwm1Regs.AQCTLB.bit.ZRO = AQ_CLEAR; // CTR=0 置0 ePWMB输出低 EPwm1Regs.AQCTLB.bit.PRD = AQ_SET; // CTR=PRD值 置1 ePWMB输出高 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |