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.

[FAQ] [参考译文] [常见问题解答] MCU-PLUS-SDK-AM243X:如何将调整 PHY 与用于 OSPI 控制器的 MCU_PLUS_SDK 配合使用?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1241653/faq-mcu-plus-sdk-am243x-how-to-use-tune-phy-with-mcu_plus_sdk-for-ospi-controller

器件型号:MCU-PLUS-SDK-AM243X

问题1: 如何使用 MCU_PLUS_SDK 调优 PHY?

问题2. 为什么需要对 PHY 进行调优?

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

    传统上而言、  无 PHY 的 OSPI 控制器  可在  50MHz STR  模式和  25MHz DTR  测试模式。
    由于要求以更高的速度读取闪存、用户可以将控制器配置为更高的速度、在该速度下 PHY 允许更灵活和更节能的传输。

    AM243x 最高支持  166MHz  如果启用了 PHY、则为 OSPI 控制器时钟。 但是、为了启用 PHY、 需要根据自定义电路板跟踪、使用的闪存器件、使用的协议、启用 STR/DTR 模式、控制器的时钟频率和配置的虚拟周期等对其进行调优。

    请按照上述步骤以更高效的方式调整 PHY。 我们将采用 MX25U51245G 以遵循更改。

    还要在开发引导模式下执行此实验、以便 RBL 或 SBL 不会预配置闪存。 有关开发引导模式系统初始化的更多信息-  

    步骤1

    导入 OSPI-FLASH-IO 项目。 该视图将显示已启用的闪存和 OSPI。

    步骤2

    将 MX25U 配置为在25MHz 下支持4S-4D-4D 模式并测试其功能是否正常。

    请参阅常见问题解答- https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1230063/faq-mcu-plus-sdk-am243x-faq-how-to-debug-develop-migrate-the-flash-driver-for-custom-flash-on-non-ti-evm-ospi-xspi

    步骤3

    在 OSPI 模式下配置时钟并启用 PHY。

    注意:使能 PHY 后、忽略输入时钟分频器。 因此、在该配置中、即使 PHY 启用失败、时钟仍然为25MHz、这是 DTR 模式的安全区域。

    数据表支持的最大配置为  100MHz  在 DTR 模式下对 MX25U512闪存进行了编程。

    步骤4

    在 ospi_flash_io 工程中添加软件- ospi_flash_io.c–ospi_flash_io_main  

    创建 phyTuneArray 的全局变量、如下所示-

    向 main 函数中添加函数。

    步骤5

    在连接调试器的情况下运行示例。 目的是获取在输出端创建的数组的转储、  即 phyTuneArray

    该数组  4*128*128,即64KB 。 此外、程序执行时间 可能最多需要2-3分钟

    步骤6

    将数组保存为二进制格式、如下所示-

    步骤7

    使用简单的 matplotlib 生成采集数据的图形。

    这是一款用于生成绘图的参考工具 - /cfs-file/__key/communityserver-discussions-components-files/908/phy_5F00_tuning_5F00_graph_5F00_analyzer-_2800_1_2900_.py

    该工具将生成类似这样的结果-

    此图可以提供4种颜色数据-

    1. 红色表示"读/写延迟"为0
    2. 蓝色表示"读/写延迟"为1
    3. 绿色表示"rdCaptureDelay (读出延迟)"为2
    4. 粉色指示"字段延迟"为3

    步骤8

    选择最优区域、如图的最中心区域。

    x 轴为 txDll、y 轴为 rxDll。 因为图是蓝色的。

    在这种情况下、

    • txDll = 46
    • rxdll = 81
    • rdCaptureDelay = 1

    步骤9

    修改  flash_norOspiOpen  此函数用于添加  OSPI_PhyConfig 参数配置、启用 PHY 和禁用 PHY 流水线。

    请确保跳过 PHY 调优算法、因为如果用户手动添加数据、则不需要执行此操作。

    添加该文件的副本以供参考(在08.06版本中有效、将来可能会更改)-

    e2e.ti.com/.../flash_5F00_nor_5F00_ospi.c

    步骤10

    请尝试  ospi_flash_io  示例、方法是  从程序流中删除 OSPI_PhyGrapher。 现在、您的 PHY 已启用、允许 OSPI 控制器  100MHz。


    注意事项:

    • 如果无法获得有效的图数据、则通过工作读取虚拟周期配置重复此实验、最多±2个周期。
    • PHY 特性和图形可能会因电路板设计、温度、功率等因素而异。 SDK 对每个复位周期进行调优以满足所有温度范围、建议用于每个复位周期。
    • 为了支持所有条件、用户必须根据极端条件验证并绘制图形、并相应地选择相应的值。
    • 仅在读取操作期间需要启用 PHY。 因此、PHY 仅在闪存读取功能期间启用、之后禁用。 每次调用 Flash_writes 时、都确保未启用 PHY。