原创 步进电机驱动-dsPIC单片机MCPWM功能

2014-2-26 14:37 2393 14 16 分类: 工业电子 文集: 步进电机驱动笔记

前言

之前接触过不少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时钟控制
下面是方块图:
 
20140220070853931.jpg
时基输入预分频器
从上面的款图可以看出,从振荡器输出的时钟源通过四种预分频值进行分频,然后输出给时钟控制逻辑。
 
时钟控制逻辑和时基
如下情况发生的时候,预分频器清零:写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更新如下图所示:
 
20140220071006820.jpg20140220071034653.jpg
根据PER的计算公式:
20140220071051356.jpg
 
 
可以知道,如果FCY=20M,FPWM=20K,则PER第一种情况为1000-1,后面的情况频率小一半,PER为500-1,如此斩波频率设置完成。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

文章评论2条评论)

登录后参与讨论

用户1714690 2014-2-26 09:31

这个没有哦,最近几年都在做电机控制了,不好意思。

用户1735135 2014-2-25 13:28

博主:你是搞过51的,那你是否搞过51单片机与温湿度多点测控?如果搞过,你能否赐教一二?
相关推荐阅读
用户1714690 2015-08-13 11:42
史上最高性价比PCI运动控制卡:基于MCX314AL,提供开发包!
  小日本的3轴插补运动控制卡芯片不是一般的贵啊,看看下面的某宝提供的报价:常用的基于PCI的运动控制卡已经在国内大规模应用,主要有如下问题: 所以基于这种芯片的...
用户1714690 2015-08-03 15:06
【博客大赛】TMC262步进伺服开发笔记1-选定STM32F103C8T6做为控制器
  现在手里已经有了两个方案: 一个STC单片机的方案,这个是网上一个工程师设计的,方案的程序很简单,简单的进行参数配置,然后驱动电机转动就OK,完全没有发挥出TMC262的优势。 一...
用户1714690 2015-08-03 15:06
【博客大赛】TMC262步进伺服开发笔记2-影响步进电机行为的几个参数
电机设置,首先得了解哪些参数会对电机的行为有直接或者间接的影响。 参数 描述 设置 电机...
用户1714690 2014-12-26 17:56
自己动手设计一款MP3音乐播放器-创建自己的公众号
    罗永浩今年的表现确实让各界大跌眼镜,这几个月销声匿迹也是情理之中的事情,我们确实该吐槽他的锤子手机,可是他的死磕精神呢? ...
用户1714690 2014-12-13 01:19
自己动手设计一款MP3音乐播放器:SDIO通信之物理层描述1
物理层一共有以下的内容需要了解 存储卡系统的内容,包括总线,卡容量等,一些命令格式,响应格式等内容,这个是必须完全理解。 SD卡的功能描述,包括复位,初始化和识别流程,读写...
用户1714690 2014-12-12 11:51
自己动手设计一款MP3音乐播放器
 最近打算利用晚上的时间来死磕一款MP3,之前一直做的都是工控之类的项目,并且偏向于硬件,最近打算做一款有意思一点的产品,利用晚上的时间来做,项目可能会拖的比较久。   当然也不能自己埋头...
我要评论
2
14
关闭 站长推荐上一条 /2 下一条