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.

[参考译文] CC2652R7:通过 NVS 驱动程序启用4字节模式以与 MX25L25645G Macronix 闪存芯片连接

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1445969/cc2652r7-enabling-4byte-mode-via-nvs-driver-to-interface-with-mx25l25645g-macronix-flash-chip

器件型号:CC2652R7

工具与软件:

您好——我正在使用 NVS 驱动程序来连接256 Mbit 外部闪存芯片。 默认发送一个三字节地址、但由于闪存芯片的大小、我需要启用"4字节模式"以便发送4字节地址来访问芯片的上半部分。 我是否需要在代码中的某个位置指定此内容、以便 NVS 驱动程序知道发送4个字节的地址而不是3个字节? 我已经从另一个 MCU 向闪存芯片发送了"enter 4Byte mode 命令"、因此闪存芯片已经需要4字节地址。 谢谢!

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

    您好、Hannah、

    我不认为 SPI 闪存地址目标大小应设计为 在 NVSSPI25X TI 驱动程序中进行配置。  这意味着、对于写入/读取命令、假设外部闪存地址为三字节值。  因此您将需要进行修改  \source\ti\drivers\NVS\NVSSPI25X.c NVSSPI25X_write 和 doRead 函数、以便 wbuf 考虑来自[f]offset 的四个字节。  下面是一个未经测试的伪代码示例:

            wbuf[0] = SPIFLASH_WRITE;
            wbuf[1] = (foffset >> 24) & 0xff;
            wbuf[2] = (foffset >> 16) & 0xff;
            wbuf[3] = (foffset >> 8) & 0xff;
            wbuf[4] = foffset & 0xff;

    如果使用 OAD 项目、则同样的操作也适用于 BIM 项目 \source\ti\common\flash\no_rtos\extFlash\ext_flash.c extFlashWrite 和 extFlashRead 函数。  您将需要进一步调试这些更改、并考虑使用示波器或逻辑分析仪来监控 SPI CLK/PICO/POCI 引脚、并确认应用的更改是否按预期运行。

    此致、
    Ryan

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

    谢谢! 不幸的是、进行这些更改并没有帮助。 我通过  NVSSPI25X.c 和 NVSSPI25X.h 进行了梳理,看看我可能还需要做些什么,我能找到的是在 NVSSPI25X_WRITE (), doErase (), doRead (),所有这些都只是把 wbuf 的大小从4更改为5并发送4个地址字节(即你上面的代码)。 经过更改、SPI 总线仍然只在时钟沿输出3个地址字节。  SDK 代码中是否还有其他地方需要我查看是否需要进行调整?

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

    这是出乎意料的。  所以您确保也增加了 wbuf 声明吗?

    uint8_t wbuf[5];

    在清理和重新编译工程之前、请确保修改了正确的源文件。  您是否能够使用示波器或逻辑分析仪监控 SPI 线路?  此外、还应考虑 在调试会话中单步执行 NVSSPI25X_WRITE 代码、确保应用更改并且 extFlashSpiWrite 的参数具有正确的内容。  执行简单的测试、例如硬编写 wbuf 内容、以确保您的更改生效。

    此致、
    Ryan

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

    它实际上正在工作、很显然、我只需要将 NVS 驱动程序文件添加到 IAR 中的项目中。 我添加了它们以进行调试、然后仍然可以正常工作。 我可以看到 MOSI 通过 SPI 总线发送4个地址字节、它正在读回正确的数据。 感谢您的帮助!