From 90d40148592eb430c10c5deed2880dfdd89313d7 Mon Sep 17 00:00:00 2001 From: Dominic Spill Date: Fri, 4 Jan 2019 19:58:04 -0700 Subject: [PATCH] SPI flash: check busy flag is clear BEFORE enabling writes --- firmware/common/w25q80bv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/firmware/common/w25q80bv.c b/firmware/common/w25q80bv.c index bc19e2f6..da5f806e 100644 --- a/firmware/common/w25q80bv.c +++ b/firmware/common/w25q80bv.c @@ -125,8 +125,8 @@ void w25q80bv_chip_erase(w25q80bv_driver_t* const drv) } while(device_id != W25Q80BV_DEVICE_ID_RES && device_id != W25Q16DV_DEVICE_ID_RES); - w25q80bv_write_enable(drv); w25q80bv_wait_while_busy(drv); + w25q80bv_write_enable(drv); uint8_t data[] = { W25Q80BV_CHIP_ERASE }; spi_bus_transfer(drv->bus, data, ARRAY_SIZE(data)); @@ -143,8 +143,8 @@ static void w25q80bv_page_program(w25q80bv_driver_t* const drv, const uint32_t a if (addr > (drv->num_bytes - len)) return; - w25q80bv_write_enable(drv); w25q80bv_wait_while_busy(drv); + w25q80bv_write_enable(drv); uint8_t header[] = { W25Q80BV_PAGE_PROGRAM, @@ -230,8 +230,8 @@ void w25q80bv_read(w25q80bv_driver_t* const drv, uint32_t addr, uint32_t len, ui void w25q80bv_clear_status(w25q80bv_driver_t* const drv) { - w25q80bv_write_enable(drv); w25q80bv_wait_while_busy(drv); + w25q80bv_write_enable(drv); uint8_t data[] = { W25Q80BV_WRITE_STATUS, 0x00, 0x00 }; spi_bus_transfer(drv->bus, data, ARRAY_SIZE(data)); }