CAN通讯中不断配置邮箱,发送数据有没有问题?
我用的是28系列芯片,CAN通讯,发送数据很多,COB-ID也不一样,只用一个发送邮箱完成不同数据的发送,每次发送数据前,先要重新配置此邮箱的COB-ID、数据长度等,不知道这样做有没有问题?
现在我遇到的问题是,通讯有时会错误,察看CANES寄存器,一般都是CANES.4=1导致的。
请教版主CANES.4=1是什么原因引起的,因为CANES.4=1后,CAN通讯模块就象死了一样,接收发送中断再也进不去了---------非常感谢!!
上述现象比较怪:1、上位机与一个节点单独通讯,试了很多次都没有出现这个问题;
2、当上位机和两个节点通讯,一般能通讯上一段时间,然后节点就出这个问题了!
在此过程中的通讯为,上位机和两个节点不断交换数据。
不大象是初始化未完成。
谢谢回复哈
问问CAN方面的知识青年:当通讯速率为1M的情况下,一般可以连接多少个节点不出错?500K呢?
我现在测试了一下,上面问题是在通讯速率为1M情况下出现的,在500K通讯速率下没有试出来!
经过我这些天的实践,CANES.CCE位并不完全是由于CANMC.CCR的变化引起的,还有其他原因。我想问问:怎样把错误计数器CANTEC和CANREC的数值清零??直接清除好像不行,我又不想使总线关闭后它自动清零-------非常感谢!
[ 本贴由 estan 于 2007-7-17 09:22 AM 最后编辑 ]
小弟我用的是2812,现在做测试程序,想实现把开发板上的数据发送到pc上,接法是:dsp--can转换器----pc;在pc上通过串口调试器观看收到的数据。我现在通过仿真器可以观察到程序可以发数据,可是在PC端却无法接受数据,ID号设为一致,波特率为250k。用示波器观察can引脚始终为高,波特率设置如下:
EALLOW;
/*(BRPREG+1)=10 feeds a 15MHz CAN clock*/
ECanaShadow.CANBTC.bit.BRP = 39;
/*150/10=15*/
ECanaShadow.CANBTC.bit.TSEG2 = 5;
ECanaShadow.CANBTC.bit.TSEG1 = 7;
ECanaRegs.CANBTC.all = ECanaShadow.CANBTC.all;
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
ECanaShadow.CANMC.bit.CCR = 0;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
EDIS;
还想请问用示波器观察正常的can收发是什么样的波形啊