SPI Flash Memory ST M25PE20

Dependents:   testSPI_M25PE20

my SPI libirary for ST M25PE20.

I found the data sheet at

http://pdf1.alldatasheet.jp/datasheet-pdf/view/149113/STMICROELECTRONICS/M25PE20.html

SPI_M25PE20.h

Committer:
Rhyme
Date:
2014-12-25
Revision:
0:580b55070577

File content as of revision 0:580b55070577:

#ifndef _SPI_M25PE20_H_
#define _SPI_M25PE20_H_

#include "mbed.h"

/**
 * SPI_M25PE20 SPI-Flash Memory
 * 1 and 2 Mbit, Low Voltage, Page-Erasable Serial Flash Memories
 * with Byte-Alterability, 33 MHz SPI Bus, Standard Pin-out
 *
 */

class SPI_M25PE20 
{
public:
 /**
 * ST M25PE20 SPI-Flash Memory
 *
 * @param mosi SPI_MOSI pin
 * @param miso SPI_MISO pin
 * @param sclk SPI_CLK pin
 * @param cs   SPI_CS  pin
 */
 SPI_M25PE20(PinName mosi, PinName miso, PinName sclk, PinName cs) ;
 
 ~SPI_M25PE20() ;

 /*
  * some member functions here (yet to be written)
  */

 SPI m_spi;
 DigitalOut m_cs ;
 int _mode ;
 
/// write enable
  void writeEnable(void) ;
  
/// write disable
  void writeDisable(void) ;
  
/** read status register
 *
 * @returns uint8_t status register value
 */
  uint8_t readStatus(void) ;
    
/** program page
 *
 * @param int addr start address
 * @param uint8_t *data data buffer
 * @param int numData the number of data to be written
 */
  void programPage(int addr, uint8_t *data, int numData) ;
  
  // for ST M25PE20 and M25PE10
/** sector erase
 *
 * @param int addr specify the sector to be erased
 */
  void sectorErase(int addr) ;
  
/** page erase
 *
 * @param int addr specify the page to be erased
 */
  void pageErase(int addr) ;
  
  uint8_t read8(int addr) ;
  void write8(int addr, uint8_t data) ;
 
  private:
} ;
#endif // _SPI_M25PE20_H_