TI中文支持网
TI专业的中文技术问题搜集分享网站

28377D的CAN通信回环模式下远程帧的收发

根据Loopback例程改的一个测试远程帧的发送与自动应答的程序,但是并不能收到数据。

如图 已经设置了自动应答远程帧的邮箱和发送远程帧的邮箱,硬件仿真时,发送远程帧的邮箱并不能受到数据

已经开启了外部回环的测试模式了,数据帧的收发没有问题 但是一到远程帧就出问题。头疼

user5349489:

已解决问题,是这样的。发送远程帧的邮箱收到回应的数据帧后 IF寄存器的NewDat并没有置位!然而直接收到数据帧的邮箱的NewDat位是会置位的!这导致如果直接使用demo中的CANMessageGet函数的话,是不能将邮箱中的数据读出的!

下面这个是直接收到数据帧的邮箱

下面这个是发送远程帧的邮箱 收到回应后的NewDat位并没有置位,但是邮箱中的DATA7~0明明已经更改

将CANMessageGet函数中只有NewDat位置位这逻辑去掉就行 不论有没有NewDat置位都将数据读出

Green Deng:

回复 user5349489:

非常感谢你的反馈,应该对同样用例程测试远程帧的工程师帮助很大

user5349489:

回复 user5349489:

请教一下各位这是为什么呢?刚刚又跑了一遍仿真 发现邮箱4 也就是我设置为发送远程帧的邮箱 就算接收到了回应的数据帧 NewDat位也一直没有置位过 DATA和DATB明明都已经收到了值,但是NewDat位就是不置位。

Green Deng:

回复 user5349489:

你好,芯片TRM中有描述:
The NewDat bit is set to indicate that new data (not yet seen by the CPU) has been received. The CPU
should reset the NewDat bit when it reads the message object.

user1787896:

回复 user5349489:

你好,请问有没有遇到,数据帧接收的时候,只能接收固定ID的数据,

其他任意ID的数据,Newdata不置位的情况

user5349489:

回复 user1787896:

如果接受数据帧的邮箱不使用掩码 那么确实只能接受一模一样标识符的数据帧呀?

赞(0)
未经允许不得转载:TI中文支持网 » 28377D的CAN通信回环模式下远程帧的收发
分享到: 更多 (0)