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.

[参考译文] AM625:SPI 闪存盘

Guru**** 2486065 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1548908/am625-spi-flash-clok

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

工具/软件:

您好:

我的 SPI 闪存的最大频率约为 100Mhz、但当 I test 时、最大频率可为 166M

您能告诉我的原因吗?以及如何将其修改为我的闪存可以支持的最大频率吗?

谢谢你。

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

    您好、

    您使用的是哪个 SDK? 是 MCU PLUS SDK 还是 Linux SDK?

    请查看闪存数据表、其中会提到它可支持的最大频率。

    同时、请在此处查看支持的时钟模式:

    谢谢、

    Vaibhav

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

    你好、 Vaibhav

    SDK 版本为 10.01.10.04

    我们测试的最大频率为 166M。我认为是 phy 模式。

    我们不希望它运行 166M。闪存不能支持 166M、它只能支持大约 100 M。

    我们如何修改代码以将最大频率更改为大约 100m。

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

    您好、Tom、

    我们如何修改代码以将最大频率更改为大约 100 米。

    如果这是 MCU+ SDK、则可以使用 SysConfig 工具来更改此设置、在该工具中只需更新频率即可。

    根据您提到的 SDK 版本、您使用的是适用于 AM62x 的 Processor SDK Linux。 我认为更改频率需要对器件树源文件进行顶层更改。

    请通读以下内容: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/11_01_05_03/exports/docs/linux/Foundational_Components /U-Boot/UG-QSPI.html

    如果该部分“ SPI-最大频率: “帮你脱衣服。“

    谢谢、

    Vaibhav

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

    尊敬的  Vaibhav:

    DTS 中的 SPI-max-frequency 不是 166MHz、为 25M、但闪存可工作为 166M

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

    您好、Tom、

    ]在 DTS 中、spi-max-frequency 不是 166MHz、是 25M、但闪存的工作频率为 166M

    让另一位专家对此进行评论。

    谢谢、

    Vaibhav

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

    您好、Tom、请查看 Cadence OSPI Linux 内核驱动程序/spi/cadence_qspi.c (https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/spi/spi-cadence-quadspi.c?h=ti-rt-linux-6.12.y-arm32-cicd)。 特别是下面的函数:

    根据我在文档中看到的内容(提取的文本下方)、DTS 提供了初始 OSPI 配置、但在启用 PHY 的运行时不会严格执行驱动程序。 因此、这可能需要使用驱动程序中的补丁来处理

    3.1.1.6. OSPI/QSPI NOR/NAND - Processor SDK AM62x 文档

    闪存属性:

    1. 兼容:  指定设备的兼容字符串、操作系统将使用此字符串来标识设备的驱动程序并与该驱动程序匹配。 对 OSPI/QSPI NOR 闪存‘“JEDEC、SPI-NOR“、对 OSPI/QSPI NAND 闪存‘s“PI-nand"。“。

    2. SPI-TX-BUS 宽度和 SPI-Rx-BUS 宽度:  指定发送 (TX) 和接收 (Rx) 数据时 SPI 事务的总线宽度(以位为单位)。 对于 OSPI 闪存、设置为‘8“;对于 QSPI 闪存、设置为‘4“。

    3. SPI-最大频率:  定义了 SPI 总线可以运行的最大频率(以赫兹为单位)。 分别为 SDR 和 DDR‘的“dspi0"‘“‘节点的“assigned-clocks “值设置 1/4 或 1/8。 ‘‘了 PHY 校准、则会忽略该值、最大频率由“Spi0"节点“节点的“Assigned-clocks “属性中指定的值决定。

    4. CDN、读取延迟:  指定闪存器件提取命令和响应命令之间的时钟周期延迟。 这与闪烁的不同、请尝试从 0 开始使用不同的读取延迟、并找到闪存驱动程序正确探测的最小读取延迟。

    谢谢您、

    Paula

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

    您好 Paula:

    我们启用 PHY 校准、我尝试将 OSPI 的分配时钟速率设置为 166666666 到 1000000、

    但启动时、电路板从闪存读取数据错误。

    如您所说,最大 freq 由 assigned-clocks 定义, SDK 中的值为  

    Assigned-clocks =<&K3_CLKS 75 7>

    如何更改?

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

    您好、Tom、根据文档(AM62X 时钟标识符—TISCI 用户指南)、yes clock ID 75 似乎是正确的。 我在下面找到了用户更改了 PRUSS 内核时钟的 E2E。 如果您可以使用“assigned-clock-rates"执行“执行类似操作、请查看并告诉我

    AM625:帮助将 PRUSS 时钟设置为 AM6254 上的 333MHz — 处理器论坛-处理器 — TI E2E 支持论坛

    您在启动时遇到了哪些错误?

    谢谢您、

    Paula

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

    我只将分配的时钟速率更改为 1000000000、错误是从闪存读取的数据有错误、我的电路板无法启动。

    我不知道我是否需要更改分配时钟或分配时钟父级的其他值

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

    汤姆,更好地理解。  如果您对 166MHz 使用 OSPI 时钟、而没有 PHY(禁用 PHY)、您的电路板是否会引导? 我想看看是否有任何情况下您的电路板启动正常,即使它不是以最佳速度,以排除任何其他可能的问题

    谢谢您、

    Paula

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

    你好、Paula:

    如何禁用 PHY?为什么要禁用 PHY 才能启动?

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

    您好 Paula:

    “你是不是很怕我?“

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

    我对我迟交的答复表示歉意。  

    我 在“DTS\上游\phy\arm64\ti\k3-am625-sk.dts“中看到了“phy-mode"<xmt-block0>“ src。 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts?h=ti-linux-6.12.y#n730 我将再次检查此位置、然后返回给您(如果您只需要从那里删除它)。

    另一方面、让我回过头来回答一些问题:

    -在你的原始帖子你提到:“当我测试时,最大频率可以是 166M“所以,这是否意味着你能够引导之前?

    -如果是这种情况,你是如何引导的? 使用 SD 卡?   

    -如果你确实可以引导,你可以尝试“ k3conf 转储时钟 75“ 并告诉我们结果? 我想看看您是否能够在 100MHz 上看到 SPI 总线时钟、或者您是否仍然看到 166MHz  

    感谢您的帮助、

    Paula

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

    您好 Paula:

    -在你的原始帖子你提到:“当我测试时,最大频率可以是 166M“所以,这是否意味着你能够引导之前?

    是:我的电路板可以正常启动。

    -如果是这种情况,你是如何引导的? 使用 SD 卡?   

    SPI-NAND

    -如果你确实可以引导,你可以尝试“ k3conf 转储时钟 75“  并告诉我们结果? 我想看看您是否能够在 100MHz 上看到 SPI 总线时钟、或者您是否仍然看到 166MHz  

    我不明白k3conf 转储时钟 75“。

    仅当闪存执行读取、写入、擦除时、SPI 总线时钟才为 166MHz

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

    您好、Tom、

    一个校正。 在上一篇文章中、我复制了链接到“k3-am62p5-sk.dts?“ 而不是“k3-am625-sk.dts"</s>“

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am625-sk.dts?h=ti-linux-6.12.y#n223

    禁用 PHY 的目的是减少时钟、看看这样是否有用。 您还可以尝试使用“assigned-clock-rates"设置“设置较慢的时钟、并查看它是否有所帮助。

    关于“ k3conf 转储时钟 75“ 请查看此类似主题:

     关于:AM625:QSPI 无法正常工作。

    使用时的主要想法“ k3conf 转储时钟 75“ 是确认 DTS 中所做的更改得到正确反映。

    另外、安装程序启动正常时、您使用的是哪个 NAND 闪存? 是否同一个不能在 100MHz 或另一个引导? 从中导出:

    https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/11_01_05_03/exports/docs/linux/Foundational_Components /U-Boot/UG-QSPI.html

    我们有:“并非所有 OSPI 闪存都可以受支持。 建议用户检查为定制电路板设计选择的 OSPI 闪存器件是否满足 https://e2e.ti.com/support/processors/f/791/t/946418“上列出的所有标准

    因此、我想与您联系、了解是否支持您使用的 SPI 闪存。

    谢谢您、

    Paula

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

    您好 Paula:

    我删除 DTS 中 ospi 节点的 phy-mode、并将 分配的时钟速率更改为 100M  

    该映像可以启动、闪存读取时钟擦除高达 100M(而不是 166M)。

    我们不支持 rootfs 中的这个 cmd k3conf 转储时钟 75。

    SPI NAND 为 QSPI

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

    您好、Tom、要确认、现在您的系统正在启动、您可以看到闪存时钟为 100M(而不是 166M)?

    如果是,很好,但我会有一个跟进问题 (s) 为你.. 如果否、则请澄清我的当前状态。

    谢谢您、

    Paula

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

    您好 Paula:

    是、它可以启动、最大闪存时钟为 100M

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

    您好、Tom、感谢您的确认。  

    禁用 PHY 后、您最终使用了哪些“分配的时钟速率“?

    Paula

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

    您好 Paula:

    在 DTS 中、我将其设置为 100m

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

    您好 Paula:

    我是否可以在 DTS 中移除 phy-mode 并将 assigned-clock-rates 设置为 100M?

    我们使用闪存时是否有任何问题?

    我们使用的 DTS 是 k3-am62-main.dtsi 和 k3-am62-lp-sk.dts、而不是 k3-am625-sk.dts。

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

    嗨、Tom、如下所述、如果没有 PHY 校准、您将使用分频器来进行时钟控制。 因此、OSPI 时钟频率最终将是 100MHz 的 1/4 或 1/8。 禁用 PHY 除了性能没有问题、但根据用例和应用的不同、这可能没问题。

    [报价 userid=“40339" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1548908/am625-spi-flash-clok/5963051 SPI-最大频率:  定义了 SPI 总线可以运行的最大频率(以赫兹为单位)。 分别为 SDR 和 DDR‘的“dspi0"‘“‘节点的“assigned-clocks “值设置 1/4 或 1/8。 ‘‘了 PHY 校准、则会忽略该值、最大频率由“ospi0"节点“节点的“Assigned-clocks “属性中指定的值决定。

    谢谢您、

    Paula