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.

[参考译文] TMS320F280049:通过 SCI 进行固件更新

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1309872/tms320f280049-fw-update-over-sci

器件型号:TMS320F280049

尊敬的 C2000 Gurus:

我正在使用 ARM 主机 MCU 通过 SCI 更新 F28004x FW。 我使用默认 GPIO 28和29进行 SCIA 启动。 在启动 C28x 复位并从 SCI 引导后、我能够加载内核文件。 然而、在加载内核文件后、自动波特锁不起作用并卡在这里(请参阅下文)。

  

我的工作如下:

  1. 首先、让我们确保我正确生成了内核文件。 我使用  flashapi_ex2_sciKernel  工程的 CPU1_RAM 配置、并使用 hex2000实用程序生成.txt 十六进制文件。 请注意、此工程使用默认的 SCIA GPIO 28和29。
  2. 然后、我将此内核文件从主机 MCU 加载到 C28x SCI 启动时的 C28x 中。 此处自动波特率锁定无问题。 看起来#1中生成的文件已正确加载,因为读回的所有数据字节都与此文件的内容完全匹配。 您在上面看到的图像是通过与 PC 的单独串行连接从主机 MCU 接收到的数据。
  3. 我相信我给内核留出了足够的时间来开始运行。 我已经对这次的试验进行了试验、试验时间低至几百毫秒至十秒。
  4. ‘在加载此内核文件后我没有接收到"自动波特率锁定"字节(假设内核在此时运行)、则不会发生自动波特率锁定。
  5. 我尝试了 flashapi_ex2_sciKernel   工程的 BANK0_NO_LDFU 配置。 在这种‘下、在加载"Kernel file"后、自动波特率锁定生效、但我认为这会误导开发者。 在本例中、‘内核’似乎只是回显我发送的任何数据。 ‘、‘我发送‘Erase All’数据包、它只是回传数据包的最后一个字节"0xE4"(即228d)、而不是正确的 ACK 字节"0x2D"。  

我可能会在哪里出问题?

谢谢。

黑石市

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

    Hrishi、您好!

    感谢您列出考虑的步骤。 几个问题:

    1) 1)您使用的 ARM 主机是什么?

    2) 2)您是否在 F28004 controlCARD 或 LaunchPad 上尝试进行该固件更新?

    一旦内核在 F28004器件上重新初始化、它就会尝试通过主机上的 GPIO28/29重新进行自动波特。 您是否了解了我可以使用的设置? 这将有助于更好地理解连接。

    谢谢。此致、

    查尔斯

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

    尊敬的 Charles:

    感谢您的快速回复。

    主机是 nRF52 Cortex-M4 MCU。

    我使用的是定制硬件。 C28x GPIO28和29转至配置 为 SCI 引脚的主机引脚。

    C28x 显然能够 从 SCI 引导并加载内核。 您是否可以确认使用使用 flashapi_ex2_sciKernel  工程的 CPU1_RAM 配置生成的内核文件是正确的?

    我无法在论坛上分享原理图、 如果需要的话、我可以直接与您分享。

    谢谢。

    黑石市

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

    Hrishi、您好!

    是的、您可以使用使用   flashapi_ex2_sciKernel  工程的 CPU1_RAM 配置生成的内核文件、但必须交叉检查 时钟频率并根据您的要求修改。

    此致、

    拉杰什怀特

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

    您好、Rajeshwarm:

    是的、修复  flashapi_ex2_sciKernel  工程中的时钟配置似乎可解决内核下载后的自动波特率锁定问题。 然而、在这之后、当我发送 ERASE ALL 发送数据包(0xE4、即228d)的第一个字节时、该过程似乎会卡住。 请见下方。  我将继续研究此问题、以了解可能导致此问题的原因、但请告诉我是否有明显的东西(如时钟配置)缺失。  

    我会将此帖子标记为已解决、并针对 sendpacket 问题提交一个新帖子、其中包含指向此主题的链接、如果我自己没有取得任何进展。

    谢谢!

    黑石市