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.

[参考译文] TMS320F280039C-Q1:MCAN - TXBTO 和传输通知

Guru**** 2524460 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1219036/tms320f280039c-q1-mcan---txbto-and-transmission-notification

器件型号:TMS320F280039C-Q1
主题中讨论的其他器件:C2000WARE

尊敬的支持部门:

如果通过专用 TX 缓冲器处理传输、我需要处理以下情况:

进入 Tx 中断 ISR、我想知道哪个 Tx 缓冲器触发了中断(即刚刚发送的帧)。

我的第一个想法是使用 TXBTO、在离开 Tx int ISR 之前将其清除、并在进入 Tx int ISR 时读取它、但用户 SW 无法清除此寄存器。

如果我在 ISR 下读取寄存器 TXBTO、我会发现所有位都为1、因为这些位只能通过新的 TX 请求(通过 TXBAR)复位。 您确认吗?

我发现的唯一方法是在 SW 中创建一个 maks 位、每个位实时表示 SW 发送帧(TXBAR 的副本)并对其进行比较的卷

TXBTO 内部的 Tx INT ISR。

对于可用于管理此用例的其他 MCAN 寄存器、您有什么建议吗?

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

    Davide、  

    如果我在 ISR 下读取寄存器 TXBTO、则我发现所有位都为1、因为这些位只能通过新的 TX 请求(通过 TXBAR)复位。 是否确认?

    没错。

    Unknown 说:
    您对可用于管理此用例的其他 MCAN 寄存器有什么建议吗?

    为了跟踪传输、可以采用 TX 事件 FIFO 。  

    步骤1:在要跟踪的传输帧内、设置 EFC (事件 FIFO 控制)位。 这意味着当帧成功发送时、帧的相关信息以 TX 事件 FIFO 元素的形式存储在消息 RAM 中。

    步骤2:为了跟踪哪个传输帧与哪个 TX 事件 FIFO 元素相对应、可以使用 MM (消息标记)位 S 之间的时序。 相应的 TX 事件 FIFO 元素将具有相同的消息标记。

    如需更多信息、大家可以查看 TRM 中的相关章节。

    这里有一个有关工作中 TX 事件 FIFO 元素配置的示例、将在即将推出的 C2000ware 版本中提供该示例。

    如有任何其他问题、请告知我们。

    谢谢。