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.

[参考译文] TMS320F28388D:串行闪存编程

Guru**** 2540720 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1304909/tms320f28388d-serial-flash-programming

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

我正在尝试通过串行方式刷写 f28388d controlCARD。 我已经在 controlCARD 上将引导引脚设置为在复位时从 SCI 引导、并且将 controlCARD 连接到一个 COM 端口。

我正在尝试刷写 C2000软件包安装中的 led ex1_c28x_dual_blinky_CPU1示例、 C:\ti\c2000\C2000Ware_4_00_00\driverlib\f2838x\examples\C28x_dual\led。  

我拥有采用 SCI 引导格式的闪存内核和 led 闪烁可执行文件、并且尝试使用 串行闪存编程器 此实用程序使用以下命令刷写 controlCARD:  

C:\ti\cc2000\c2000Ware_4_00_00\utilities\flash_programmers\serial_flash_programmer\serial_flash_programmer -d f2838x -k flash_kernel_c28x_dual_ex1_c28x1\cpu1_RAM\flash_kernel_c28x_dual_ex1_c28x1.txt -a leed_ex1_c28x_dual_blinky_cpu1\cpu_8 -b led_ex1_c28x_dual_blinky_cpu1.txt -v -9600

运行该实用程序后、我可以看到 controlCARD 成功进行了自动波特、并且内核被传输到 controlCARD 的 RAM 中、如下所示。

内核完全传输完成后、我看到它开始执行。 但是、controlCARD 无法与主机 PC 第二次自动波特。 结果、它不断尝试自动波特时遇到困难。   


我无法确定或理解在闪存内核下载到 RAM/运行后导致自动波特率失败的原因。  

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

    您好!

    此主题的专家目前不在办公室,预计将在1月2日回来 请预计响应会延迟。

    此致、

    瓦尔沙

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

    您好、Nam:

    对于内核项目、您是否知道  device.h 文件中设置的时钟频率是多少? 如果内核能够加载、它可能会重新配置为不同的时钟频率、因此无法自动波特。

    谢谢。此致、

    查尔斯

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

    您好、Charles、设置的时钟频率是200MHz、我没有修改 此项目的时钟频率。

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

    您好、Nam:

    引导模式是否设置为使用 GPIO 28/29以用于您在 main 闪存内核文件中的设置? 应有一个名为 sciGetFunction 的函数、其中接收  SCI_boot 的参数。   

    物理设备检查:

    开关 S1:A 设置为低电平和高电平(0、1)、开关 S2设置为低电平和高电平(0、1)。  

    电缆是否正确连接到设备?  您是否可以尝试先插入电源线(J1:A)、再插入数据线(J3)。  

    尝试此操作时、我能够通过自动波特连接到器件(如下所示)。

    谢谢。

    查尔斯

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

    是的、sci 引导模式设置为在源代码中使用 GPIO 28/29 - sciGetFunction 将 SCI_boot 作为参数、SCI_boot 定义为0x01U  // GPIO29、28。

    对于物理设备、我将开关 S2设置为 sci boot (0、1)、并将 gpio28设置为通过 HSEC 连接器开关 S1:A (0、0)中的引脚控制。 我有一个 GPIO 转 UART-USB 适配器、其连接到集线站上的引脚76和78 (对应于 GPIO 28/29)。 这样、我就能够在运行串行闪存实用程序后确认串行通信、因为我看到了如上所示的内核文件字节传输。

    我还在 FTDI 芯片开关 S1:A (0、1)上通过 USB 转 UART 适配器测试了 gpio28的控制、在两种情况下、串行通信都在工作、正如被传输到 RAM 中的内核所看到的。  

    内核传输并运行后、似乎有某种东西阻止 controlCARD 通过 PC 进行自动波特锁定。 因此、我甚至在您分享的屏幕截图中看不到要执行的操作选项。

    您能否为我确认您用于测试的内核项目的位置、以及如果您在构建内核项目之前对其进行了任何配置/设置/更改、您是否能够确认?

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

    测试中使用的内核项目的位置: C2000Ware_5_01_00_00 > driverlib > f2838x>examples>C28x_dual>flash_kernel (也可在 ti.com/lit/sprabv4的 Troubleshooting 部分查看)

    测试时将配置保留为默认值。  

    谢谢。

    查尔斯

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

    好的、我也没有对闪存内核进行任何修改。

    对于为什么 controlCARD 在发送函数消息之前仅在第二个自动波特序列(从 serial_flash_programmer.exe 启动)期间无法回显字符'a'、您有什么其他建议吗?

    我连接了一个逻辑分析仪并验证了在内核成功传输后(在第一个自动波特序列之后)、serial_flash_program 在"尝试自动波特以发送函数消息..."之后等待2秒。 我看到 SCI RX 引脚上有字符'A'、如下所示(通道3)、但您可以看到 SCI TX 引脚(通道1)上没有响应  



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

    您好、Nam:

    您之前说过这是在200MHz 上进行的测试、使用 controlCARD 的25MHz XTAL 设置?

    其他要测试的内容、您可以在 CCS 中挂起程序并加载 内核项目的符号、并在内核程序的"主项"的开头设置一个断点。 在内核 通过 SCI 下载后、在仿真模式下器件连接到 CCS、它应该会命"主"中的断点、您可以 在 CCS 中逐步执行初始化操作、以查看设置的值。

    此致、

    查尔斯

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

    Charles、您好。系统时钟是使用默认定义的25MHz XTAL 时钟生成的。 我尝试在 CCS 中调试程序、发现它一直卡在器件初始化中、特别是在尝试验证实际晶体频率是否与定义的器件振荡器源频率匹配时。 默认情况下、f2838x rev b (正在使用的板版本) controlCARD 应进行更新、以使用25MHz 振荡器来生成系统时钟。 由于检查失败、我尝试改用20Mhz 外部振荡器、这导致检查通过。 似乎此电路板默认情况下仍使用20Mhz 振荡器。 在器件标头中定义#USE_20MHz_XTAL 后、验证成功、自动波特锁定完成。