[技术问答] Winbond W25Q256FV无法擦除写入

[复制链接]
426|1
 楼主| 两只袜子 发表于 2023-12-21 15:54 | 显示全部楼层 |阅读模式
Winbond W25Q256FV无法擦除写入
riplay 发表于 2023-12-25 09:51 | 显示全部楼层
通过读取status register2 判断是否CMP被设置为1
UINT8 usiStatus2Read()
{
    uint8_t volatile u8Val;

    QSPI_ClearRxFIFO(QSPI_FLASH_PORT);

    // /CS: active
    QSPI_SET_SS_LOW(QSPI_FLASH_PORT);

    // send Command: 0x05, Read status register
    QSPI_WRITE_TX(QSPI_FLASH_PORT, 0x35);

    // wait tx finish
    usiActive();

    // read status
    QSPI_WRITE_TX(QSPI_FLASH_PORT, 0x00);

    // wait tx finish
    usiActive();

    // /CS: de-active
    QSPI_SET_SS_HIGH(QSPI_FLASH_PORT);

    // skip first rx data
    u8Val = QSPI_READ_RX(QSPI_FLASH_PORT);
    u8Val = QSPI_READ_RX(QSPI_FLASH_PORT);

    return u8Val;
}
若设置为1,通过指令改写status register 2
int usiStatusWrite(UINT8 data)
{
    // Write enable
    usiWriteEnable();

    ///////////////////////////////////////

    // /CS: active
    QSPI_SET_SS_LOW(QSPI_FLASH_PORT);

    // send Command: 0x01, Write status register
    QSPI_WRITE_TX(QSPI_FLASH_PORT, 0x01);

    // wait tx finish
    usiActive();

    // write status
    QSPI_WRITE_TX(QSPI_FLASH_PORT, data);

    // wait tx finish
    usiActive();

  // write status 2
    QSPI_WRITE_TX(QSPI_FLASH_PORT, 0x02);

    // wait tx finish
    usiActive();

    // /CS: de-active
    QSPI_SET_SS_HIGH(QSPI_FLASH_PORT);

    return Successful;
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8121

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部