网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 帮助中心 >> C2000 >> 文章正文
  CAN module of DSP2812问题         ★★★ 【字体:
CAN module of DSP2812问题
作者:61IC客服    文章来源:本站原创    点击数:    更新时间:2006-5-7    

 

问题如下:

最近开始在使用Dsp 2812CAN module
目前CAN Transceiver电路已经完成 用的是TiSN65hvd230
最近开始在测基本传送程序
用的是 TI所提供的范例程序 如下连结(改里面的TX_LOOP)
http://focus.ti.com/docs/apps/catalog/resources/appnoteabstract.jhtml?abstractName=spra876a
但发现 里面的程序都是#include "DSP28_Device.h"
因为我实验室其它同学宣告都是用#include "DSP281x_Device.h"
所以要配合他们
之后又下载Download C281x C/C++ Header Files and Peripheral Examples 如下连结
http://focus.ti.com/docs/toolsw/folders/print/sprc097.html

里面的DSP281x_有一个ecan_back2back范例,我就以此Project来改程序,依照之前在http://focus.ti.com/docs/apps/catalog/resources/appnoteabstract.jhtml?abstractName=spra876a
下载的程序在ecan_back2back Project底下改 程序是TXLOOP_11.c
文件如下
ecan_back2back.rar

小弟把程序原先在#include "DSP28_Device.h"下的所有东西都改成
#include "DSP281x_Device.h"可以执行
真正执行后 小弟利用单步追踪 发现缓存器都不能存取(写入值后都没改变)
例如:
/* Configure bit timing parameters */

ECanaRegs.CANMC.bit.CCR = 1 ; // Set CCR = 1

while(ECanaRegs.CANES.bit.CCE != 1 ) {} // Wait for CCE bit to be set..
ECanaRegs.CANBTC.bit.BRPREG = 19;
ECanaRegs.CANBTC.bit.TSEG2REG = 2;
ECanaRegs.CANBTC.bit.TSEG1REG = 10;

ECanaRegs.CANMC.bit.CCR = 0 ; // Set CCR = 0
while(ECanaRegs.CANES.bit.CCE != 0 ) {} // Wait for CCE bit to be cleared..

小弟有用单步追踪 且用GELWatch ECAN Registers 缓存器的变化
CANBTC
缓存器里的值 完全没变 值一直保持在0且程序执行动作就卡在 "while(ECanaRegs.CANES.bit.CCE != 0 ) {} // 这行

Data Sheet
有写 BTC缓存器的值为0DSP不能跳出ECAN的初始化模式.
前面的一些缓存器 像是CANTA CANRMP 等等 值也都写不进去

这是把原先在#include "DSP28_Device.h"底下硬改成
#include "DSP281x_Device.h"
时没改好吗?
CompileBuild都没错且可执行.

解答如下:

首先,如果你认为是DSP28_Device.h 换成DSP281x_Device.h的问题,那可以直接去比较一下两个档案里面的差异,不过我觉得28系列的整个宣告结构好像都差不多。除了检查两者针对Register控制的结构有无不同之外,重要的是要检查一下Register的对应一不一样,要确定说ECanaRegs是宣告在跟你硬件IO一样的地址

另外,如果你从范例程序直接改有问题的话,那何不试试直接跑范例程序呢,至少范例程序基本的功能都有说明了,如果你直接跑范例程序也是有问题的话,那就有可能是其它地方的问题了。

问题如下:

刚刚听从您的建议,先直接跑原始的范例程序
范例来源 如下:
http://focus.ti.com/dsp/docs/dspsupporttechdocsc.tsp?sectionId=3&tabId=409&abstractName=spra876a

Programming Examples for the TMS320F281x eCAN (Rev. A)
标题是写TMS320F281x eCAN 但里面程序却都是"DSP28_Device.h"
而不是"DSP281x_Device.h"

解压缩产生档案在开启TXLOOP.pjt这个档
CompileBuild后居然显示
Fatal error: could not open source file "DSP28_GlobalVariableDefs.c"
1 fatal error detected in the compilation of "DSP28_GlobalVariableDefs.c".
Compilation terminated.
"TXLOOP.c", line 14: fatal error: could not open source file "DSP28_Device.h"
1 fatal error detected in the compilation of "TXLOOP.c".
Compilation terminated.
Build Complete,
3 Errors, 0 Warnings, 0 Remarks.

TI所提供的范例程序,居然少三个文件

解答如下:

找了 两个多小时 终于找到了
这网页有相关文件
http://focus.ti.com/dsp/docs/dspsupporttechdocsc.tsp?sectionId=3&tabId=409&familyId=510&abstractName=slaa167

留给之后玩2812 CAN Module的人

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    我做的板总是提示Can't …
    关于CAN总线中节点地址的设置
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号