前言
之前接触过不少PWM控制电机驱动的芯片,但是都是单芯片方案,比较熟悉PWM的时序而已,通过这个手册的了解,希望能够深入了解电机驱动的PWM应该如何发送输出。
简介
本手册所涉及的电机控制PWM(MCPWM)来自PIC24H和dsPIC系列的WPM模块,MCPWM用来产生周期性的脉冲波形,用于电机和功率控制的应用,MCPWM使用定时器累加到一个周期计数值,脉冲的周期和占空比可编程设置。根据芯片的不同,有两个MCPWM模块,具体特点见下面的内容。
MCPWM1模块的特点
MCPWM1模块用来产生多通道同步PWM输出,在三相交流感应电机,开关磁阻电机,直流无刷电机和UPS应用中可以用到这个模块,它的特殊特点如下:
高达8通道PWM输出,共4个占空比生成器 专属的时基支持TCY/2的PWM精度 支持忙碌状态PWM频率改变 硬件死区时间产生器 器件配置位设置输出引脚的极性 多种操作和输出模式:单次,边沿,中心排列,中心排列带两次更新,补充输出模式,独立输出模式 输出手动超越?寄存器 占空比更新可以同步或者立刻更新 两个硬件故障输入 ADC同步的特殊时间触发 输出与PWM可以独立使能
MCPWM2模块的特点
MCPWM2模块提供一对完整的PWM输出,主要应用于如下:电机系统的功率因素矫正,电磁炉系统,直流电机控制系统,单相反向控制和单相交流感应电机控制。特点和MCPWM1有所区别,主要是是少几个模式。
寄存器描述
PxTCON:时基控制,包括时基模式,时钟预分频,输出分频,使能时基定时器
PxTMR:时基计数值和方向状态。
PxTPER:PWM时基值写入寄存器,决定PWM的频率。
PxSECMP:比较值,此值可和ADC进行比较,上升和下降的方向在寄存器中设置。
PWMxCON1:独立或者补充模式下IO的选择
PWMxCON2:特殊事件触发输出的后分频值,立即更新占空比寄存器,选择超越同步输出,使能更新占空比和周期缓存。
PWMxCON1:死区时间值,时钟周期预分频死区单元A和B选择。
PWMxCON2:从死区A和B插入死区时间
PxFLTACON:错误A控制寄存器,包括PWM输出外部错误,错误模式设置,错误A控制的引脚对。
PxFLTBCON:错误B控制寄存器,包括PWM输出外部错误,错误模式设置,错误B控制的引脚对。
PxOVDCON:override使能控制
PxDC1234:16位额PWM占空比值写入
PWMxKEY:PWM解锁控制寄存器
FPOR
FOSCSEL:两个SFR用来设置PWM的初始化状态和极性,和写保护功能。
占空比
占空比可以在占空比寄存器中设置,设置一个给定的PWM周期内,高电平的时间值。
死区产生:
死区时间生成使能在任何PWM操作为输出模式的时候自动使能,因为功率器件不能够瞬间开关,在一个PWM输出导通信号的时候,必须等待另外的关闭事件已经完成。
提供两种可编程的死区时间设置方法,PWM的输出信号可以优化为两个不同的死区时间,第一个死区时间在低端关闭,高端导通的时候插入,而第二个死区时间在低端导通,高端关闭的时候使用。这个死区时间可以针对不同的PWM输出对来设定,这种模式下,可以针对不同的负载提供兼容。
PxDTCON1可以设置AB两个模块的时间基准,也就是预分频值,以及设置死区单元时间值。
PxDTCON2设置PWM1,2,3由哪个模块来提供。
特殊事件触发器
这个触发器允许ADC的转换和PWM时基进行同步,ADC的采样和转换可以在任何PWM的周期内通过编程进行同步,PxSECMP这个比较值设置ADC转换的一个触发信号。
MCPWM的操作模式
MCPWM可以设置为以下的四种模式,通过PxTCON来配置。最后两位的定义如下:
11 = PWM 时基在连续递增/ 递减计数模式下工作,且在双 PWM 更新时产生中断
10 = PWM 时基在连续递增/ 递减计数模式下工作
01 = PWM 时基在单次模式下工作
00 = PWM 时基在自由运行模式下工作
自由运行模式下,PxTMR向上累加,直到和PxTPER相等后,复位,如果时基使能继续有效,则重新开始向上增长。 单次模式下,PxTMR向上累加,直到和PxTPER相等后,复位,硬件关掉时基使能,定时器被挂起。 连续递增/ 递减计数模式时,PxTMR向上累加,直到和PxTPER相等后,方向位指示向下,然后开始递减到0. 另外一种模式同上,只是在双PWM更新的时候产生一次中断。
PWM时钟控制
下面是方块图:
时基输入预分频器
从上面的款图可以看出,从振荡器输出的时钟源通过四种预分频值进行分频,然后输出给时钟控制逻辑。
时钟控制逻辑和时基
如下情况发生的时候,预分频器清零:写PXTMR,写PXTCON,器件复位。
PXTMR和PXTPER进行比较,如果匹配,则周期匹配信号产生,如果PXTMR为0,则零匹配信号产生。
定时器方向控制
方向控制为只读位,指示PXTMR的增长方向。当时基关闭时,PXTMR不清领。
时基输出后分频
后分频主要用于产生中断,尤其是在不是要求每次PWM都需要跟新数据的时候比较有用,如下情况发生的时候,分频值清零:写TMR,写CON以及器件复位。写CON时PXTMR不清零。
PWM周期
PMM的周期主要由PXTPER来控制,当TMR和PER相等的时候要么产生复位到0,或者反向增长,由操作模式来决定。
由于PER有双缓冲,所以可以在运行的时候设置PER的值,在如下情况下,更新新的值到PER:自由模式和单次模式下,匹配后,产生复位到0,增减模式下,PXTMR到0.
当时基关掉的时候,PER值是保存的寄存器中的。
上面的两种情况的PER更新如下图所示:
根据PER的计算公式:
可以知道,如果FCY=20M,FPWM=20K,则PER第一种情况为1000-1,后面的情况频率小一半,PER为500-1,如此斩波频率设置完成。