diff --git a/SPIFlash.cpp b/SPIFlash.cpp index e250c17..63642a2 100644 --- a/SPIFlash.cpp +++ b/SPIFlash.cpp @@ -277,6 +277,15 @@ void SPIFlash::blockErase32K(uint32_t addr) { unselect(); } +/// erase a 64Kbyte block +void SPIFlash::blockErase64K(uint32_t addr) { + command(SPIFLASH_BLOCKERASE_64K, true); // Block Erase + SPI.transfer(addr >> 16); + SPI.transfer(addr >> 8); + SPI.transfer(addr); + unselect(); +} + void SPIFlash::sleep() { command(SPIFLASH_SLEEP); unselect(); diff --git a/SPIFlash.h b/SPIFlash.h index 7364a8f..5a98f56 100644 --- a/SPIFlash.h +++ b/SPIFlash.h @@ -102,6 +102,7 @@ public: void chipErase(); void blockErase4K(uint32_t address); void blockErase32K(uint32_t address); + void blockErase64K(uint32_t addr); uint16_t readDeviceId(); uint8_t* readUniqueId();