打印
[技术问答]

Winbond W25Q256FV无法擦除写入

[复制链接]
237|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;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2039

主题

7368

帖子

10

粉丝