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.

[参考译文] DRA72XEVM:无法通过 QSPI 发送命令。

Guru**** 2541020 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600598/dra72xevm-unable-to-send-command-through-qspi

器件型号:DRA72XEVM

尊敬的所有人:

我正在尝试编写用于 NOR 闪存(S25FL128S)的裸机应用程序、该应用程序通过 ti_QSPI 进行通信、而无需使用任何操作系统。 由于闪存编程的第一步是读取器件/制造商 ID、但我无法读取它。 S25FL128S 数据表显示、为了获取器件 ID、我需要发送命令0x90/0x9f、但问题是参考手册中没有提到发送命令的序列。 但是、我通过以下方式使用了工作流程:通过编程 QSPI_INTC_EOI_REG 启用时钟、 将 QSPI_SPI_DC_REG 寄存 器编程为0xF90000 [4引脚单次读取、32位字长、单帧]、将 QSPI_SPI_DATA_REG 编程为0x29F [3字节地址、9f 器件 ID 命令]。 但我在数据寄存器中没有任何内容(我希望器件 ID 会接收到任何内容)。 如果有人能提到从 QSPI 发送命令的工作流程、那将会非常出色。 提前感谢。

此致、

Hamza。

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

    我已将您的问题转交给 QSPI 专家。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你。 期待他们的答复。 )
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    您使用的是 TI-EVM 还是定制板?  

    请参阅 U-boot 代码作为参考。 确保引脚多路复用器配置正确。

    引脚多路复用:

    Board/ti/dra7xx/mux_data.h

    clkctrl:

     请参阅 arch/arm/cpU/armv7/omap5/hw_data.c 中的 enable_basic_clocks ()

    QSPI 驱动器@

    drivers/spi/ti_qspi.c  

      

    此致

    Ravi

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

    非常感谢您的回答。 是的、我使用的是定制板、通过某种方式获得了器件 ID、但我有一个小问题。 我对寄存器 QSPI_SPI_CMD_REG 的 FLEN 位感到困惑。 我对 WLEN 有点了解。 但我还没有想到帧长度,如果你能描述它的话?

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

    FLEN 域用于配置读取或写入中传输的字数。

    来自 TRM:
    QSPI 支持通过帧样式序列进行长传输。 在其通用 SPI 使用模式下、一个字
    最多可定义128位、并且在单次访问期间可以传输多个字。 每个都有一个
    字、器件启动器必须读取或写入新数据、然后告知 QSPI 继续当前数据
    操作。 使用该序列、在单个 SPI 读取中最多可以传输4096个128位字
    或写入操作。 这样可在将 QSPI 连接到各种类型的器件时实现极大的灵活性。


    此致、
    Yordan