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.

[参考译文] AM2434:AM2434 QSPI ROM 引导故障排除

Guru**** 2905440 points

Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1635735/am2434-am2434-qspi-rom-boot-troubleshooting

器件型号: AM2434
Thread 中讨论的其他器件: UNIFLASH

我正在尝试从 QSPI 闪存引导我们的定制板。

我们使用相同的闪存器件、并从 AM243x LaunchPad 复制了原理图。

我已经为我们的电路板修改了 SBL DFU uniflash 工程。
我已经为我们的电路板修改了空引导加载程序工程。

USB DFU 模式设置为使用电阻器的回退引导方法。

我使用我们的配置文件运行 usb_dfu_uniflash.py 脚本、以写入空 SBL @ 0x0 和 0x400000。

修改后的 SBL DFU uniflash 运行正常—我会看到 USB 器件名称从“AM64x DFU“从 ROM 引导更改为 SBL 中设置的“AM64x-AM243x DFU“。

但是、对空 SBL 编程后、当我将引导开关更改为 QSPI 闪存时、器件不会引导并立即返回到 USB DFU 模式。

我可以通过 JTAG 加载程序并能够成功读取 QSPI 闪存--我已经读回引导加载程序的每个 32KiB 块并对其进行校验和、并且在上传之前它与我 PC 上的空引导加载程序.tiimage 匹配。

我已经尝试将 loop_forever 作为 main () 中的第一行放到空引导加载程序上,但当我连接到 r5_0_0 时,它永远不会在有效的执行点。
我认为“AM64x DFU“器件立即出现也表明它在 ROM 引导阶段失败、然后回退到次级引导方法。

我们尝试在 DQS->LBCLKO 引脚上放置一个 100k 下拉电阻、在任何流量开始之前、网络在 0.7V 左右浮动、现在在流量开始之前接近 0V、所以这看起来是一个值得的模块。

我尝试使用位置 0 和 1 中的 B8 --从 AM243x TRM 0 来看、对于 DQS->LBCLKO 连接似乎是正确的、尽管 MCU-PLUS-SDK 告诉您在 Launchpad 上将其设置为 1。  

我正在使用 mcu_plus_sdk_am243x_10_01_00_32。

问题:

ROM 引导加载程序是否有任何可以检查线索的日志/状态信息?

你还有什么建议吗?

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

    您好、

    修改后的 SBL DFU uniflash 可以运行

    您能共享刷写日志吗?

    ]我可以通过 JTAG 加载程序并成功读取 QSPI 闪存 — 我已读回引导加载程序的每个 32KiB 块并对其进行校验和、并且在上传之前它与我 PC 上的空引导加载程序.tiimage 匹配。

    这是否意味着您通过 JTAG 刷写了程序? 我只想检查这是 DFU UNIFLASH 问题还是其他问题、因此如果您可以使用 JTAG 刷写、请检查之后是否能够从 QSPI 引导。

    此致。

    会面。

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

    您可以共享刷写日志吗?

    我想您是 usb_dfu_uniflash.py 脚本中的意思吗? 请参阅下面的

    正在解析配置文件...正在解析配置文件.... - Pastes.io

    这是否意味着您通过 JTAG 刷新了程序?  

    我的意思是我通过 JTAG 将程序加载到 RAM 中并正常运行它们。  

    因此、如果您可以使用 JTAG 进行闪存、请检查之后是否能够从 QSPI 引导。

    ================== JTAG Uniflash 菜单========= ...- Pastes.io

    用 JTAG uniflash OK 闪存、但仍有相同的症状。

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

    你还有什么建议吗?

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

    尊敬的 Toby:

    我将在内部检查从 QSPI 引导时是否需要任何额外配置、同时您是否可以告诉我在 CCS 中连接到 r5f0_0 后看到什么地址:

    但当我连接到 r5_0_0 时、它永远不会处于有效的执行点

    此致、

    会面。

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

    如果在 QSPI 引导失败后连接到 R5_0_0、则 R5 通常处于 0x4182xxxx 范围(例如 0x4182752C、0x418274DA、0x41827504)的某个位置、但我确实设法在 0x08 上暂停它。 暂停时、我可以在设备管理器中看到 AM64x DFU 器件、因此假设它在 ROM 的 USB DFU 部分中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以在设备管理器中看到 AM64x DFU 器件、因此假设它位于 ROM 的 USB DFU 部分。

    是的、它卡在 ROM 代码中。

    您能否检查是否可以通过 DFU 引导来引导相同的映像 (sbl_null)?  

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

    很抱歉更新缓慢、我一直在查看项目的其他部分、因为我们确实在这方面取得了一些进展。

    我尝试的所有电路板都将从 QSPI 闪存引导 SBL、将 ROM 引导开关设置为在 1-1-1 模式 (50MHz) 下引导 xSPI、并将开关设置为常规 SPI 模式 (6.25Mhz)。

    我现在尝试的第一块电路板也将在 QSPI 1-1-4 模式下引导 SBL。 它是迄今为止唯一在此模式下工作的电路板。

    对于在 QSPI 1-1-4 模式下无法引导的电路板、闪存芯片在 1-1-4 模式下仅响应第一条命令。

    电路板启动后、我们就可以在 4D-4D-4D 模式下访问用户应用程序闪存了。

    我们正在继续调查。

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

    这一问题现已解决。

    在 S25HS512T 闪存、配置寄存器 1、位 1 在 1-1-4 模式下将数据宽度设置为 4 位宽、在非易失性寄存器中默认关闭。

    有趣的是,我们最终发现 1 个原型板启动了,这个位在闪存中打开了——这不是正常的默认值! 这使我们走向正确的方向。

    感谢您的评论。