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:TX 缓冲区设置专用+ FIFO/队列

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1208274/tcan4550-tx-buffer-setup-dedicated-fifo-queue

器件型号:TCAN4550

大家好!

我目前正在配置 TCAN4550 Tx 缓冲器、但我对设置有一些问题。

FIFO/队列配置是否也会影响专用缓冲区?
如果我使用 FIFO 配置、是否足以将新消息写入下一个可用缓冲区(TXFQS.TFQPI)并设置 TXBAR 中的相应位? 或者、我是否应该使用获取索引(TXFQS.TFGI)来触发系列中的下一条消息?

此致
米歇尔

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

    Michael、您好!

    可以仅使用专用缓冲区、FIFO 或队列。  但也可以混合使用专用缓冲区和 FIFO、或混合使用专用缓冲区和队列。  所以在这方面、我认为 FIFO/队列配置可以影响专用缓冲区。

    TCAN4550中使用的"MCAN" CAN FD 控制器由 Bosch 开发、我建议您参阅 MCAN 用户手册的第3.5节 、以了解详细的配置概述。  第3.5.3节专门讨论了 TX FIFO。  如果你对使用专用缓冲区和 FIFO 或者队列的混合模式感兴趣、这两个 API 和队列也将在第3.5节中进行讨论。

    MCAN 控制器在内部使用 FIFO 获取索引来确定哪个 TX 缓冲元素包含要发送的下一个元素。  它还用于通过检查 Put Index 值是否回绕到等于 Get Index 值、来确定 FIFO 是否已满。  如果出现这种情况、将设置中断。  除了可能验证您不会覆盖仍在等待着用您想要传输的新消息进行传输的消息外、您应该不需要以任何方式使用获取索引。  但 TX FIFO 空闲级别通常用于此目的。

    添加消息时、您应该将消息添加到 Put Index 指示的元素中、然后设置相应的 TXBAR 位。  如果设置了多个消息、则会将消息从 Put Index 开始放入 FIFO 中、然后为刚刚填充的所有缓冲区元素设置 TXBAR 位。

    此致、

    Jonathan