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.

[参考译文] TMS320F2.8379万D:CAN消息对象从未发送

Guru**** 2524460 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1092105/tms320f28379d-can-message-object-never-sent

部件号:TMS320F2.8379万D

您好,我们看到CAN消息从未发送的问题。 这种情况在1000中仅发生1次。 我可以使用从未接收到的TX中断超时来捕获此情况的结束。 即使超时非常大,最多1秒钟,它也会执行相同的操作。 在正常情况下,CAN_O_NDAT_21在中断前为0x8万,在中断后为0。 在不成功的情况下,超时后将保持0x8万。

只有在存在其他CAN流量时才会发生这种情况。 这几乎就像处理器失去仲裁,从未重试过,但CAN_CTL.DAR为0。 这是使用F2.8379万D。

是否有任何硬件路径可供消息对象停用(CAN_O_IF1MCTL.TxRqst为0)而不能成功传输消息? 在失败的案例中,我还能找到什么来看看发生了什么。

谢谢!

保罗

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    109.2105万send"]是否2.8379万是否有任何硬件路径可让消息对象停用(CAN_O_IF1MCTL.TxRqst不能成功传输消息)?[/]

    否。如果DAR为0,消息最终将被传输。 TxRqst仅在传输完成时清除。 消息是否可能已发出,但中断未被声明? 您如何监控总线上的信息? 您是否使用CAN总线分析仪?

    请查看 www.ti.com/lit/SPRACE5中的调试提示。  

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

    我正在使用带有PCAN适配器的Linux socketcan通过Wireshark观看此视频。 目前我已将其设置为500ms超时,您可以看到没有任何结果:

    所以我不认为这只是中断清除的问题(昨天我花了很多时间)。

    (BTW,以上编辑过,CAN_O_IF1MCTL报告错误)

    这是否意味着CAN_O_NDAT_21在0.5 秒后仍设置了该位? 是否有办法查看它重试了多少次?

    谢谢!

    保罗

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

    嗯,也许这只是PCAN适配器。 我看到如下内核消息:

    [CAN] PEAK _USB 3-CAN.4 2.4 :1.0 12.5054万.082248</xmt-block>8.2248万 :话术已中止(-71)
    [CAN] PEAK _USB 3-CAN.4 2.4 :1.0 12.5077万.886850</xmt-block>88.685万 :话术已中止(-32)

    即使我将超时设置为2秒,也不起作用。

    -Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    2.8379万/4044287#4044287"]是否404.4287万是否有404.4287万有办法查看它重试了多少次?

    如果缺少特定的ARBID (“消息ID”),您可以设置范围以在该ID上触发。 一旦消息被标记为要传输,它最终将被传输,当然前提是具有较高优先级消息的节点不会完全控制总线。