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:CANFD 发送器通常一次只能发送28帧

Guru**** 2763585 points

Other Parts Discussed in Thread: TCAN4550-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1376415/tcan4550-q1-the-canfd-transmitter-can-only-normally-send-28-frames-at-a-time

器件型号:TCAN4550-Q1

工具与软件:

我使用了 tcan4550-Q1并 根据正式演示在队列模式下设置32个 TX 缓冲区。

在向 相应的 MRAM 写入具有相同 ID 的32个帧消息后、将0xFFFFFFFF 写入 txbar (0x10D0)以请求发送消息、但我仅接收到28个帧、前4个帧缺失。

但是、如果我写入28个帧并请求发送这28个帧、然后写入4个帧并请求发送、我将得到32个帧。

请帮我分析原因。

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

    设置 TXESC。 TBDS= 0b111、64字节/元素。

    将32个帧* 64字节写入 TX 缓冲器。

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

    抱歉、您好、

    您是否也偶然启用了任何专用的 TX 缓冲区?  总共有32个 TX 缓冲区、有可能有一个专用 TX 缓冲区和一个 TX 队列的组合、我想知道配置中是否存在冲突。  

    您能告诉我 TX 缓冲区配置(TXBC)寄存器地址0x10C0的值是多少吗?

    您是否能够监测以下 TX 相关寄存器:

    • Tx FIFO/队列状态(TXFQS)寄存器地址0x10C4
    • Tx 缓冲区请求挂起(TXBRP)寄存器地址0x10CC
    • 发生 TX 缓冲区传输(TXBTO)寄存器地址0x10D8

    此致、

    Jonathan

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

    TXBC.TFQM=0、TXBC.TFQS=0、TXBC.NDTB=32、TXBC.TBSA=0x8000+1*4+32*(64+8)

    我发现、当我完成对帧0到27的64字节数据和8字节标头的写入后、

    和8字节的标头和24字节的数据(总共32字节)、用于帧28、

    上述总计28*(8+64)+32=32*64字节。

    帧28的其余40个字节 涵盖了帧0的 MRAM、

    第29帧的标头和数据涵盖了第0帧和第1帧的 MRAM、

    第 30帧的标头和数据覆盖了第 1帧和第2帧的 MRAM、

    第 31帧的标头和数据覆盖了第 2帧和 第3帧的 MRAM。

    因此、错误 SEMM 的原因是前4个帧的 MRAM 区域被覆盖。

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

    我还想知道 RX FIFO 0是否可以同时存储32*(8+64)字节的消息。  在 我的 测试中、最后4个帧(8+64字节)将覆盖前4个帧、这意味着 RX FIFO 0的最大存储空间为32*64字节。  RX FIFO 0和 RX FIFO 1共享32*64字节

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

    对于所有不同的存储器元件、只有2kB 的 MRAM 占用地址0x8000至0x87FF。  无法分配 MCAN 支持的最大元素数、因此您需要确定应用需要什么、并确保其适合 MRAM 而不会出现地址重叠。  

    如果您的配置超过2kB、存储器会循环回到地址空间的开头。  例如、如果尝试从地址0x8800读取或写入、这与对0x8000的读取或写入相同。

    最大数据大小为64字节的32个 TX 缓冲器元素总共为2304个字节、大于2000字节的 MRAM 块大小。  您需要减小 TX 缓冲器元素的数量或缓冲器元素的数据大小、以保持低于2kB 并防止覆盖某些 TX 缓冲器元素。

    此致、

    Jonathan

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

    是的、我昨天才意识到。 谢谢

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

    不用客气。  如果您有任何其他问题、请告诉我们。

    此致、

    Jonathan