2136485_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2136485_zh-CN

2136485_zh-CN

MIMXRT1170-EVKB mflash_drv.c 中的错误:启用四模式

大家好,

RT1170 评估板的 EVKB 版本的软件开发工具包中存在错误。在当前版本 25_06_00 中仍然存在。

闪存驱动程序(mflash_drv.c)显然是从包含不同的 QSPI 闪存的 EVK 板上移植的。

写入状态寄存器的 LUT 值为

    /* Enable Quad mode */
    [4 * NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG] =
        FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x01, kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x04),

启用四模式的代码为

#if !defined(XIP_EXTERNAL_FLASH) || defined(MFLASH_FORCE_QUAD_MODE)
static status_t flexspi_nor_enable_quad_mode(FLEXSPI_Type *base)
{
    flexspi_transfer_t flashXfer;
    status_t status;
    uint32_t writeValue = 0x40;

    /* Write neable */
    status = flexspi_nor_write_enable(base, 0);

    if (status != kStatus_Success)
    {
        return status;
    }

    /* Enable quad mode. */
    flashXfer.deviceAddress = 0;
    flashXfer.port          = kFLEXSPI_PortA1;
    flashXfer.cmdType       = kFLEXSPI_Write;
    flashXfer.SeqNumber     = 1;
    flashXfer.seqIndex      = NOR_CMD_LUT_SEQ_IDX_WRITESTATUSREG;
    flashXfer.data          = &writeValue;
    flashXfer.dataSize      = 1;

    status = FLEXSPI_TransferBlocking(base, &flashXfer);

即:值 0x40 与 cmd 0x1 一起写入。

在较旧的 EVK 板中,闪存芯片是 ISSI IS25WP128。

在这里,cmd 0x1 向状态寄存器写入 0x40,以设置四通道使能位。

EVK-B 的闪存芯片是 Winbond W25Q512NW。

其中,四位使能位位于 S9 中,即状态寄存器 2 的第 2 位。

这里需要用 cmd 0x31 写入值 0x02。

顺祝商祺!

莱纳


Re: Error in MIMXRT1170-EVKB mflash_drv.c : Quad mode enable

嗨,@hfuhruhurr

感谢您的报告。我将对此进行调查并上报给 SDK 团队,以便他们能够对未来版本的 RT1170-EVKB SDK 进行适当的更改。


Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 08:34 AM
Updated by: