#ifndef STA_SENSORS_W25QXX_DEFS_HPP #define STA_SENSORS_W25QXX_DEFS_HPP // Enable 4 Byte address mode (for W25Q512) #define W25QXX_4_BYTE_ADDR_ENABLE 0xB7 // W25Qxx-specific instructions #define W25QXX_WRITE_ENABLE 0x06 #define W25QXX_VOL_SR_WRITE_ENABLE 0x06 #define W25QXX_WRITE_DISABLE 0x04 // Status register read/write instructions. #define W25QXX_STATUS_REG_1_READ 0x05 #define W25QXX_STATUS_REG_1_WRITE 0x01 #define W25QXX_STATUS_REG_2_READ 0x35 #define W25QXX_STATUS_REG_2_WRITE 0x31 #define W25QXX_STATUS_REG_3_READ 0x15 #define W25QXX_STATUS_REG_3_WRITE 0x11 // Erase memory #define W25QXX_CHIP_ERASE 0xC7 #define W25QXX_ERASE_SUSPEND_PROG 0x75 #define W25QXX_ERASE_RESUME_PROG 0x7A // Power management #define W25QXX_POWER_DOWN 0xB9 #define W25QXX_RELEASE_POWER_DOWN 0xAB // ID reading #define W25QXX_DEVICE_ID 0x90 #define W25QXX_READ_UNIQUE_ID 0x4B #define W25QXX_GLOBAL_BLOCK_LOCK 0x7E #define W25QXX_GLOBAL_BLOCK_UNLOCK 0x98 #define W25QXX_QPI_MODE 0x38 #define W25QXX_ENABLE_RESET 0x66 #define W25QXX_RESET_DEVICE 0x99 #define W25QXX_PAGE_PROGAM 0x02 #define W25QXX_QUAD_PAGE_PROGAM 0x32 #define W25QXX_SECTOR_ERASE 0x20 #define W25QXX_BLOCK_ERASE_32_KB 0x52 #define W25QXX_BLOCK_ERASE_64_KB 0xD8 #define W25QXX_READ 0x03 #define W25QXX_READ_32_BIT 0x13 #define W25QXX_FAST_READ 0x0B #define W25QXX_FAST_READ_32_BIT 0x0C #define W25QXX_FAST_READ_DUAL_OUT 0x3B #define W25QXX_FAST_READ_QUAD_OUT 0x6B #define W25QXX_SFDP_REG 0x5A #define W25QXX_ERASE_SEC_REG 0x44 #define W25QXX_PROGRAM_SEC_REG 0x42 // Lock locking/unlocking/reading for individual blocks #define W25QXX_INDIV_BLOCK_LOCK 0x36 #define W25QXX_INDIV_BLOCK_UNLOCK 0x39 #define W25QXX_READ_BLOCK_LOCK 0x3D #define W25QXX_DEVICE_ID_RESULT 0xEF #define W25QXX_PAGE_SIZE 0x100 #define W25QXX_SECTOR_SIZE 0x1000 #define W25QXX_PAGE_PER_SECTOR 0x10 #define W25QXX_BLOCK_32_KB_SIZE 0x8000 #define W25QXX_BLOCK_64_KB_SIZE 0xF000 #define W25QXX_24B_MEM_SIZE 0xFFFFFF #define W25QXX_32B_MEM_SIZE 0xFFFFFFFF #endif // STA_SENSORS_W25QXX_DEFS_HPP