NXP MCU 技术论坛
直播中

乔丽娜

7年用户 1059经验值
私信 关注
[问答]

如何使用FLEXSPI_LUT_SEQ() 宏来制作自定义LUT?

我目前正在使用连接到 FlexSPI 的 i.MXRT1052CVL6B 和 Winbond W25Q64FV2PIG QSPI 串行 NOR 闪存。
不幸的是,Winbond  W25Q64FV2PIG 具有使用标准 SPI 的默认配置,并且应在运行快速读取命令 (0xEB) 之前设置状态寄存器中的 QE 位。
所以我试图在 FlexSPI 配置块中找到合适的配置值,然后发现一些字段看起来像是在通过 LUT 运行操作之前配置 QSPI 闪存。
它们是“deviceModeCfgEnable”、“deviceModeType”、“deviceModeSeq”和“deviceModeArg”。
但是IMXRT1050参考手册中的描述不足以让我使用这些配置。
所以我想知道Bootrom如何在XIP操作之前发送命令将其设置为Quad SPI模式。

还有一件事。
我真的很好奇 evkbimxrt1050_flexspi_nor_config.h 中 LUT 操作码的宏定义,它们是
#define CMD_SDR 0x01
#define CMD_DDR 0x21
#define RADDR_SDR 0x02
#define RADDR_DDR 0x22
#define CADDR_SDR 0x03
#define CADDR_DDR 0x23
#define MODE1_SDR 0x04
#define MODE1_DDR 0x24
#define MODE2_SDR 0x05
#define MODE2_DDR 0x25
#define MODE4_SDR 0x06
#define MODE4_DDR 0x26
#define MODE8_SDR 0x07
#define MODE8_DDR 0x27
#define WRITE_SDR 0x08
#define WRITE_DDR 0x28
#define READ_SDR 0x09
#define READ_DDR 0x29
#define LEARN_SDR 0x0A
#define LEARN_DDR 0x2A
#define DATSZ_SDR 0x0B
#define DATSZ_DDR 0x2B
#define DUMMY_SDR 0x0C
#define DUMMY_DDR 0x2C
#define DUMMY_RWDS_SDR 0x0D
#define DUMMY_RWDS_DDR 0x2D
#define JMP_ON_CS 0x1F
#define STOP 0

您是否有任何文档解释如何使用 FLEXSPI_LUT_SEQ() 宏来制作自定义 LUT?

回帖(1)

沈艳丽

2023-3-15 10:26:08
为了启用QE位,我们强烈建议开发者调试一次flexspi_nor_polling_transfe (~SDK_2.6.1_EVKB-IMXRT1050boardsevkbimxrt1050driver_examplesflexspinorpolling_transfer) demo工程,demo工程提供了flexspi_nor_enable_quad_mode( ) 可以设置 QE 位的函数。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分