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.

[参考译文] TMS320F28379D:用于接收消息的 CAN FIFO 缓冲器

Guru**** 2587365 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1123525/tms320f28379d-can-fifo-buffer-to-receive-the-message

器件型号:TMS320F28379D

您好!

我有一个关于 CAN FIFO 缓冲器接收消息的一般问题。 如果我将 CAN 报文对象1、2、3和4配置为 FIFO 缓冲区来接收相同的 CAN ID 报文、这是否意味着必须将报文对象4设置为缓冲区的末尾?

根据您的参考手册、消息将首先存储在对象1中、然后存储在对象2和3中。 对象4将是最后一个、这意味着它是缓冲区的末尾。 如果我将对象1定义为缓冲区的末尾、会发生什么情况?

谢谢、

Kaiyu

   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="500970" url="~/support/microset/C2000-microset-group/C2000/f/C2000-microset-forum/1123525/tms320f28379d-ca-fifo-buffer-to receive-the-message"]如果将对象1定义为缓冲区末尾,会发生什么情况?

    我自己没有尝试过此操作、但我怀疑数据不会存储在后续消息对象(2、3和4)中。 来自 TRM:"由于消息的隐式优先级
    编号最小的报文对象将是 FIFO 缓冲区的第一个报文对象。  FIFO 缓冲区中除最后一个报文对象外的所有报文对象的 EOB 位都必须编程为0。  FIFO 缓冲区中最后一个报文对象的 EOB 位设置为1、将其配置为块的末尾。"

    另请注意  www.ti.com/lit/SPRZ412中描述的勘误表"在 DCAN FIFO 模式期间、接收到的消息可能会在 FIFO 缓冲区中按顺序放置"。  

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

    谢谢、Hareesh! 根据您的回答、我可以将任何消息对象定义为缓冲区末尾对象。 如果缓冲区已满、EOB 对象将会超屏。 我的理解是否正确?  

    谢谢、

    Kaiyu

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

    是的。