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.

[参考译文] AWRL6844:QSPI 通信

Guru**** 2558250 points
Other Parts Discussed in Thread: AWRL6844, AWRL6844EVM, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1538546/awrl6844-qspi-communication

器件型号:AWRL6844
Thread 中讨论的其他部分:UNIFLASHSYSCONFIG

工具/软件:

您好、  

我正在开发一个使用 QSPI 通信的简单应用。 我不使用存储器映射协议转换器;而是直接配置内核 SPI 模块。

从 QSPI 闪存读取数据时遇到问题。 发送工作正常、我可以在逻辑分析仪上看到闪存器件以数据进行响应。 但是、SPI_DATA 寄存器在每个事务结束时包含 0x00000000。

我已经尝试了模式 0 (CKP=0、CKPH=0) 和模式 3 (CKP=1、CKPH=1)、但这两种情况下问题都仍然存在。

是否有人遇到类似的问题或对可能出现的问题有建议?

此致

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

    嘿、Jaka、

    感谢您发送有关与闪存器件连接的消息。 我已经邀请了我们的一位闪存专家、但我有两个问题可以帮助我们了解您的设置:

    1. 只是为了确认、您正在使用 AWRL6844 的 SPI 模块与 QSPI 闪存器件通信、对吗? 您不能改用 AWRL6844 的 QSPI 模块的特殊原因吗?
    2. 您能否提供所使用闪存器件的器件型号?

    此致、

    Kristien

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

    尊敬的 Kristien:

    我使用 QSPI 模块与闪存通信。 由于我还需要发送 JEDEC ID 读取和其他闪存寄存器读取等命令(不仅仅是标准读取/写入操作)、因此我使用的是 Config Port 模式、而不是存储器映射协议转换器。

    我正在使用 AWRL6844EVM 板和 MX25V1635FZNQ03 闪存。 不过、我认为问题与闪存本身无关、因为闪存似乎会使用正确的数据进行响应。

    问题是我无法在 SPI_DATAx 寄存器中观察到响应数据。

     

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

    尊敬的 Jaka:  

    请给我几天时间来进一步研究这个问题、并返回给您。

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    这个问题有什么新问题吗?

    此致、  
    Jaka

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

    尊敬的 Jaka:  

    很抱歉耽误你的时间。 以下是一些 要点

    1. 您是否能够读回闪存的 JEDEC ID? 如果可以、请尝试下一个数字点
    2. 您可以在写入之前尝试发送擦除命令、然后尝试读回吗

    此外、SDK 中还有一个示例、其中包含一个 QSPI 闪存传输示例。 我知道您不希望使用 存储器映射协议转换器、因为您仍然希望能够发送命令。 您可以在存储器映射协议中使用它、并且仍然可以发送命令。 您可以在此处找到示例:[mmwave_L_SDK_06_00_05]\mmwave_l_sdk_06_00_05_01\examples\drivers\qspi\fqi_flash_transfer\qspi_flash_transfer.c

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    关于第一点、我无法读取 JEDEC ID。 在将逻辑分析仪连接到 QSPI 线路后、我可以看到闪存以正确的 ID 进行响应。 但是、该值不会出现在 QSPI 模块的数据寄存器中。

    此致、
    Jaka

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

    尊敬的 Jaka:

    由于您看到已发送 JEDEC ID、只是器件未识别、因此我怀疑您的 QSPI 在此期间可能仍处于繁忙状态。  

    您能否检查 QSP_STATUS_REG (0) 并查看它是否仍然繁忙。

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    发送 JEDEC ID 命令并尝试读取 3 个字节响应后、SPI_STATUS 的值为 0x00040006、这表示设置了字完成位、设置了帧完成位、并且字计数为 4。 BUSY 位为 0、这意味着传输未在进行中。 我真的不知道还有什么可能成为这种行为的原因。


    此致、
    Jaka

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

    我不确定这是否与我描述的问题有关、但我无法将 SPI_CMD 寄存器的 WLEN 字段设置为高于 0x1F 的值。
    根据 TRM、应使用 0x7F (127) 来选择 128 位字长 (意味着全部四个 32 位数据寄存器)、但此配置似乎不起作用。

    QSPI 控制器是否存在任何已知问题?

    我还尝试使用 Code Composer Studio 从 SDK 连接和加载 QSPI 示例、但无法连接到控制器。 报告以下错误:
    连接到目标时出错:(错误–2062 @ 0x0)

    有趣的是、Uniflash 确实设法连接到内核、因此我相信跳线和 DIP 开关配置正确。

    此时、我不确定还要尝试什么。 如有任何有用的建议、将不胜感激。

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

    这里的状态是什么? 大家都可以帮我。

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

    尊敬的 Jaka:  

    很抱歉我们稍后才回复。 QSPI 控制器不存在已知问题、我们也没有遇到类似问题。 您能与我们分享您的代码或项目吗? 您是修改演示工程还是预先存在的工程、以尝试以这种方式使用 QSPI 模块?

    关于您在连接到目标时遇到的问题、当您尝试连接到内核进行调试时、是否会发生这种情况? 如果是、请尝试使用 EVM 部分下常见问题解答#1 或  常见问题解答 (AWRL6844) SDK 6.0.3.0 部分下常见问题解答#3 下的步骤。

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    遗憾的是、我无法共享整个工程、但可以提供包含用于发送/接收 SPI 扫描的所有函数的主文件。 类似的库可以对其他 AWRx 器件正常工作(它们各自的头文件定义了每个控制器的地址和寄存器)。

    如前所述、这些函数对于传输 SPI 序列非常有效。 唯一的问题是 SPI 芯片的响应(显示在 SPI 线路上)不会出现在数据寄存器中。

    关于 CSS Studio 和 SoC 连接、很遗憾、即使执行了您上次回复中提供的步骤、我仍然无法使用相同的错误代码进行连接。

    此致、

    Jaka

    e2e.ti.com/.../DeviceOperations_5F00_AWRL6844QSPI.ce2e.ti.com/.../DeviceOperations_5F00_AWRL6844QSPI.h

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

    尊敬的 Jaka:

    谢谢你给我发送你的代码,给我几天时间来看看,看看我能找到什么.

    此致、

    Vignesh K.

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

    尊敬的 Jaka:

    我已经浏览过您的代码、由于存在许多潜在问题、因此很难判断问题所在。 我建议在 CCS 中使用 SysConfig 工具、为 QSPI 驱动程序创建一个新实例并构建工程。 这将创建一组文件、其中将准备好所有正确的 QSPI 设置、因此您只需调用  Drivers_open);Board_driversOpen ();然后您可以无缝使用 QSPI 驱动程序中的所有函数。

    手动完成所有操作会带来很大的错误空间、并实现了 SysConfig 工具以减少设置驱动程序所需的开销。  在您的实现中、您似乎没有正确地将我们的驱动程序用于 QSPI。  

    如果您想获取有关如何使用 SysConfig 的更多指导、敬请告知。

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    我从 CSS 尝试了几个例子,症状与我之前描述的相似。 我已经测试过

    • QSPI_FLASH_DMA_TRANSFER_xwrL684x-evm_r5fss0-0_nortos_ti-arm-clang  
    • QSPI_flash_transfer_xwrL684x-evm_r5fss0-0_nortos_ti-arm-clang  

    在默认配置下以及通过 SysConfig 工具手动配置库以使用 SPI 而不是 QSPI。

    在所有这些工作区中、可以在数据线上看到闪存芯片的响应、但在 SPI_DATA 寄存器中不可见 — 这与我在使用自己的函数时描述的行为相同。

    例如、Flash_norQspiWaitReady () 函数超时、因为它从外部闪存读取了无效的响应。

    QSPI 模块肯定有问题。 我认为 MX25V1635F 芯片工作正常。

    我真的不知道还有什么可能是这里的问题。

    此致、
    Jaka

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

    尊敬的 Jaka:

    SysConfig 工具使用 SPI 而不是 QSPI

    我想我误解你在这里做什么。 当您与 SLFASH 的所有连接都通过 6844 器件的 QSPI 焊盘时、为什么要使用 SPI 模块而不是 QSPI?

    听起来您正在使用无法正常工作的 SPI 驱动程序来尝试使用 QSPI 控制器。 您是否尝试过在不修改示例的情况下运行示例? 我之前说过、您不希望使用 QSPI 模块、因为您也希望发送命令。 您是否知道您可以按原样使用 QSPI 示例、并且仍然能够使用 QSPI_writeCmd 函数向 SFLASH 发送命令?  

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    我一直在研究 QSPI 问题、并希望根据我们的上次交流澄清几点。

    我不使用 SPI 模块而是 QSPI 模块。 我上次附加的屏幕截图显示我正在使用\mmwave_l_sdk_06_00_05_01\examples\drivers\qspi\fqspa_flash_transfer\xwrL684x-evm\r5fss0-0_freeRTOS 文件夹中的 qspi_flash_transference ()、因此 SDK 应使用正确的模块。

    关于最后一点、我按原样使用示例、不做任何修改。 我尝试了以下示例:

    • QSPI_FLASH_DMA_TRANSFER_xwrL684x-evm_r5fss0-0_nortos_ti-arm-clang  
    • QSPI_flash_transfer_xwrL684x-evm_r5fss0-0_nortos_ti-arm-clang  

    都有相同的问题。

    需要说明的是、当我提到不同的配置时、我的意思是将 QSPI 模块配置为使用 1S-1S-4S 或 1S-1S-1S 进行传输、这两种情况下的行为是相同的。 并不是我对 QSPI 引脚使用 SPI。

    我希望这澄清了事情。

    此致、
    Jaka

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

    您好、

    “怎么样? CSS 演示应用程序无法正常工作。

    此致、
    Jaka

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

    尊敬的 Jaka:

    感谢您清除此信息、我更好地了解您在这里所做的工作。 我将默认 1S-1S-4S 的配置更改为 1S-1S-1S、诊断示例的读取和写入缓冲区失败。  1S-1S-4S 的默认配置可以通过、但在 1S-1S-1S 配置中写入时遇到问题。 当我继续调查此问题时、我会随时更新您的信息。

    不过、这两种配置都存在问题、因此它们可能是不相关的。

    Vignesh K.

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

    尊敬的 Vignesh:

    您是否发现了有关该问题的新问题?

    此致、
    Jaka

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

    您好、我仍在等待您的答复。

    此致、
    Jaka

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

    还在等待。 此问题是阻止程序。

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

    尊敬的 Jaka:

    我由衷地为这里的延误表示歉意。  

    在我的设置(使用 EVM)中、我的 1S-1S-1S 配置现在适用、因为我只需将 SysConfig 中的读取命令从 0x6B(四通道读取)更改为 0x02(单通道读取)。 我无法重新创建您的问题、因为所有配置都适用于我 请确保从最新的 SDK 导入 QSPI 闪存传输示例。

    此致、

    Vignesh K.