笔者在项目中同时使用过两种DSP,一种是28069,另一种是28377D,这两个DSP主要是进行CAN通讯功能,完成整个系统的非实时通讯功能。 今天笔者主要想讨论的是28069与28377D的CAN外设,这两个DSP虽然都是Ti的,但CAN外设的架构却不相同,寄存器设置也不相同。 打开28069参考手册,你会发现CAN的架构是下图中的这个样子: 然后我接着看了其他的C28x系列的DSP比如:2812、28335,发现其CAN的架构都与28069相同,如果读者有疑问,可以亲自验证这几种DSP的CAN架构。 但28377D的CAN架构却发生了变化:
其寄存器设置也与28069有了很大的差别。
在配置CAN外设方面,28069的CAN可以通过寄存器进行操作,而28377D的需要用HWREG(x)对硬件进行访问,即直接访问寄存器的绝对地址,这导致编程难度又增加了。 一般对于CAN外设的配置分为以下几个方面: - CAN的初始化
- CAN的IO引脚配置
- CAN的波特率配置
- CAN的故障复位
- CAN的发送函数
- CAN的接收函数
28069的CAN配置基本与2812类似,可以参考《手把手教你学DSP--基于TMS320X281x》这本书上的内容。 28377D与28069的CAN具体代码可以到我的账号上下载。 |