NXP

Kinetis K系列产生两路正交PWM波

2019-07-12 12:34发布

在电机控制中,有可能会需要两路正交的PWM,即相位相差90的PWM波形。那么该如何该功能呢。
可以使用FTM中combine 模式
这里写图片描述
FTM_CH0和FTM_CH1是一组,FTM_CH2和FTM_CH3是一组,FTM_CH4和FTM_CH5是一组,FTM_CH6和FTM_CH7是一组。那么从这四组中各选择一路,就可以产生相位不同的PWM波形。
假设选择FTM_CH0和FTM_CH2,设置FTM_MOD=10000,设置C0V=2500,C1V=7500,C2V=0,C3V=10000.那么这样就可以产生两路相位相差九十度的PWM波形了。
波形如下:
这里写图片描述 有一个地方需要说明一下:虽然配置了四个通道的CnV值,不要误以为产生两路正交PWM波,就得占用4个引脚。其实只占用了两个引脚,FTM_CH1和FTM_CH3对应的引脚可以用作其他任何功能,没有影响,在程序中对这两路不需要把它复用成FTM功能。 硬件平台使用的是超核K60涂鸦版,代码使用的也是超核软件代码。
在原来的基础上,对其进行了修改。改动了ftm.c,ftm.h和main.c 三个文件。
文件下载地址:http://download.csdn.net/detail/wangwenxue1989/9051071 ///////////////////////////////////////////////////////////////////////
客户在实际使用中需要在不停止PWM输出的前提下调节PWM波的周期,占空比不变还是50%。这个功能改如何实现呢?
改变周期那么需要修改FTMx_MOD 寄存器的值,占空比和FTMx_CnV,这就涉及到这两个寄存器的值何时更新的问题,
这里写图片描述 这里写图片描述
这里写图片描述
这里写图片描述 可以参考AN4560,链接地址为:http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4560.pdf?fromsite=zh-Hans
涉及的内容比较多。主要是按着上面的流程图来看比较方便。 产生的波形如下:
这里写图片描述 一路在转变时有个很短的跳变沿,目前还不知道是什么问题。