ISSI IS25LQ032B 3V-Quad Serial Flash Memory with Multi-I/O SPI

Dependents:   testSPI_IS25LQ032B SPI_Flash_erase

SPI Flash Memory ISSI IS25LQ032B library.

Although the device has lots of features, only a small portion of commands were implemented. (sorry)

For the data sheet please refer to http://www.issi.com/WW/pdf/25LQ080B-016B-032B.pdf

Committer:
Rhyme
Date:
Thu Dec 25 00:46:17 2014 +0000
Revision:
0:3f3dd929e3e5
Commit before publish

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:3f3dd929e3e5 1 #ifndef _SPI_IS25LQ032B_H_
Rhyme 0:3f3dd929e3e5 2 #define _SPI_IS25LQ032B_H_
Rhyme 0:3f3dd929e3e5 3
Rhyme 0:3f3dd929e3e5 4 #include "mbed.h"
Rhyme 0:3f3dd929e3e5 5
Rhyme 0:3f3dd929e3e5 6 /** SPI_IS25LQ032B ISSI 3V-QUAD SERIAL FLASH MEMORY MULTI-I/O SPI
Rhyme 0:3f3dd929e3e5 7 * Data Sheet: http://www.issi.com/WW/pdf/25LQ080B-016B-032B.pdf
Rhyme 0:3f3dd929e3e5 8 */
Rhyme 0:3f3dd929e3e5 9
Rhyme 0:3f3dd929e3e5 10 class SPI_IS25LQ032B
Rhyme 0:3f3dd929e3e5 11 {
Rhyme 0:3f3dd929e3e5 12 public:
Rhyme 0:3f3dd929e3e5 13 /**
Rhyme 0:3f3dd929e3e5 14 * ISSI 3V-QUAD SERIAL FLASH MEMORY MULTI-I/O SPI constructor
Rhyme 0:3f3dd929e3e5 15 *
Rhyme 0:3f3dd929e3e5 16 * @param mosi SPI_MOSI pin
Rhyme 0:3f3dd929e3e5 17 * @param miso SPI_MISO pin
Rhyme 0:3f3dd929e3e5 18 * @param sclk SPI_CLK pin
Rhyme 0:3f3dd929e3e5 19 * @param cs SPI_CS pin
Rhyme 0:3f3dd929e3e5 20 */
Rhyme 0:3f3dd929e3e5 21 SPI_IS25LQ032B(PinName mosi, PinName miso, PinName sclk, PinName cs) ;
Rhyme 0:3f3dd929e3e5 22
Rhyme 0:3f3dd929e3e5 23 /// Destructor
Rhyme 0:3f3dd929e3e5 24 ~SPI_IS25LQ032B() ;
Rhyme 0:3f3dd929e3e5 25
Rhyme 0:3f3dd929e3e5 26 /// write enable
Rhyme 0:3f3dd929e3e5 27 void writeEnable(void) ;
Rhyme 0:3f3dd929e3e5 28
Rhyme 0:3f3dd929e3e5 29 /// write disable
Rhyme 0:3f3dd929e3e5 30 void writeDisable(void) ;
Rhyme 0:3f3dd929e3e5 31
Rhyme 0:3f3dd929e3e5 32 /// read status register
Rhyme 0:3f3dd929e3e5 33 uint8_t readStatus(void) ;
Rhyme 0:3f3dd929e3e5 34
Rhyme 0:3f3dd929e3e5 35 /** write status register
Rhyme 0:3f3dd929e3e5 36 *
Rhyme 0:3f3dd929e3e5 37 * @param uint8_t newStatus new register value
Rhyme 0:3f3dd929e3e5 38 */
Rhyme 0:3f3dd929e3e5 39 void writeStatus(uint8_t newStatus) ;
Rhyme 0:3f3dd929e3e5 40
Rhyme 0:3f3dd929e3e5 41 /// read function register
Rhyme 0:3f3dd929e3e5 42 uint8_t readFunc(void) ;
Rhyme 0:3f3dd929e3e5 43
Rhyme 0:3f3dd929e3e5 44 /// write fucntion register
Rhyme 0:3f3dd929e3e5 45 void writeFunc(uint8_t newValue) ;
Rhyme 0:3f3dd929e3e5 46
Rhyme 0:3f3dd929e3e5 47 /** program page
Rhyme 0:3f3dd929e3e5 48 *
Rhyme 0:3f3dd929e3e5 49 * @param int addr start address
Rhyme 0:3f3dd929e3e5 50 * @param uint8_t *data data buffer address
Rhyme 0:3f3dd929e3e5 51 * @param int numData number of data to be written (max 256)
Rhyme 0:3f3dd929e3e5 52 */
Rhyme 0:3f3dd929e3e5 53 void programPage(int addr, uint8_t *data, int numData) ;
Rhyme 0:3f3dd929e3e5 54
Rhyme 0:3f3dd929e3e5 55 /// chip erase
Rhyme 0:3f3dd929e3e5 56 void chipErase(void) ;
Rhyme 0:3f3dd929e3e5 57
Rhyme 0:3f3dd929e3e5 58 uint8_t read8(int addr) ;
Rhyme 0:3f3dd929e3e5 59 void write8(int addr, uint8_t data) ;
Rhyme 0:3f3dd929e3e5 60
Rhyme 0:3f3dd929e3e5 61 SPI m_spi;
Rhyme 0:3f3dd929e3e5 62 DigitalOut m_cs ;
Rhyme 0:3f3dd929e3e5 63 int _mode ;
Rhyme 0:3f3dd929e3e5 64
Rhyme 0:3f3dd929e3e5 65 private:
Rhyme 0:3f3dd929e3e5 66 } ;
Rhyme 0:3f3dd929e3e5 67 #endif // _SPI_IS25LQ032B_H_