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.

[参考译文] TMS320F28388S:我们是否可以通过 CAN 引导加载程序、一次使用 CAN 总线对 9 个器件进行编程?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1523123/tms320f28388s-can-we-use-can-bus-to-program-9-device-at-one-time-though-can-bootloader

器件型号:TMS320F28388S

工具/软件:

尊敬的团队:

我的客户希望使用 CAN 总线对 9 块板进行一次编程、我建议他们使用 C2000 GANG。 但需要大量 JTAG 导线。 我们是否可以通过 CAN 引导加载程序一次使用 CAN 总线对 9 个器件进行编程?

我们是否有一些指南、建议客户使用 CAN 总线进行编程?

此致、

Zane

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

    您好的团队、

    是否对此进行了任何更新? 谢谢!

    此致、

    Zane

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

    TRM 中有一张图片、这意味着 CAN 引导可以使许多 CAN 器件接收闪存内核并对 C2000 器件进行编程? 谢谢!

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

    尊敬的 Zane:

    是的、这应该是可行的。 我们目前有一个有关通过 CAN 刷写的指南:

    C2000 微控制器的 CAN 闪存编程

    可用作参考的电阻器。

    谢谢。此致、

    Charles

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

    尊敬的 Charles:

    如何识别每个 C2000 器件? 每个器件都有相同的 BootROM、这意味着 msgid 是相同的。 假设所有 CAN 节点都可以接收数据、每个节点都会收到 ACK? 它会导致 CAN 总线上出现一些错误?

    此致、

    Zane

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

    尊敬的 Zane:

    每个 C2000 器件均可在 CAN 网络上通过其节点 ID 值进行标识。 如果器件都可以 充当网络上的接收器并接收数据、则只需一个器件确认收到的消息、发送器将接受此单次确认。

    提供了 控制器局域网 应用手册的参考。

    环路 CAN 所有者以获取进一步的输入。

    谢谢。此致、

    Charles

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

    尊敬的 Zane:

    所有节点都将接收帧、如果帧有效且没有错误、则成功接收帧的所有节点都将尝试发送显性 ACK 位。  只需要一个节点向发送节点发送信号、即 ACK 位已成功接收到帧。  如果未收到 ACK、或者如果由于节点发回帧错误而导致 CAN 帧出现错误、则发送器可以重新发送该帧。  将帧广播到总线中的多个节点时需要考虑这一事实。

    此致、

    Joseph

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

    您好、Joseph:

    感谢您的回答。 假设我们有 8 个 C2000 需要通过 CAN 总线进行更新、如果 5 个 C2000 不发送 ACK。   但 CAN 总线中有一个 ACK、由 1-4 或 6-8 C2000 器件发送。  主机是否还认为所有器件都已接收帧?

    我们是否有一些方法可以确保所有设备都接收到正确的帧?

    最好的注意、

    Zane

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

    尊敬的 Zane:

    回答正确。  一旦发送节点接收到“ACK",“,它、它将停止重新发送帧。   一种方法是实现消息 ID 过滤、这样发送节点必须发送 9 帧、每个节点一个帧、并且传输的帧将包含消息 ID、但有效载荷将相同。  接收节点将仅接受(筛选)要发送给它的消息。  只有在所有节点都发送确认后、发送节点才会停止传输具有相同有效载荷的帧。  这种方法的缺点是、每次节点中的单位发生变化时、节点/消息 ID 都必须由发送节点预先确定。

    如果用户希望其独立于 C2000 器件、而不依赖于节点或消息 ID、则可以在有效载荷中实现帧/数据大小和计数器。  也许发送器发送的第一个帧将包含预期的帧总数、然后后续帧将包含帧序列以及有效载荷。  在接收节点上、可以修改 CAN 接收例程、以根据帧编号和预期数据检查是否接收到所有帧。  

    此致、

    Joseph

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

    您好、Joseph:

    CAN 引导加载程序位于 ROM 中、无法修改。 我记得它仅接收消息 ID =1 帧。 我们还可以用您提到的方式吗?

    此致、

    Zane

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

    尊敬的 Wei:

    这是正确的、但我认为总字节检查和当前字节计数是在接收节点上完成的、因此我相信客户可以尝试并行对 9 个节点进行编程、因为字节检查是由接收节点在本地完成的。  也许您可以向客户推荐一些可以尝试的东西。

    此致、

    Joseph