TIwilliam hill官网
直播中

陈可

7年用户 282经验值
私信 关注

请问TMS320F2812与TMS320F28335如何实现Brush-Less DC Motor控制?

本帖最后由 一只耳朵怪 于 2018-6-14 10:39 编辑

利用机组末端的光电编码器获取转速信息
利用Brush-Less DC Motor的霍尔传感器信号获取换相码

对于换相码的获取,在TMS320F2812中,首先将对应的GPIO设置为捕获功能,要同时捕获霍尔传感器信号的上升沿和下降沿。当捕获到边沿信号后,在捕获中断服务子程序中将对应的管脚设置为GPIO功能,读取IO状态,获取换相码。退出中断服务程序之前恢复GPIO的捕获功能。

在利用TMS320F28335实现Brush-Less DC Motor控制时,对于霍尔传感器信号的捕获,该芯片的eCAP单元与TMS320F2812的捕获单元存在一定区别。TMS320F28335的捕获单元似乎更偏向于对捕获管脚输入信号变化时间的计算,我在手册中没有想到如何用TMS320F28335的捕获单元实现类似TMS320F2812捕获单元的功能。因此,我才用了GPIO外部中断方式获取换相字:
GPIO24 as source of XINT1 (source: GPIO0 ~ GPIO31) to capture Hall U
GPIO25 as source of XINT2 (source: GPIO0 ~ GPIO31) to capture Hall V
GPIO48 as source of XINT3 (source: GPIO32 ~ GPIO63) to capture Hall W
需要特别注意的是TMS320F28335的外部中断有7个:XINT1~XINT7,其中XINT1和XINT2只可以GPIO0 ~ GPIO31作为中断源,XINT3~XINT7只可以GPIO32 ~ GPIO63作为中断源。

还有一点需要注意,由于同一桥臂的一个开关管处于工作状态时,令一个开关管应处于关闭的状态,关闭开关管利用TMS320F28335 ePWM单元的AQCSFRC寄存器实现,该寄存器包含一个shadow寄存器,其装载条件由AQSFRC. RLDCSF(AQCSFRC Active Register Reload From Shadow Options)决定:
RLDCSF = 00 Load on event counter equals zero

RLDCSF = 01 Load on event counter equals period

RLDCSF = 10 Load on event counter equals zero or counter equals period

RLDCSF = 11 Load immediately
在代码中,应将RLDCSF设置为11,以避免出现同一桥臂两个开关管同时导通的现象。
以上观点欢迎大家指正。

利用TMS320F28335实现Brush-Less DC Motor控制的main函数源码如下:





以上代码截屏缺少的行为空行。

回帖(1)

胡红枚

2018-6-14 02:29:17
就当做学习啦     感谢分享 
2812新产品不建议使用了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分