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.

[参考译文] TMS320F280049C:不需要的最小节点数

Guru**** 2543380 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1568398/tms320f280049c-minimum-number-of-nodes-not-required

器件型号:TMS320F280049C


工具/软件:

您好 Champ、

我要找我的客户。

如果有两个节点连接到 CAN 总线、则测试过程不会出现问题。  

但是、如果总线上只有 MCU(没有其他设备)和 MCU 进行传输、它们就会遇到 ESTOP0 ()。

(1)。 是否 违反了基于此应用手册 (spra876b) 的最少节点数要求。  以下说明告诉 发送节点始终重新传输帧、节点不会关闭总线。

我们看到 ESTOP0 () 是因为下面的描述在这里吗? 或者导致 ESTOP0() 是由于其他根本原因造成的?

我们希望在应用程序中确认是否满足以下条件。 代码时、程序会卡住、但它是否会 在调试模式下执行 ESTOP0()?

 

(2)。 如果它卡在这样的场景中、因为我的客户的一个测试项目是一个节点检测、那么用户处理它的标准过程是什么? 现在是进行总线关闭恢复的时刻吗? 如果没有,该怎么办?  

谢谢。此致、

Johnny

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“488507" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1568398/tms320f280049c-minimum-number-of-nodes-not-required ](1)。 是否 违反了基于此应用手册 (spra876b) 的最少节点数要求。  [/报价]

    如果在系统启动期间只有 1 个节点处于联机状态、并且该节点发送了一些消息、则将不会确认、检测到错误并重复该消息。 由于这个原因、它可能成为“错误被动“、但不会成为“总线关闭“。  ESTOP0 会停止仿真、在调试工程时可以为您提供帮助。 ESTOP0 在您的代码中位于何处? 是否在 CAN 错误 (ACK) ISR 中?

    (2)。 如果它卡在这样的场景中、因为我的客户的一个测试项目是一个节点检测、那么用户处理它的标准过程是什么? 现在是进行总线关闭恢复的时刻吗? 如果没有,该怎么办? 是否有示例代码供参考?  [/报价]

    如果只有节点在总线上并传输消息、它将变为“错误被动“、而不是“总线关闭“。

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

    尊敬的 QJ:

    感谢您的提示输入。

    当 它成为“错误被动“时、它执行到 CAN ISR。  

    在 CAN ISR 中、用户调用 can_initModule ()。 但是、当 CAN 总线上有两个代码时、下次通信会出现异常 MCU 需要复位并上电、然后变为正常状态。

    (1)。 在 “错误被动“情况下发生故障时、CAN_ISR 中的标准程序是什么?

    在 sprace5a.pdf 第 3.1 节中、我们无法决定接下来要做什么。 您是否会明确说明 在 can_isr 中要做什么? 或者我们有一个示例代码作为参考吗?

    (2)。 当单步进入 CAN_ISR 时、我们似乎会看到 Estop ()、错误是在第 9 组确认此中断后离开 ISR 后引起的。 对此有何见解?

    谢谢。此致、

    Johnny

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

    您好  Johnny、

    将第二个 CAN 节点添加到 CAN 总线后、无需复位和上电。  

    要将终端节点添加到 CAN 总线、需要确保  在整个 CAN 总线的开头和结尾放置了 120 欧姆终端电阻器、 应将第二个节点配置为以与第一个节点相同的总线速度运行。

    在将第 2 个节点连接到总线并且终端节点上的代码开始执行后、第 1 个节点的误差将减小。

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

    尊敬的 QJ:

    因此、一旦‘错误被动“场景出现故障、它就会执行 CAN 错误 ISR、在 ISR 中、用户无需执行任何操作(即清除错误被动错误标志)、对吧? 但是、该应用手册指出也不会生成中断。 我们是否可以详细说明 ISR 是否会生成?

    如果它连续产生 CAN ISR 和总线只有一个节点、TEC 保持在 128、我们将反复进入和离开 CAN ISR、直到第二个 CAN 节点添加到总线?

    感谢您的支持。  

    Johnny

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

    您好 Johnny、

    “错误被动“不会生成任何错误中断。 总线关闭、错误警告和奇偶校验错误会生成错误中断。 您不需要在 ISR 中添加错误处理功能。  一旦条件消除、总线关闭将自动恢复。  

    对于失败传输(检测到传输错误)、如果节点不是发送节点、则 REC 增加 1;如果节点是发送节点、则 TEC 增加 8。

    如果节点不是发送节点、如果 REC 介于 1 和 127 之间、则减小 1、如果 REC 大于 127、则随机取值在 119 和 127 之间。 如果节点是发送节点、则 TEC 减少 1。

    如果它生成 CAN ISR、并且总线仅连续存在一个节点、TEC 保持 128、我们将反复进入并离开 CAN ISR、直到总线中添加了第二个 CAN 节点?

    是的。 添加第二个节点(相同波特率)时、一旦检测到来自节点 1 的帧、就会发送 ACK、节点 1 的 TEC 将减少。