Driver for AT25SF041 SPI Flash Memory, just basic operations
at25sf041.h
- Committer:
- tpadovani
- Date:
- 2015-09-17
- Revision:
- 1:e6ad2967ec95
- Parent:
- 0:9225e2aef6b3
File content as of revision 1:e6ad2967ec95:
#ifndef AT25SF041_H #define AT25SF041_H #include "mbed.h" #include "at25sf041_commands.h" #define spi_transfer(data) _spi.write(data) #define DF_CS_inactive _cs = 1 #define DF_CS_active _cs = 0 #define READY_BUSY 0x01 #define WRITE_ENABLE_LATCH 0x02 class AT25SF041 { public: struct ID { uint8_t manufacturer; /**< Manufacturer id **/ uint8_t device[2]; /**< Device id **/ }; public: /** CTOR **/ AT25SF041(PinName mosi, PinName miso, PinName sclk, PinName cs); AT25SF041(SPI &spi, PinName cs); /** DTOR **/ ~AT25SF041(); /** Setup SPI and pinout **/ void Init(); uint8_t ReadStatusRegister(int n); void WriteEnable(); void WriteDisable(); void ReadManufacturerAndDeviceID(struct AT25SF041::ID *id); void ReadArray(uint32_t address, uint32_t length, uint8_t *buffer); void WriteArray(uint32_t address, uint32_t length, uint8_t *buffer); void ChipErase(); void EndAndWait(); private: SPI _spi; DigitalOut _cs; }; #endif /* AT25SF041_H */