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.

[参考译文] TMS570LC4357:DCAN FIFO:设计例外 DCAN 27

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/747933/tms570lc4357-dcan-fifo-design-exception-dcan-27

器件型号:TMS570LC4357

您好!

请提供支持。 我目前正面临文档"SPNZ232B–2015年8月–2018年6月修订版"中描述的 DCAN FIFO 问题、并标记为 DCAN 27。 正确的 CAN 消息顺序对于我们的应用绝对至关重要。
正如我理解所描述的权变措施:RX FIFO 仍然可以使用、但 IF2应该被 IF3寄存器取代。  为了更清楚地说明权变措施、是否需要使用 DMA 进行 IF3寄存器集访问? 当 IF3由来自 FIFO 的报文对象更新时、是否可以将 DCAN 配置为使用 RX FIFO 并产生中断? 我只是想避免使用 DMA。 请对此进行澄清。

提前感谢您。

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

    我将对此进行研究、并尽快返回给您。

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

    无需使用带有 IF3的 DMA 请求。 一旦报文对象被传送到 IF3寄存器、您也可以选择生成一个到 CPU 的中断、这样 CPU 就可以读取接收到的报文。 使用带有 IF3的 DMA 可以缓冲 CPU 的 FIFO 数据。

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sunil、
    请您更详细地说明您的答案-是否可以在此数据链中使用 DMA (如 Ondrej 提到的"避免使用 DMA ")?
    换言之、是否有足够的("独立")解决方案仅用 IF3寄存器替代 IF2寄存器? 我认为是这样-根据你的句子"没有必要将 DMA 请求与 IF3一起使用"-你是否可以确认这一结论?

    数据缓冲由 RX FIFO 执行。 当然,通过使用 DMA 进行 IF3读取,可以在更高级别上利用额外的缓冲(仅受可用 RAM 空间的限制;-)。

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

    是的、您可以将 IF3寄存器设置为在收到消息时自动更新、然后向 CPU 生成中断以处理收到的消息。

    请注意、IF3只能用于接收帧。

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sunil、
    感谢您的回答。 我用这个配置进行了几次测试:DCAN RX FIFO 被启用、通过 IF3置位读取消息、启用 IF3更新中断。 IF3update 中断设置标志、该标志触发使用 IF3读取过程的进程。 即使使用此配置、仍然会观察到问题 DCAN 27。
    所以... 问题似乎出在 FIFO 本身、而不是访问方法。

    您能否确认我的意见并建议另一个解决方案?