This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TCAN4550-Q1:传输空帧?

Guru**** 1955920 points
Other Parts Discussed in Thread: TCAN4550-Q1, TCAN4550
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1307823/tcan4550-q1-transmits-empty-frames

器件型号:TCAN4550-Q1

我正在编写自定义 TCAN4550驱动程序、但遇到了一点问题。

到目前为止、仅使用常规 CAN、无 CAN-FD 或扩展标识符。

接收数据似乎工作正常。 ID、DLC 和有效载荷都是我所期望的。

然而、在传输时、在另一端接收的帧似乎全为零?
ID、DLC 和有效载荷都是0。

我可以看到数据包发出(因为另一端实际上正在接收某些数据)、以及看到 TXBTO (0x10D8)寄存器中设置的位。

我怀疑 MRAM 的组织方式有问题 、我要求传输空缓冲区、可能吗?

设置期间的相关寄存器:
MRAM 0x8000..0x8800清零
TXBC = 0x20000000
TXESC = 0x0
TXEFC =  0x600 +(0 << 16)+(0 << 24)

器件处于"正常"模式、Rx 工作。

我用于传输消息的序列:
uint32_t 缓冲器[4];
CANID = 0x200;
RTR = 0;
DLC = 4;
Buffer[0]=(canId << 18)+(Rtr << 29);
Buffer[1]= DLC << 16;
Buffer[2]= 0xAA55BB66;
Buffer[3]= 0xF00DCAFE;// Filler,如用户指南第4.2节所示
uint32_t requestMask |=(1<<0);//暂时硬编码至缓冲器#0

然后、我将所有16个字节写入到 MRAM 的位置0x8000。
之后、我将"requestMask"写入 TXBAR。

一旦完成、消息将会熄灭、但其中全为零。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    啊、没关系。  数据包实际上确实包含数据。 这是接收侧的一个错误。

    这就是我为两种不同的架构同时开发驱动程序的目的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    James:

    感谢您的跟进! 这听起来像是一个很好的新年礼物,找到了这个。

    祝您于2024年快乐!

    丹尼

x 出现错误。请重试或与管理员联系。