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.

[参考译文] TMS320F28052F:串行闪存编程器和自动波特率锁定

Guru**** 2618835 points

Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/698826/tms320f28052f-serial-flash-programmer-and-autobaud-lock

器件型号:TMS320F28052F
Thread 中讨论的其他器件:controlSUITEC2000WARE

在 SCI 引导模式下、我尝试利用 controlSUITE 中的 TI serial_flash_programmer 实用程序将固件更新应用于我的 MCU。 但是、我无法在我的 PC 和 MCU 之间建立连接。

我将引脚58和9置为低电平、并将引脚74置为高电平以建立 MCU 的 SCI 引导模式。 我对电路板进行了电源复位、并通过引脚48和49将 MCU 连接到 RS-232连接、该连接连接会连接到 PC 上的 COM 端口。 下面是我的实用程序实现、该实用程序在 F05_DownloadImage 步骤上挂起一个多小时。  

这两个.txt 文件都是作为 CCS 中的编译后处理步骤生成的: "${CG_TOOL_HEX}""${BuildArtiftFileName}"-boot -sci8 -a -o "${BuildArtiftFileBaseName}.txt"

当调用 serial_flash_programmer 时、我会在 RxD LED 上接收一个闪存、从而确认至少有一件事情(我认为这是自动波特率锁定字符)正在从 PC 发送到器件。 没有任何迹象表明器件曾经将任何内容发送回 PC。   

我回到 CCS、将 controlSUITE 下提供的内核从默认的 f28055目标修改为适当的 f28052f。  

我还尝试通过 Visual Studio 调试此实现、程序继续在同一个位置挂起。 我认为这可能是由于接收到自动波特锁定确认失败、因为我包含了多个打印语句、并且认为代码停留在以下 while 循环中:  

但是、我也使用相同的设置在器件上运行 ModScan (减去将引脚58拉低以使其正常启动)、并且成功地以高于和低于默认9600的多个波特率获得连接。  

我的器件已解锁、并且没有设置 CSM 密钥。  

在 SCI 引导模式下、我还尝试遵循 CCS 中的 scia_loopback 示例、但由于以下错误代码、我无法完成调试:  

是否有任何我显然做得不正确的事情? 当 SCI 引导引脚被设定时、为什么我的器件看起来不想连接/自动波特?  

感谢您的任何见解!

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

    首先、感谢您对该问题的详细解释。 第二、感谢您采取此类步骤来解决此问题。 您的调试工作值得称赞。

    正如您所说的、自动波特似乎不起作用。 您可以尝试先从 Putty 等终端打开 COM 端口来完成此操作。 要测试您是否正在正确引导至 SCI 引导模式并具有正确的连接、只需打开 COM 端口并发送'A'或'A'即可。 您应该在终端上看到"A"或"A"。

    您还可以加载引导 ROM 符号并查看它是否正确引导至 SCI 引导模式。

    请告诉我您的发现。

    此致、
    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Sal、感谢您能很快回来。

    我尝试使用 Putty 建立连接并向电路板发送多个"A"和"A"信号。 这些信号被指示为正在接收、因为每次发送消息时、我都可以看到 RxD LED 亮起。

    MCU 未发回任何内容(TxD LED 保持不亮)、且终端保持空白。

    您能否详细说明一下"加载引导 ROM 符号并查看其是否正确引导至 SCI 引导模式"的含义/过程?

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    连接到目标 C28x 后、您可以在"Debug"视图中单击"Run"->"Load Program"->"Add Symbols"。 THHen 指向 C2000Ware 中 bootrom 的.out 文件。 C2000Ware/libraries/bootrom/[器件]

    然后、您可能必须找到 CCS 中的文件。 文本编辑器中可能会出现“定位文件”按钮。 然后将其指向 bootrom 的/source 目录。

    您似乎没有收到"A"。 这可能是因为 TX 引脚连接有问题、或者器件未正确接收到"A"、并且器件的 Rx 引脚连接有问题。

    希望这对您有所帮助。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    目前、我正在数据路径的不同区域对我的器件进行范围界定、以尝试确定 Tx 或 Rx 引脚上的连接是否丢失。

    不过、在另一个注释中、我没有在 C2000Ware_1_00_04_00/libraries/boot_rom/f2805x 下找到.out 文件。 只有.lib 文件存在。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您可以尝试.lib 文件。 但我们似乎尚未发布该器件整个引导 ROM 的符号。

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

    在 SCI 引导模式下、我已确认从 Putty 传输的"A"达到 MCU 的引脚49 (Rx)。 引脚46 (Tx)上无响应。 在正常引导模式下、我能够通过相同的引脚与 ModScan 中的 MCU 进行通信、因此我认为这不是连接问题。

    我是否必须向源代码中添加任何库或对 MCU 进行重新编程才能使其正常工作? 在 SCI 引导模式下、"A"似乎到达 MCU。 或者、SCI 引导模式能否以使引脚48/49不再是 Tx/Rx 的方式重新分配引脚?

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

    f2805x 上的 SCI 引导加载程序使用引脚28/29。

    请参阅 TRM SPRUHE5

    www.ti.com/lit/spruhe5 2.1.5.16 SCI_Boot 函数

    如果要在引导 ROM 中使用引导加载程序、则需要使用引脚28/29。

    希望这对您有所帮助。
    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我相信您是指 GPIO28/GPIO29、它分别映射到引脚42和41。

    不过、在 TRM 中、和也可以在表1-53中引用、GPIO7 (引脚49)可以初始化为 SCIRXDA、GPIO12 (引脚48)可以初始化为 SCITXDA。 是否无法使用这些替代引脚在 SCI 引导模式下传输数据?

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

    无法在引导加载程序中更改这些引脚。

    如果您需要使用其他引脚、我建议将 SCI 内核保留在闪存中。 然后、当您需要执行 DFU 时、您可以将内核复制到使用正确 GPIO 的 RAM 中。 然后、您可以执行此操作并更新闪存。

    此致、
    SAL