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.

[参考译文] TMS570LS3137:CANbus 发送问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1453734/tms570ls3137-canbus-transmit-issue

器件型号:TMS570LS3137

工具与软件:

大家好!  

我想与设备建立 CANBUS 通信。 当我只将 TMS570连接到 CAN 总线分析仪时、我可以看到 TMS 发出的消息、但当我连接我要与之通信的器件时、只有来自该分析仪的消息。 TMS 无法发送消息。 消息 ID 不同、没有冲突。 在调试时、我看到 TX 缓冲区已满。  进入此状态后、即使断开另一个器件的连接、也不会恢复正常。 换句话说、TMS 等待满 TX 缓冲区、甚至无法发送消息。

我不知道如何摆脱这种情况。

谢谢/此致  

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

    尊敬的 Ali:

    [报价 userid="574708" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1453734/tms570ls3137-canbus-transmit-issue "]当我只将 TMS570连接到 CAN 总线分析器时、我看到 TMS 发出的消息、但当我连接我要与之通信的设备时、只有来自它的消息传入分析器。 TMS 无法发送消息。

    我不清楚您的问题。 您能否进一步说明一下?

    根据我的理解、  

    您正在进行两次测试、  

    1.将 TMS570连接到 CAN 分析仪并验证 TMS570与分析仪之间的数据、不会出现任何问题。

    2.是否要将 TMS570与其他 TMS570连接? 您无法看到任何数据、对吧?

    我的理解是否正确?

    我还建议您参考以下链接中的 CAN 视频教程一次:

    (+)[常见问题解答] TMS570LC4357:适用于 Hercules 控制器的示例和演示(例如 TMS570x、RM57x 和 RM46x 等)-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:  

    对您的问题的回答:

    1.是的。

    2.否、另一个器件不是 TMS570、这是我们客户的器件。 我不知道。 将 TMS570连接到其他器件时、TMS570无法传输 CAN 数据包。 Tx 缓冲区保持已满。

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

    尊敬的 Ali:

    客户电路板上是否有 CAN 收发器?

    请参阅以下主题中的评论一次:

    (+) TMS570LC4357:处理器之间的 CAN 通信-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    ——
    谢谢、此致、
    Jagadish。

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

    您好!  

    我不知道客户电路板的规格。 但我认为这是因为当我从 CANBUS Anaylzer 发送 CANBUS 数据包时、它可以接收这些数据包。

    我调试了这种情况、 我可以观察到:

    *我看到一次 canGetLastError 函数返回0x03 : canERROR_acknowledge(3) :当 TX 消息未被确认时

    *当 Tx 函数运行时; canTransmit 返回0与以下块

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    /** - Check for pending message:
    * - pending message, return 0
    * - no pending message, start new transmission
    */
    if ((node->TXRQx[regIndex] & bitIndex) != 0U)
    {
    success = 0U;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    我尝试清理缓冲区、但失败了。

    谢谢、此致

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

    尊敬的 Ali:

    但我认为这是因为当我从 CANbus Anaylzer 发送 CANBUS 数据包时、它可以接收这些数据包。

    如果客户电路板适用于 CAN 分析仪、则该电路板也适用于 TMS570。 则可能只是一些配置差异。

    您能否同时验证哪个 ID 支持29位 ID 或11位 ID?

    例如、如果客户电路板配置为支持扩展 ID (29位) ID、则确保在 TMS570侧启用以下复选框:

    ——

    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    如果客户电路板适用于 CAN 分析仪、则该电路板也适用于 TMS570。 可能只有一些配置差异。

    您是对的、但配置没有差异。 它们全部相同(比特率、CAN 版本等)  

    我观察到、当消息重叠时、TMS570无法返回到正常位置来重新传输。 我没有其他想法。  

    谢谢、此致、  

    Ali

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

    尊敬的 Ali:

    您是否有任何逻辑分析仪可以物理上抽头 CAN 线路并分析数据。

    如果您有此逻辑分析仪、那么您可以将从 CAN 分析仪发送至客户电路板的数据与从 TMS570发送至客户电路板的数据进行比较。

    ——
    谢谢、此致、
    Jagadish。