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.

[参考译文] TMS320F28377S:F28377S LaunchPad 串行(SCI)编程

Guru**** 2482225 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/701147/tms320f28377s-f28377s-launchpad-serial-sci-programing

器件型号:TMS320F28377S

嗨、大家好。

我不熟悉 TI 开发板。 目前我正在尝试使用 SCI 刷写 F28377S 开发板。

尝试遵循此示例实现

短整型:

  1. 使用 "hex2000.exe -boot -pdb -sci8 -a -o OUTfile.txt infile.out"将 blinky 示例导入工作区+编译+处理*。out 文件到*。txt
  2. 将 flash_programming 导入到 workspace+使用 "hex2000.exe -boot -pdb -sci8 -a -o OUTfile.txt infile.out"将*。out 文件编译为*。txt
    1. 由于这些是示例、我建议一切都是直接的。
  3. 已准备好电路板以引导至 SCI (DIP 开关)
  4. 已使用"serial_flash_programr.exe -d f2837xS -k flash_programming.txt -a blinky.txt -p COM4 -b 9600 -v"启动 SCI 闪存

遗憾的是、似乎有问题。 您可以看到、内核似乎已加载、但不再自动波特。

也许有人会对如何解决这个问题有很好的想法。

在.cmd 或头文件中是否有要更改的内容? 我是否必须更改一些构建选项?

非常感谢。

Lukas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    flash_programming 示例不是内核。 您需要使用 sci_flash_kernel。 这就是它没有实现第二个自动波特锁定的原因。

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

    你(们)好

    感谢您的快速回复。 我昨天刚试过它、它就像预期的那样工作。 现在、闪存内核显示了它的选项。 很棒!  

    但此时、我卡在下一步:

    选择 DFU 会显示"calling f021_SendPacket"、但不执行任何操作。 我缺少什么吗?

    还有另一个让我疯狂的问题:

    为什么使用 CodeComposerStudio 上传代码只需几秒钟、但刷写内核最多需要4分钟? 如果我们需要升级3个芯片的代码、则需要12分钟。 由于此时间测量仅涵盖内核、我必须假设在闪存上升级代码需要一些额外的时间。 以38400波特率进行了采购。 这是最大值吗?

    示例命令:

    serial_flash_programr.exe -d f2837xS -k F2837xS_sci_flash_kernel_cpu01.txt -a example.txt -p COM4 -b 38400

    非常感谢您的快速帮助。

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

    尊敬的 Lukas:

    我目前还在尝试配置 F28377S LaunchPad、似乎遇到了非常类似的问题、

    这是我的主题:

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/701073

    我建议您尝试以下操作:

    1.添加-v (详细)以在 serial_flash_programr.exe 命令中启用其他详细信息打印、如下所示

    serial_flash_programr.exe -d f2837xS -k F2837xS_sci_flash_kernel_cpu01.txt -a example.txt -p COM4 -b 38400 -v

    2.在 CCS 中打开 sci_flash_kernel 工程、并将参数更改为"SCI_GetFunction"调用、从"SCI_boot_alternal"更改为"SCI_boot"、

    这会将闪存内核使用的 GPIO 更改为您的(我们的)特定模型。

    此致、

    Peter

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    加载闪存应用所需的时间比加载内核所需的时间更短、因为通信已优化为使用校验和而不是回显。 但是、这将需要一些额外的时间。

    此外、为了优化加载、您可以削减内核。 它具有许多其他功能。 例如、解锁 DCSM、验证、擦除。 您可以删除不需要的代码、这将缩小闪存内核映像、从而缩小正在通信的数据。

    只要您没有进行上电复位并且 SYSCLK 处于较高的频率、您就可以使用较高的波特率。 如果您以200MHz 运行、则可以达到115200。

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

    你(们)好

    那么、我昨天进行了测试。 绑定以使其正常工作、但我一直在上传我的应用程序。 我已尝试使用 Evers 内核命令并制作了一个包含相应错误消息的 littele 表。 当我成功运行7-Reset 和8-Done 时、内核运行良好。 正在运行1-DFU 我正在获取以下消息:

    "调用 f021_SendPacket

    已完成发送数据包... 接收到的 ACK 到数据包... 正在将 C:\Users\LukAS\Documents\Work\c2000Flash\SerialComm\CPU1_Flash\SerialComm.txt 下载到设备...

    校验和不匹配... 请按 Ctrl-C 中止。"

    2擦除或3验证以及显示具有某些校验和错误的输出。 很遗憾、我现在陷入了困境。 请帮助。

    正如 Sal 提到的、我正在考虑缩短内核以在项目的后期阶段获得速度。 但是、当我刚开始时、我现在将坚持使用默认设置。

    :你好。 很高兴能与类似成功状态的人会面。 如果你能成功地公布你的经验,那就很好了。 感谢您提示"-v"选项。 遗憾的是,它没有给我们带来太大的帮助。 BTW:默认情况下、我的示例设置为"SCI_BOOT"。

    感谢大家的帮助:)

    Lukas

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

    您可以使用 CCS 工程和 Visual Studio 工程开始调试。 您可以使用这两个项目在相应的 IDE 中单步执行并设置断点。 这将有助于您进行调试。

    可以尝试重建闪存应用、然后将串行闪存编程器指向它吗? 但在调用串行闪存编程器之前、请确保不要以任何方式打开.txt 文件。 我们看到一些人在 Windows 操作系统中遇到问题、如果在某些编辑器或其他文件中打开、则在文件开头添加一些字符。

    请尝试此操作。

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

    你(们)好

    我们正在逐步实现目标。

    我找到 了 http://www.ti.com/tool/C2000Ware 的新版本 并使用了提供的 serial_flash_programmer。 幸运的是、我成功了。 内核显示其选项后、我能够无任何错误地选择 DFU。 屏幕上有字节滚动、所以我很高兴。

    遗憾的是、这些字节的末尾还有另一个错误:

    在 串行闪存编程 Doku 中搜索"blank_error" 、我只找到了一个简短的表。

    我非常感谢您的所有支持、因为我正从错误逐步变为错误、大多数时候都找不到任何解决方案。

    非常感谢

    Lukas

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

    很高兴它能更好地工作。

    仅当您使用擦除命令时才应发送 blank_error。 如果您只使用 DFU、我不知道为什么会收到此消息。

    您是否曾尝试执行 DFU、然后运行以查看闪存应用程序是否正常工作?

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

    你(们)好。

    是的、我已经尝试了 DFU 并运行了闪存应用程序。 遗憾的是没有成功。 因此、我尝试使用 CodeComposerStudio 将一些代码(闪烁)刷写到电路板中。 由于这个代码是为闪存链接和构建的、我认为它甚至在按下电路板上的复位按钮后运行。 即使这样也不成功、因为按下 RESET 后 LED 不再闪烁。

    然后、我进行了一些调试、很幸运我拿到了另一个电路板。 上面提到的步骤在另一个电路板上非常有效。 因此、我认为我的当前板存在问题。 可能是错误的起始地址?!

    因此、我认为我对我的电流板做了一些非常糟糕的事情。 可能已将 startAdress 更改为某个无效状态。 但根据我的理解、这不是永久性的、如果使用 CodeComposerStudio 刷写另一个代码、则会发生更改。

    明天、我可能有机会尝试使用另一个电路板的整个闪存闪存过程。 但我不想冒险在不知道发生了什么错误的情况下欺骗另一个电路板。

    有什么建议吗?

    是否有办法将电路板重置为初始状态(出厂重置)?

    谢谢

    Lukas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    无法将电路板复位至初始状态。 只要您尚未对 OTP (一次性可编程)存储器进行编程、则器件本身的形状应良好。

    确保您尚未对 OTP 进行编程、并且您正在刷写的映像未对 OTP 进行编程。

    此致、
    SAL