FTM模块的相关库为HW_FTM.c和HW_FTM.h。它们是FTM模块的固件驱动文件,定义了该模块的初始化函数、反初始化函数、PWM、输入捕获、正交解码等模式初始化函数。
常使用FTM模块的PWM功能驱动电机,并使用FTM模块的正交解码功能解码编码器信息,计算车模速度。
配置PWM功能时的初始化代码如下:
可以看到,在定义结构体后首先需要初始化的是FTM号。这里选择FTM0,工作模式选择PWM模式,PWM频率选择15 kHz,死区时间为2 ms。死区插入通道和分频系数需要初始化,赋值完成后调用初始化函数完成初始化。在开始输出PWM波之前需要使能通道,这里通过LPLD_FTM_PWM_Enable()函数完成。当需要改变PWM输出占空比的时候,通常通过LPLD库函数LPLD_FTM_PWM_ChangeDuty(FTM_Type*ftmx,FtmChnEnum_Type chn,uint32 duty)来实现,具体实现方法如下:
通过改变连接驱动的四路PWM输出占空比来实现电机的控制,其中PWM数组中的值由前面的控制算法赋值。(www.xing528.com)
要实现速度闭环控制就需要编码器提供信息,编码器的信息解码则需要FTM模块的正交解码功能来实现。
配置正交解码功能时的初始化代码如下:
从代码中可以看出在初始化FTM模块前先初始化需要用到的GPIO引脚,主要是将需要用到的GPIO配置为输入模式。FTM模块初始化除了配置FTM号和FTM工作模式外还需要配置解码模式。FTM的正交解码有两种解码模式可选择,分别对应两种工作原理的编码器,一种是AB相解码模式,LPLD库中宏定义为QD_MODE_PHAB;另一种是计数方向解码模式,LPLD库中宏定义为QD_MODE_CNTDIR。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。