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.

[参考译文] AM2634:SBL QSPI 引导

Guru**** 1794070 points
Other Parts Discussed in Thread: UNIFLASH, AM2634, LP-AM263
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1389626/am2634-sbl-qspi-boot

器件型号:AM2634
Thread 中讨论的其他器件:UNIFLASHLP-AM263

工具与软件:

我在自定义电路板上以 QSPI (4S)或 QSPI (1S)模式从 SDK 启动默认 SBL_QSPI.release.tiimage SBL 映像时遇到问题。

我可以使用 JTAG ok 在 CCS 上运行构建的 QSPI 测试。

我使用 uart_uniflash.py 和默认 SBL_QSPI 映像对闪存进行编程、其中具有 UART 引导 SOP0=0、SOP1=1、SOP2=1、SOP3=1的开关设置、但当我将开关设置更改为 SOP0=1、SOP1=0、SOP2=1、SOP3=1 (QSPI (1S))和下电上电时、我不会在 PC 控制台上看到"正在启动 QSPI 引导加载程序..."。 不过、使用我的示波器、我可以在从闪存器件启动时看到微控制器中存在时钟和数据线上的活动。

(1)使用 JTAG 加载的测试(使用定制电路板):

处理器= AM2634COKFHMZCZRQ1
SDK = MCU_PLUS_sdk_am263x_09_02_00_55
闪存= S25FL128SAGNFI010
CCS = 12.7.1.00001.

[Cortex_R5_0][QSPI 闪存诊断测试]正在启动...
[QSPI 闪存诊断测试]闪存制造商 ID:0x1
[QSPI 闪存诊断测试]闪存器件 ID      :0x2018
[QSPI 闪存诊断测试]对第一个块执行闪存擦除...
[QSPI 闪存诊断测试]已完成!!!
[QSPI 闪存诊断测试]执行写读测试……
[QSPI 闪存诊断测试]写读测试通过!
[QSPI 闪存诊断测试]读取 SFDP 表时出现错误或闪存不支持 SFDP!!
所有测试均已通过!!


[Cortex_R5_0][QSPI 闪存传输测试]正在启动...
[QSPI 闪存传输测试]在第一个块上执行闪存擦除...
[QSPI 闪存传输测试]执行写入读取测试……
所有测试均已通过!!

(2)从 SDK 预编译中刷写默认的 SBL_QSPI.release.tiimage。 闪存和验证正常、但在 QSPI (1S)引导或 QSPI (4S)上的开关设置下电上电时控制台上没有任何内容。 我期望"正在启动 QSPI 引导加载程序..."。

C:\ti\mcu_plus_sdk_am263x_09_02_00_55\tools\boot>python uart_uniflash.py -p COM11 --cfg=default_sbl_qspi.cfg

正在解析配置文件...
正在解析配置文件...成功。 找到2个命令!!!

正在执行命令1、共2个...
找到闪存写入器...正在发送 sbl_prebuilt/am263x-lp/sbl_uart_uniflash.release.tiimage
发送了闪存写入器 sbl_prebuilt/am263x-lp/sbl_uart_uniflash.release.tiimage、大小为42129字节(在4.0s 内)。

正在执行命令2/共2个...
命令参数:--file=sbl_prebuilt/am263x-lp/sbl_qspi.release.tiimage --operation=flash --flash-offset=0x0
发送大小为227181字节的 sbl_prebuilt/am263x-lp/sbl_qspi.release.tiimage、时间为24.05s。
[status]成功!!!

执行配置文件中的所有命令!!!

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

    尊敬的 Douglas Bolton:

    感谢您发送编修。

    您能否确保 SOP 引脚将定制板设置为正确/要求的引导模式?

    请按照以下步骤检查 SOP 模式:

    1. 在 Target configuration->CS_DAP_0中使用 AM263x GEL 文件路径(device_gel 路径)创建 ccxl。
    2. 启动新创建的 ccxml 文件。
    3. 连接到 DAP。
    4. 连接到 Cortex_R50。
    5. 转到"Scripts"选项卡-> AM263x Diagnostics -> AM263x_SOP_Mode



    此致、
    Rijohn

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

    感谢您快速回答 Rijohn。

    我按照您的说明操作、我的 SOP 开关读数正确。

    Cortex_R5_0:GEL 输出:

     ***所有 IP 时钟均已启用***

    Cortex_R5_0:AM2634
    Cortex_R5_0:GEL 输出:SOP 模式= 0x00000005    
    Cortex_R5_0:GEL 输出:
     QSPI - 1S 回退 UART 引导模式

    我昨天订购并收到了 LP-AM263 Launchpad。 从闪存启动可以正常用于 LaunchPad、但无法从我的定制 PCB 启动。

    通过研究原理图、我认为我的问题可能是 SOP 开关选择和我的定制 PCB 上的微器件之间缺少 tri 状态缓冲器。

    RBL ROM 代码的额外速度/不同设置可能是运行诊断/传输测试和 RBL 代码之间的差异。

    今天、我将尝试通过定制板破解一个缓冲器、看看它是否可以解决问题。

    谢谢。

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

    尊敬的 Rijohn:

    我设法在定制 PCB 的 SOP 引脚上放置了 tri 状态缓冲器、然后使用 JTAG 和您的说明检查了引脚状态、一切都顺利。 但是、我仍然遇到同样的诊断/传输测试问题、但从闪存启动的 RBL 无法正常工作。 在 LP-AM263板上、一切正常。

    然后、我比较了 LP-AM263上的实际器件和我的定制 PCB:

    LP-AM263 -
    S25FL128SAGNFI000

    定制 PCB -
    S25FL128SAGNFI010

    查看数据表、发现差异似乎是-



    这种差异是否就是 RBL ROM 代码无法引导的问题?

    谢谢你

    道格拉斯。

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

    嗨、Douglas、

    您能否完成以下步骤、并查看程序计数器的位置:

    1. 导入 中的 sbl_qspi_am263x-lp_r5fss0-0_nortos_ti-arm-clang 工程 CCS 中。
    2. 将电路板 SOP 引脚设置为 QSPI - 1S 回退 UART 引导模式。
    3. 使用创建并启动新的 ccxml 文件 没有 凝胶 固定电气过载。
    4. 连接到 DAP 和 Core
    5. 加载该工程的符号( sbl_qspi_am263x-lp_r5fss0-0_nortos_ti-arm-clang)
    6. 请参阅程序计数器的位置。

    此致、
    Rijohn

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

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

    Rijohn、您知道是否存在不同的 S25FL128扇区大小问题?

    是否是 uniflash 编程器或者 RBL 代码与闪存架构不匹配?

    如果是、我将在 SOP 引脚上使用 tri 状态缓冲器重新旋转电路板、并使其与 LP-AM263完全相同的器件型号。

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


    嗨、Douglas、

    很抱歉耽误你的时间。

    Rijohn、您是否知道不同的 S25FL128扇区大小可能是问题?

    这不会影响它。

    定制 PCB 应确保适当  加电和复位时序 如 AM263数据表中的第7.11.2.1节所述。 LP-AM263使用  SN74AVC4T245RSVR 作为 tri 状态缓冲器。

    您能否确认以下事项:
    1)你能看到' C' 引导模式设置为 UART 后在串行端口(波特率= 115200)中打印的字符。
    2) 2)在 sbl_qspi 项目中添加了一个 loop_forever ()函数(C:\ti\mcu_plus_sdk_am263x_09_02_00_56\examples\drivers\boot\sbl_qspi\am263x-lp)、然后按照此 e2e 中 的步骤逐步执行、以准确查看程序停止的位置。

    此致、
    Rijohn  

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

    1)你能看到' C' 引导模式设置为 UART 后在串行端口(波特率= 115200)中打印的字符。



    2) 2)在 sbl_qspi 项目中添加了一个 loop_forever ()函数(C:\ti\mcu_plus_sdk_am263x_09_02_00_56\examples\drivers\boot\sbl_qspi\am263x-lp)、然后按照此 e2e 中 的步骤逐步执行、以准确查看程序停止的位置。

    这对于 TI Launchpad 电路板来说没问题、我可以在汇编器中逐步完成无限循环-



    在我的定制电路板上、Uniflash 已编程并验证正常、但串行端口(UART 回退)上打印了字符"C"、程序计数器错误-



    我已向 SOP 引脚添加了一个缓冲器、并且制造了另一个 PCB -







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

    嗨、Douglas、

    [报价 userid="615349" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1389626/am2634-sbl-qspi-boot/5344004 #5344004"]
    我已在 SOP 引脚上添加了一个缓冲器、我正在得到另一个制造的 PCB [/报价]

    据我了解、这应该可以解决这个问题。

      有关"SOP 引导模式引脚上的缓冲器"的更多见解、请参阅此 e2e

    此致、
    Rijohn

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

    谢谢你。

    我将在新的 PCB 上进行测试、看看这样是否可以解决该问题。