Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
M95M02D.h
00001 // M95M02D.h 00002 00003 #ifndef M95M02D_H 00004 #define M95M02D_H 00005 00006 #include "mbed.h" 00007 #include <string> 00008 00009 #define SPI_FREQ 5000000 //Change SPI Frequency Here 00010 #define SPI_MODE 0 // SPI Mode can be 0 or 3 . see data sheet 00011 #define SPI_NBIT 8 // Number of bits 8. 00012 00013 00014 00015 #define DUMMY_ADDR 0x00 00016 #define WAIT_TIME 1 00017 00018 #define ADDR_BMASK3 0xff000000 00019 #define ADDR_BMASK2 0x00ff0000 00020 #define ADDR_BMASK1 0x0000ff00 00021 #define ADDR_BMASK0 0x000000ff 00022 00023 #define ADDR_BSHIFT3 24 00024 #define ADDR_BSHIFT2 16 00025 #define ADDR_BSHIFT1 8 00026 #define ADDR_BSHIFT0 0 00027 00028 00029 #define READ 0x03 //0000 0011 Read data from memory array beginning at selected address 00030 #define WRITE 0x02 //0000 0010 Write data to memory array beginning at selected address 00031 #define WREN 0x06 //0000 0110 Set the write enable latch (enable write operations) 00032 #define WRDI 0x04 //0000 0100 Reset the write enable latch (disable write operations) 00033 #define RDSR 0x05 //0000 0101 Read STATUS register 00034 #define WRSR 0x01 //0000 0001 Write STATUS register 00035 #define PE 0x42 //0100 0010 Page Erase – erase one page in memory array 00036 #define SE 0xD8 //1101 1000 Sector Erase – erase one sector in memory array 00037 #define CE 0xC7 //1100 0111 Chip Erase – erase all sectors in memory array 00038 #define ReadID 0x83 //1000 0011 Read id or electronic signature 00039 #define WriteID 0x82 //1000 0011 Write id or electronic signature 00040 00041 #define DUMMYBYTE 0x00 //Dummy byte for Read Operation 00042 00043 class M95M02D: public SPI { 00044 public: 00045 M95M02D(PinName mosi, PinName miso, PinName sclk, PinName cs,PinName WP,PinName HOLD); 00046 00047 00048 00049 00050 int readByte(int addr); // takes a 24-bit (3 bytes) address and returns the data (1 byte) at that location 00051 void readStream(int addr, char* buf, int count); // takes a 24-bit address, reads count bytes, and stores results in buf 00052 int ReadSignature(void); 00053 void writeByte(int addr, int data); // takes a 24-bit (3 bytes) address and a byte of data to write at that location 00054 void writeStream(int addr, char* buf, int count); // write count bytes of data from buf to memory, starting at addr 00055 void writeString(int add, string str); 00056 void writePage(int pageNo,char *buf,int count); 00057 //erase all data on chip 00058 uint8_t readRegister(); 00059 uint8_t checkIfBusy(); // Check if IC is bury writing or erasing 00060 void writeRegister(uint8_t regValue); // Write status register or configuration register 00061 long readLong(int address); // Read long int number 00062 void writeLong(int addr, long value); // Write Long Integer Number 00063 private: 00064 void writeEnable(); // write enable 00065 void writeDisable(); // write disable 00066 void chipEnable(); // chip enable 00067 void chipDisable(); // chip disable 00068 void EnableWriteProtect(); 00069 void DisableWriteProtect(); 00070 void Hold_ReadWrite(); 00071 void ReleaseHold_ReadWrite(); 00072 00073 00074 // SPI _spi; 00075 DigitalOut _cs; 00076 DigitalOut _wp; 00077 DigitalOut _hold; 00078 00079 }; 00080 00081 #endif
Generated on Wed Jul 20 2022 12:41:48 by
1.7.2