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.

[参考译文] TMS320F28069M:在何处查找或制作 CAN 引导加载程序/闪存编程器

Guru**** 2535150 points
Other Parts Discussed in Thread: TMS320F28069M, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1048009/tms320f28069m-where-to-find-or-make-a-can-bootloader-flash-programmer

器件型号:TMS320F28069M
主题中讨论的其他器件: C2000WARE

您好!

我是一家希望我制造的公司的实习生、他们用于控制传动系统的电路板、可远程更新。 为此、我需要做的一个步骤是确定如何使用 CAN 将新固件版本刷写到电路板中。 此电路板包含一个 CAN 输入、此输入将数据发送至 TMS320F28069M 控制器。 我已通过 UART 刷写新的程序、开始我的研究。 因此、我使用了 C2000ware 提供的串行闪存编程器。 完成此步骤后、我希望使用 CAN 引导模式和协议执行相同的操作。 我已经做了数天的研究,但似乎不能再进一步了。 我看到很多主题提到 CAN 引导加载程序或类似的东西、但我自己似乎无法找到。

问题是:

是否有 CAN 引导加载程序可用于使用 CAN 将新固件刷写到控制器中。 或者、是否有人为我提供提示、以便我可以将 serial_flash_programmer 示例转换为 CAN_flash_programmer。  

很抱歉、我不了解相关知识、我只是一名学生、这是我第一次使用固件和引导加载程序。

我期待着听到你们的知识和技巧。

您好!
Guilliam

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

    您好、Guilliam、  

    C2000Ware 中提供了适用于 F2806x 器件的 CAN 闪存内核。 目前没有针对 CAN 的主机端编程器、我将在一天之内向您提供可能的建议。  

    谢谢、  

    Anu

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

    尊敬的 Anu:  

    我见过 CAN 闪存内核。 我目前正在研究 serial_flash_programmer 如何与 SCI 闪存内核配合工作、以了解具体情况。 我还在研究 SCI 闪存内核和 CAN 闪存内核之间的差异、以了解必须执行的操作。 但是、我并不是很清楚我应该如何处理 serial_flash_programmer 以将其转换为 CAN_flash_programmer。 期待看到您的建议。  

    我意外点击了您回复中的"此问题已解决"按钮、但尚未解决、因此请忽略此问题。

    谢谢、
    Guilliam

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

    Guilliam、  

    对于主机端编程器、建议查看提供8种解决方案的3P 工具。 您可以查看此链接 :https://www.ti.com/tool/C2000-3P-SEARCH

    此外、Elprotronic 还具有可与 C2000器件配合使用的闪存编程器。 您可以在 以下网址浏览他们的产品:https://www.elprotronic.com/

    谢谢、  

    Anu

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

    我不太认为这是我要找的。
    我只是想找一个有关如何制作 CAN 闪存编程器的线索或示例。


    我们有传动系统 PCB、其中包含2个 TMS320F28069M 控制器。 该 PCB 通过 CAN 连接器连接到 STM 控制器。 该 STM 控制器又连接到由英特尔凌动处理器控制的主板。 我的任务是了解我们如何使传动系统 PCB 远程更新。 目前、我们的 STM 控制器通过电机控制器向 PCB 发送 CAN 消息。

    但是、我现在要了解的是、应采取哪些措施使 CAN 闪存内核在电路板上正常工作、以便将新固件下载到电路板上、这样我们就不必再使用 XDS110调试探针手动执行此操作。 我想我可以与团队一起找出其余的问题。 希望我能更清楚地说明我的问题、期待收到您的回复。

    更新:  
    在过去的两天里、我一直在研究和研究 SCI 和 CAN 闪存内核之间的差异。 我发现、大多数差异对于我想要实现的目标来说并不重要、因为这些差异主要是初始化差异、并通过寄存器和所有检查将控制器本身设置为正确的状态。 但我发现我们使用闪存内核的东西:在需要下载到器件上的程序的数据块中读取的 GetWordData 函数也是完全相同的。 我发现的唯一不同 之处是、在 de SCI_GetWordData 中、LSB 和 MSB 将被验证回主机。 但是在 SCI_Boot()使用的 SCI_GetOnlyWordData 中,会跳过此验证步骤,使其与 CAN_GetWordData 相同。 我发现的另一个差异是、在 SCI_GetOnlyWordData 中、校验和按如下方式更新:  

    该校验和在 serial_flash_programmer 中使用了几次。 但 CAN 闪存内核当然不使用此功能。  

    最后一个差异是在 CAN_GetWordData 中、返回 wordData 之前的最后一步、所有 RMPn 位都被清除。

    那么、我现在的问题是在我进行研究并找出内核中的差异之后、如何将 serial_flash_programmer 转换为 CAN_flash_programmer? 因为好像 FLASH_programmer 本身只从内核文件中读取、而从应用程序文件中写入。 但是、对于每个文件、这应该是相同的、并且它不仅仅是读取 SCI 文件(我可能会错误地监督某些内容、请告知我。) 期待倾听您对我的研究和可能的解决方案的意见。

    谢谢、
    Guilliam

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

    Guilliam、  

    串行闪存编程器解析使用 SCI8格式创建的十六进制文件、并将其发送到目标器件。 十六进制实用程序以相同的方式创建 CAN 和 SCI 十六进制文件、请查看 https://www.ti.com/lit/ug/spru513w/spru513w.pdf 的表12-1。   为了将串行闪存编程器更改为 CAN 闪存编程器、您需要以与在闪存内核中进行的 ECAN 模块函数调用兼容的方式发送十六进制文件。 主机编程器可能需要格式化并发送可由 F2806x 器件读取的 CAN 帧。 您可以尝试修改用于 F2806x 串行闪存编程器的 f05_DownloadImage.cpp。 您正确地注意到 CAN 闪存内核确实需要校验和或验证返回主机的字节。 闪存内核本身是对 ROM 中 CAN 引导加载程序的修改、因此这很可能来自。  

    Codeskin 具有闪存编程工具、可帮助通过 CAN 进行固件更新、其 CAN 实用程序的一部分是开源的、这也是值得一试的资源: https://www.codeskin.com/opensource 

    谢谢、  

    Anu

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

    Anu、您好!

    非常感谢您提供的所有信息。 我将尝试您的建议、并将查看您的建议文档。  

    谢谢、
    Guilliam

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

    您好、Guilliam、  

    当然、如果您有任何问题、请告诉我。  

    谢谢、

    Anu