Macronix Low Power Serial NOR Flash in SPI mode.

Dependents:   MX25Rxx35F_Serial_NOR_Flash_Testbench MX25Rxx35F_Serial_NOR_Flash_Testbench Coragem_all_sensors 1_Test_Flash_ADC_RTT

SPI_MX25R.h

Committer:
alec1
Date:
2015-07-20
Revision:
1:8403da5975cb
Parent:
0:a16ad6f5c788
Child:
2:f72110475fec

File content as of revision 1:8403da5975cb:

#ifndef _SPI_MX25R_H_
#define _SPI_MX25R_H_

#include "mbed.h"

/**
 * SPI_MX25R SPI-Flash Memory
 * Macronix Serial Flash Low Power Memories
 */

class SPI_MX25R
{
public:
 /**
 * Macronix MX25R Low Power and Wide Vcc SPI-Flash Memory Family 
 *
 * @param SI/SIO0 SPI_MOSI pin
 * @param SO/SI01 SPI_MISO pin
 * @param SCLK    SPI_CLK pin
 * @param CSb     SPI_CS  pin
 */
 SPI_MX25R(PinName mosi, PinName miso, PinName sclk, PinName cs) ;
 
 ~SPI_MX25R() ;

 SPI m_spi;
 DigitalOut m_cs ;
 int _mode ;
 
/// Write Enable
  void writeEnable(void) ;
  
/// Write Disable
  void writeDisable(void) ;
  
/// Reset Enable
  void resetEnable(void) ;
  
/// Reset 
  void reset(void) ;

/// Program or Erase Suspend
  void pgmersSuspend(void) ;
 
/// Program or Erase Resume
  void pgmersResume(void) ;

/// Enter Deep Power Down
  void deepPowerdown(void) ;

/// Set Burst Length 
  void setBurstlength(void) ;

/// Release from Read Enhanced Mode 
  void releaseReadenhaced(void) ;

/// No Operation 
  void noOperation(void) ;

/// Enter OTP Area 
  void enterSecureOTP(void) ;
 
/// Exit OTP Area 
  void exitSecureOTP(void) ;

/// Chip Erase
  void chipErase(void) ;
  
/// Write Status and Configuration Reg 1 and 2
  void writeStatusreg(int addr) ;
  
/** Page Program
 *
 * @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) ;
  
/** Sector Erase
 *
 * @param int addr specify the sector to be erased
 */
  void sectorErase(int addr) ;
  
  /** Block Erase
 *
 * @param int addr specify the sector to be erased
 */
  void blockErase(int addr) ;
  
  /** 32KB Block Erase
 *
 * @param int addr specify the sector to be erased
 */
  void blockErase32KB(int addr) ;
  
  /** Read Status Register
 *
 * @returns uint8_t status register value
 */
  uint8_t readStatus(void) ;
  
  /** Read ID
 *
 * @returns uint32_t Manufacturer ID, Mem Type, Device ID
 */
  uint32_t readID(void) ;
  
  /** Read Configuration Register
 *
 * @returns uint32_t configuration register value
 */
  uint32_t readConfig(void) ;
  uint8_t readSFDP(int addr) ;        
  uint8_t readFREAD(int addr) ; 
  uint8_t read8(int addr) ;
  void write8(int addr, uint8_t data) ;
  private:

} ;
#endif // _SPI_MX25R_H_