主题中讨论的其他器件:SysConfig
工具与软件:
此帖子中讨论的问题:
- 什么是 OSPI PHY 调优?
- 何时使用 PHY 调优算法?
- 在整个 MCU 和 SDK 代码产品中、PHY 在何处启用和禁用?
- 在哪里可以找到当前的 DDR 和 SDR 调优算法实现?
让我们逐一看看这些问题。
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.
OSPI PHY 调优算法用于根据闪存器件(可能是 NAND 或 NOR 闪存器件)来调整数据线路。
有时、原因是:
数据不会根据 SoC OSPI 控制器和闪存器件之间共享的时钟进行对齐。
为了实现完美对齐、我们运行 OSPI PHY 调优算法并找出三个关键值、即:
您可以在名为 As 的文件中找到这三个值 main.c 下的 main.c。 下面是一个相同的快照:
这只是这个算法的用途的概述、让我们进一步阅读。
PHY 调优算法计算 OTP 值、该值称为最佳调优点。 保存该 OTP 值、该值包括 rxDLL、txDLL 和计算后的 readDelay。
现在、每当稍后启用 PHY 时、都会使用 OTP 值。
请注意、PHY 仅用于从闪存部分进行更快的读取。
假设 OSPI 具有以下配置:
在此例中、OSPI_CLK 将变为166/8、这大约是20 MHz。
但启用 PHY 模式后、OSPI 时钟频率为166 MHz、因为通过时钟分频器值(在本例中为8)。
在 MCU PLUS SDK 中、开始开发时会遇到适用于不同外设和协议的不同 API。
通常的流程如下:
要查看易于理解的样本流程、请检查此示例: https://github.com/TexasInstruments/mcupsdk-core/blob/next/examples/hello_world/hello_world.c
现在在 SysConfig 中:
然后在第2步: Board_driversOpen ()如果你进入代码,那么你最终会发现:
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 算法为 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