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.

[参考译文] TMS320F28376S:用于 SCI 引导模式的串行闪存编程器卡在自动波特率锁定状态

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1371927/tms320f28376s-serial-flash-programmer-for-sci-boot-mode-stuck-at-auto-baud-lock

器件型号:TMS320F28376S
Thread 中讨论的其他器件:C2000WARE

工具与软件:

您好!

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1319960/tms320f28376s-error-while-flash-the-code-through-rs422-in-tms320f28376s-controller/5029294#5029294

在上面的链接中,我们发布了相同的问题。由于我的侧线程响应缓慢被锁定。 实际上,我们尝试了他们在这个链接告诉的一切,但我们仍然得到同样的问题。

我们怀疑器件未进入 SCI 引导模式、即使我们已按上述链接中所述配置了所有内容。

1)您能不能指导我如何知道器件是否进入了 SCI 引导模式。

2)如何判断 BOOT_ROM_CODE 是否正在运行。

能否帮助我了解进一步的流程?

谢谢(&R)

K.T.Prasanna.

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

    您好!

    如果器件进入 SCI 引导模式、以下是需要在硬件上检查的一些事项:

    -器件 启动时、器件的引导模式开关是否设置为 SCI (GPIO72低电平、GPIO84高电平)?

    -如果可用,您可以使用示波器来查看自动波特字符的 RX 和 TX 线路 ,以查看是否正在发送(0x41,'a)

    若要检查器件引导 ROM 代码是否正在运行、您可以在 CCS 中执行以下步骤:

    -在 CCS 中连接到设备目标配置

    -在内存窗口中,输入给定地址处的以下 EMU-boot 表值:

     0xD00:0x815A (有效 BOOTCtrl 寄存器设置、SCI 引导备用引脚)

    -按下 CCS 工具栏中的 CPU 复位按钮

    -按 CCS 工具栏中的"Resume"按钮以运行 CPU1

    -按 CCS 工具栏中的暂停按钮以停止 CPU1

    -在  CCS 工具栏中找到 Load Program 按钮、导航至  boot_rom 文件夹并加载 工程的.out 文件:

      C:\ti\C2000Ware_5_02_00_00\libraries\boot_rom\f2837xs\RevB\rom_sources\ccs_files\cpu01\Release\F2837x_cpu01_bootROM_RevB_Golden_020314.out

    -如果需要,请导航到  boot_rom 源文件夹并找到源文件:

      C:\ti\C2000Ware_5_02_00_00\libraries\boot_rom\f2837xs+ RevB\rom_sources\F2837x_bootROM\cpu01-bootROM\source

    此处应告知您器件是否已达到引导 ROM 代码。  

    编辑:我必须在此处编辑我的响应以反映所使用的器件。

    谢谢。此致、

    Charles

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

    您好!

    我们在上面的消息中提到过、并且在下面随附的0xD00地址和屏幕截图中有所不同

    我们尝试加载下面附加的错误来了引导 ROM.out 文件

    我们还尝试了另一种方法、即通过 CCS 工具加载内核代码、并将地址0xD00修改为815A 以代替015A  、针对此过程、内核已加载、并且在选择 DFU 应用程序后也已加载该代码、但在执行 run 命令后、该代码卡在调用 send Packet 的 F021上。

    谢谢、此致

    K.. T Pasanna.  

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

    嗨、K.T.、

    对于之前的响应深表歉意、因为之前针对的是相关设备、现在已对其进行了修改。  

    对于上面收到的错误、这会显示 bootROM 程序已加载、您只需要为 bootROM 加载符号。 只有在器件卡住查看内核加载到器件后、才能尝试加载符号吗?

    谢谢。此致、

    Charles

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

    尊敬的 Charles:

    1) 1)在控制卡中、我们尝试了使用 GPIO84、GPIO85 (SCI_BOOT 引脚)进行 SCI 引导加载来进行通信、应用程序加载成功。 但使用 GPIO28、GPIO29 (SCI_BOOT_ALTERNATE 引脚)时、我们需要通过仿真器将0xD00位置从0x015A 更改为0x815A。

    现在、我们的要求是通过 SCI_BOOT_ALTERNATE 引脚加载应用、而不通过仿真器更改0xD00位置。 有可能吗? 如何做到这一点。 如果我们尝试这样做,一个 serial_flash_programr.exe 卡在 Autobaudlock。

    2)我们知道一种解决方案是 OTP 编程。 如果对 OTP 进行编程后、我们假设引导模式将始终进入 SCI 引导。 是这样吗? 在成功加载应用程序代码后、它是否会再次从 SCI 引导模式进入闪存引导模式。

    3) 3)如果我们使用 GPIO84、GPIO85 (SCI_BOOT 引脚)、此处 GPIO84配置为引导模式选择引脚和 TX 引脚。 如何在 controlCARD 等硬件中进行配置。

    谢谢。此致、

    K.T. Prasanna.

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

    嗨、K.T.、

    1) 1)通过 SCI_BOOT_ALTERNATE 引脚加载应用而不接触仿真引导模式位置(0xD00)是不能独立加载的。 这将导致您看到的自动锁定。

    2) 2)是、因为只有一个获取模式、器件将始终在启动时进入 SCI 引导。 即使应用程序下载成功、您也需要修改闪存内核、以便下载完成后、跳转到应用程序地址。

    3) 3)如果将默认值用作 GPIO84和 GPIO85用作 SCI_BOOT 引脚、则 必须为引导模式选择引脚使用不同的 GPIO 对、这样可以清楚地获取有关 GPIO84 (SCIRX)和 GPIO85 (SCITX)的信息。 您可以首先尝试在仿真中根据需要设置 BMSP、如 器件 TRM 的第4.5节表4-6所示

    谢谢。此致、

    Charles

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

    尊敬的 Charles:

    感谢您的澄清。 但我怀疑在 controlCARD 中、GPIO84用于引导模式选择和 TX 引脚。 如何在 controlCARD 中实现这一点?

    谢谢、此致、

    K.T. Prasanna.

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

    尊敬的 Charles:

     1)如果应用程序下载成功、则在何处以及如何修改闪存内核分支到应用程序地址。

    2)并且有时在我们给出(DFU 或 ERASE CPU1)时通过命令提示符、它将卡在 NACK 错误、但通过 C2prog 编程获得了成功。是否存在任何问题、请对此进行澄清。

    谢谢、此致、

    K.T. Prasanna.

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

    嗨、K.T.、

    1)可以 在'DFU CPU1'命令检查中修改 SCI 闪存内核分支、从而下载应用程序以返回应用程序入口地址。 然后、它将从 SCI_GetFunction 返回、并提供最终返回的入口地址。

            //
            // DFU_CPU1
            //
            else if(command == DFU_CPU1)
            {
                EntryAddr = SCI_Boot(BootMode); //loads application into CPU1 FLASH
                if(statusCode.status == NO_ERROR)
                {
                    statusCode.address = EntryAddr;
                }
                return(EntryAddr);
            }

    2) 2)如果它 在"DFU CPU1"或"ERASE CPU1"之后卡在 NACK 错误上、您可能需要查看内核用于初始化 SCI 的 GPIO 引脚、以及检查器件的 SCIRX 和 SCITX 线路。 我尚未在相关的 f28379xD 器件上见证此错误、您是否仍在使用 RS -422来连接 SCI? 如果您可以测试通过该器件发送命令的情况、它可以让您弄清出现 NACK 错误的原因。  

    谢谢!

    Charles

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

    尊敬的 Charles:

    感谢大家的支持、我们将 GPIO84的电阻器从1K 更改为10K、我们的传输可以正确进行。 现在工作正常、这解决了我的问题。

    谢谢(&R)

    K.T.Prasanna.

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

    尊敬的 Charles:

    我们还有另一个问题、我们将多个控制器用于一个应用、我们将所有控制器 UART 线路短接并连接到单个连接器、是否可以通过向每个控制器提供单独的 ID 来下载具有此单个 UART 线路的所需控制器的固件。  

    是否可以在所有控制器都处于 SCIBOOT 模式的情况下通过单个 UART 连接器更新多个控制器的固件。

    谢谢此致、

    K.T.Prasanna.