我在第一篇文章中已经跟大家介绍过379解码多摩川编码器的一些入手小知识,链接如下TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)
请大家一定要看入手小知识,再来看例程分析。
今天跟大家分析一下TI的官方例程。
首先,我默认你已经安装了CCS,目前我装的是CCS9.2,CCS10已经出了,基本上从9.2开始是嵌入了CLB TOOL的,可用于开发CLB,我还没深入研究过,以下是CCS下载链接:
http://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html
以下两篇是官方CLB中文参考文档的链接:
TI官方的CLB设计说明文档链接http://www.ti.com.cn/cn/lit/an/zhca963/zhca963.pdf
TI官方CLB用户指南中文版链接http://www.ti.com.cn/cn/lit/ug/zhcu712/zhcu712.pdf
其次,是官方例程的获取,大家可以通过安装TI官方针对C2000处理器推出的ControlSuit获取,我装的版本是3.4,注册一个TI账号就可以下载了。
下载安装C2000 SDK或者MotorControl SDK也可以获取到这个例程,以下是下载链接:
TI 官方C2000 WARE下载链接http://www.ti.com.cn/tool/cn/C2000WARE?keyMatch=C2000%20WARE&tisearch=Search-CN-everything
TI官方MotorControl SDK下载链接http://www.ti.com.cn/tool/cn/C2000WARE-MOTORCONTROL-SDK
接下来,进入正题,LIB版本的例程,部分函数是封库的,在工程中需要添加相应的LIB文件,才可以编译通过,由于是封库的,后续开发可能会有所限制,比如解码运行时间过长,解码+发送大概要20us吧,是的,20us,难以承受。
用CCS打开LIB例程:
工程存放路径如下:
C:tic2000C2000Ware_MotorControl_SDK_3_00_00_00solutionsboostxl_posmgrf2837xdccstformat
双击打开pm_tformat_main.c
mian主函数前面是379的时钟、外设、IO、中断的配置,这些不讲,大家自己去熟悉。
接着是SPI的中断函数配置及使能,这里用到的是SPIB及SPIBRXINT,在第一篇文章中有提到。
接着,我们看一张流程图,这是我自己画的,为了方便大家理解上手这个例程。
通过这个流程图,基本上可以将例程的理解为:
- 设置CF,发送CF,死循环等待接收完成标志位;
- 延时3us后(CLB控制CLK),SPI外设接收;
- SPIFIFO接收满,触发RXINT中断,中断函数存BUF,置标志位;
- 解码、校验、赋值(位置信息要做蝶式交换,协议是这样规定的,蝶式交换即字节的bit对称交换)
- 延迟(给编码器留空闲时间),反复循环
接着,是SPI中断处理程序截图:
最后是,while主循环的发收解码部分,如图:
好了,LIB版的例程分析就讲这么多,其实看完我画的流程图,应该也就懂了,往深一点的,要大家自己去研究。
这个系列我会在头条号同步更新,有空我会继续更新下一篇,讲LIB例程的应用开发,谢谢。