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] [参考译文] [常见问题解答] AM62A7:OSPI PHY 调优算法

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1431856/faq-am62a7-ospi-phy-tuning-algorithm

器件型号:AM62A7
主题中讨论的其他器件:SysConfig

工具与软件:

此帖子中讨论的问题:

  1. 什么是 OSPI PHY 调优?
  2. 何时使用 PHY 调优算法?
  3. 在整个 MCU 和 SDK 代码产品中、PHY 在何处启用和禁用?
  4. 在哪里可以找到当前的 DDR 和 SDR 调优算法实现?

让我们逐一看看这些问题。

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

    什么是 OSPI PHY 调优?

    OSPI PHY 调优算法用于根据闪存器件(可能是 NAND 或 NOR 闪存器件)来调整数据线路。

    有时、原因是:

    1. 时钟分配网络不正确
    2. 线偏斜
    3. 不同温度(高温、如100°C 或低温、如-10°C)

    数据不会根据 SoC OSPI 控制器和闪存器件之间共享的时钟进行对齐。

    为了实现完美对齐、我们运行 OSPI PHY 调优算法并找出三个关键值、即:

    1. rxDLL
    2. txDLL
    3. readDelay

    您可以在名为 As 的文件中找到这三个值 main.c 下的 main.c。  下面是一个相同的快照:

    这只是这个算法的用途的概述、让我们进一步阅读。

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

    何时使用 PHY 调优算法?

    PHY 调优算法计算 OTP 值、该值称为最佳调优点。 保存该 OTP 值、该值包括 rxDLL、txDLL 和计算后的 readDelay。

    现在、每当稍后启用 PHY 时、都会使用 OTP 值。

    请注意、PHY 仅用于从闪存部分进行更快的读取。

    假设 OSPI 具有以下配置:

    1. 时钟频率:166 MHz
    2. 时钟分频器值:8

    在此例中、OSPI_CLK 将变为166/8、这大约是20 MHz。

    但启用 PHY 模式后、OSPI 时钟频率为166 MHz、因为通过时钟分频器值(在本例中为8)。

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

    整个 MCU 和 SDK 代码产品中、PHY 在何处启用和禁用?

    在 MCU PLUS SDK 中、开始开发时会遇到适用于不同外设和协议的不同 API。

    通常的流程如下:

    要查看易于理解的样本流程、请检查此示例: https://github.com/TexasInstruments/mcupsdk-core/blob/next/examples/hello_world/hello_world.c

    现在在 SysConfig 中:

    1. 添加了 OSPI
    2. 已添加闪存
    3. 在 OSPI 下:
      1. 启用并检查 PHY 模式。

    然后在第2步: Board_driversOpen ()如果你进入代码,那么你最终会发现:

    1. 对于 NAND 闪存部分:流程进入 flash_nand_ospi.c ,并调用 API Flash_nandOspiOpen ()。 在这种情况下、根据所选的协议 SDR/DDR 调用 API OSPI_phyTuneSDR ()或 OSPI_phyTuneDDR ()。

    2. 对于 NOR 闪存部分:流程进入 flash_nor_ospi.c、并且调用 API Flash_norOspiOpen ()。 在这种情况下、根据所选的协议 SDR/DDR 调用 API OSPI_phyTuneSDR ()或 OSPI_phyTuneDDR ()。

     

    A:在 OSPI_phyTuneDDR 内部、OSPI_phyFindOTP1计算最佳调优点(OTP)

    B:在 OSPI_phyTuneSDR 内部、OSPI_phyFindOTP3计算最佳调优点(OTP)

    请注意、在 API A 和 B 内部、流程如下:

    下一次启用 PHY 时将调用 API Flash_READ ()。

    如果你进入 Flash_READ (),流程会出现如下的一个点:

    因此、当 PHY 启用时、读取以166 MHz 的时钟频率发生、因为时钟分频器值被旁路、然后 PHY 被禁用。

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

    在哪里可以找到当前的 DDR 和 SDR 调优算法实现?

    DDR 算法为 OSPI_phyTuneDDR ()->OSPI_phyFindOTP1 ()

    SDR 算法为 OSPI_phyTuneSDR ()->OSPI_phyFindOTP3 ()

    了解有关 DDR 算法的更多信息: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_00_00_20/exports/docs/api_guide_am64x/DRIVERS_OSPI_PAGE.html#autotoc_md1867

    了解有关 SDR 算法的更多信息: https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/latest/exports/docs/api_guide_am62ax/DRIVERS_OSPI_PAGE.html#autotoc_md557