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.

[参考译文] F28E120SC:并行 GPIO 引导加载程序错误

Guru**** 2943430 points

Other Parts Discussed in Thread: F28E120SC, C2000WARE, TMS320F280037

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1644513/f28e120sc-pparallel-gpio-bootloader-error

部件号: F28E120SC
Thread 中讨论的其他器件: C2000WARETMS320F280037

您好、

这是闭合线程“F28E120SC:并行 GPIO 引导加载程序似乎不起作用“的后续线程。 该主题是否可以重新打开?

我在使用并行引导模式将程序加载到 RAM 时遇到问题。 我对 TMS320F28003x /280013x/280015x 器件使用了相同的算法、一切正常运行。 F28E120SC 不支持相同的并行 GPIO 引导加载程序算法。 一些字传输到器件的 RAM 后、器件似乎被“卡住“。

我有捕获的 saleae 文件,你可以看到发生了什么:

F28E120Sx_parallel_problem.zip 

在捕获的数据结束时、您可以看到、在最后一个字节 0xFF 发送到器件后、F28x 控制引脚 (saleae 中的 DSP) 置于高电平、然后主机控制引脚置于高电平、但器件不会将 F28x 控制引脚拉至低电平(指示器件已准备好接收更多数据)。 我有 500ms 超时、我尝试将这个时间扩大到 1s、2s 10s、但器件从不会将 C28x 控制引脚拉至低电平。  

在捕获的数据中、您可以看到我尝试存储数据 0000 0003 C84D 0000 0010 FFF0 0000 0003 0001 0000 到地址 0x128 - M0RAM 的十个字 (0x0A)。 在第六个字之后、算法卡住。

正如我所写的那样、以这种方式将数据加载到以前的 TMS320 系列是没有问题的。  

我使用采用 LQFP48 封装的全新 F28E12SCTPT 器件、其默认预编程值为 DCSM。 GPIO24 和 GPIO32 设置为 L — 并行 IO 引导模式。 我假设器件已配置引导选项 0x00。 为了进行沟通、我们使用:

DSP 控制 — GPIO224、引脚 6

主机控制 — GPIO242、引脚 5

D0-D7 - GPIO0、1、3、4、5、24、28、29、引脚 42、41、39、38、47、27、2、1

我为 RAM 构建 SDK 工程 led_ex1_blinky。 使用 XDS200USB 调试器和 CCS THEIA 20.5.1 可以正常调试此工程。 GPIO33 引脚上的 LED 闪烁。

您是否能够在自己侧测试并行引导加载?

此致、

Tomas Lehotsky

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

    您好:

    我没有现成的并行引导主机编程器可供我测试、但我将在内部联系以 确认如何验证 F28E12x 上的并行引导。

    您是否可以执行上一个线程的步骤 2 并观察设备挂起时的状态?

    仿真并行引导(使用 EMU 引导寄存器)并查看是否发生问题。 如果是、请加载引导 ROM 符号并观察 ROM 引导加载程序卡住的位置。   有关详细信息、请参阅 SPRUJH3。 特别是:

    • 第 2.2 节仿真引导
    • 第 5.3 节调试引导 ROM 时未定义符号

    此致、

    马特

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

    尊敬的 Matt:

    抱歉、我们没有额外的时间(和人员)来调查并行引导加载问题的根源。 正如我之前所写的那样-

    我们在早期的 TMS320 系列中使用相同的算法、不会出现加载问题。 您写道、F28E120SC 必须采用相同的设计 — 这是保持兼容性的要求。

    因此、我将等待您的调查、看看问题是否也会出现在您身边。 请勿关闭此主题。

    此致、

    Tomas

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

    您好:

    在捕获的数据中、您可以看到我尝试存储十个字 (0x0A) 的数据 0000 0003 C84D 0000 0010 FFF0 0000 0003 0001 0000 写入地址 0x128 - M0RAM。

    我刚刚实现了这一点、但地址 0x128 是引导 ROM 保留存储器的一部分。 使用并行引导模式时、请勿写入此区域。

    此致、
    马特

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

    尊敬的 Matt:

    关于保留的 BootROM 存储器 — 我使用了 TI C2000Ware_26_00_00 目录中示例的默认链接器文件。 所以我更正了这个文件:

     

       BEGIN            : origin = 0x000000, length = 0x000002
       BOOT_RSVD        : origin = 0x000002, length = 0x0001BE     /* Part of M0, BOOT rom will use this for stack */
       RAMM0            : origin = 0x0001C0, length = 0x000240

    但这种改变不能解决我的问题。

    对于并行引导模式、我们使用:

    D0 - D7:GPIO0、GPIO1、GPIO3、GPIO4、GPIO5、 GPIO24、GPIO28、GPIO29

    DSP 控制引脚:GPIO224

    主机控制引脚:GPIO242

    F28E120SC 是从 TI 订购的空白新器件。

    正如我们之前所写的、一个字后会出现问题、当 DSP 控制引脚未连接到 L 时、器件会指示该引脚已准备好接收另一个字。

    我将从并行加载附加捕获的数据 —  F28E120_PARALLEL_CAPTURE_Fail.logicdata

    为了进行比较、我还为 TMS320F280037 器件连接了良好的工作并行负载 —  TMS320F280037_OK_parallel.logicdata

    F28E120S 单个字加载持续约 32ms:  

    另一方面、 对于 TMS320F280037、一个字加载持续大约 25us:

    TMS320F280037 和 F28E120 之间的差异 是可疑的! 它持续了这么长的时间,我想这是问题的根源。 出了问题。

    您能否确认我们使用的是正确的并行引脚进行加载?

    此致、

    Tomas

    e2e.ti.com/.../F28E120_5F00_parallel_5F00_capture_5F00_fail.zipe2e.ti.com/.../TMS320F280037_5F00_OK_5F00_parallel.zip

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

    您好:

    抱歉、我在下一个星期三之前不在办公室。 请预计响应会延迟到那时。

    此致、

    马特

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

    您好:

    我可以确认这些是用于并行引导加载的正确引脚。  

    但此更改不能解决我的问题。

    为了确认我的理解:F28E12x 现在能够对 RAM 进行编程、而 ROM 保留的段已正确扩展、但其 速度比 F28003x 慢得多?  

    我正在与我们的内部团队合作、以找出原因。 与之前的 C2000 器件相比、F28E12x 上存在不同的内部振荡器。

    此致、
    马特

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

    尊敬的 Matt:

    否、使用并行引导将数据加载到 RAM 仍然不起作用 — 加载几个字后,加载过程始终会中断... 您可以在我上一篇文章中的采集数据中进行检查。

    此致、

    Tomas

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

    尊敬的 Tomas:

    感谢您为我澄清这一点。 我将在下周初与引导 ROM 团队会面、希望我能尽快为您提供答案。

    此致、

    马特

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

    您好、

    在这种情况下有什么新闻?

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

    您好、  

    由于产品截止日期、我的会议转移到了星期四、希望届时我能得到解答。 我确认的所有内容都是 F28P55x 和 F28E12x 器件之间完全重复使用了并行引导代码。  从 Boot ROM 和 SW 的角度来看、我们没有任何特定于 F28E12x 的更改会导致性能降低。

    此致、
    马特

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

    您好:

    为了让您了解最新信息、我收到了我们的内部并行引导测试代码、并将尝试重现您的问题。 我将在下周初收到最新情况。

    此致、
    马特

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

    尊敬的 Matt:

    是否有任何更新?

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

    尊敬的 Tomas:

    我观察到我这边没有异常 我使用备用并行引导 (BOOTDEF = 0x20)。  DSP 写入时间约为 37us、与其他 C2000 器件相当。 从地址 0x1C0 开始写入几个字也没有问题。  

    此致、
    马特

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

    尊敬的 Matt:

    您是否有任何理由不使用默认并行引导 (BOOTDEF = 0x00)? 您是否也可以验证默认的并行引导选项?

    默认引导模式选择引脚为 GPIO24 和 GPIO32。 在 RESET 引脚被置为 H 之前、我将该引脚连接到 L。对于 BOOTDEF = 0x00、GPIO24 也是 D0-D7 GPIO 引脚之一...

    我假设您使用一些评估板进行测试。 您是否已将一些晶体/谐振器/外部时钟连接到 F28E120? 你能提供这种方案吗?

    此致、

    Tomas  

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

    您好:

    我使用了 F28E12x LaunchPad、该 LaunchPad 仅提供 用于备用并行引导的 GPIO。 引导模式之间的运行应相同。

    您是否已将一些晶体/谐振器/外部时钟连接到 F28E120? 您能否提供该方案?

    复位时、无论连接的外部时钟如何、引导 ROM 由内部振荡器计时。 它们的存在/缺失不会影响 ROM 引导加载程序的执行。

    电路板的设计文件 在以下位置提供: https://www.ti.com/tool/LAUNCHXL-F28E12X#design-files

    默认引导模式选择引脚为 GPIO24 和 GPIO32。 在 RESET 引脚置为 H 之前、我将该引脚连接到 L。对于 BOOTDEF = 0x00、GPIO24 也是 D0-D7 GPIO 引脚之一。

    这应该不会影响引导加载程序功能。 只要不违反引导模式引脚的保持时间 (1.5ms)、就 会执行并行引导并能够 使用 GPIO24。

    来源:F28E12x 数据表

    此致、
    马特