128K Serial EEPROM read write erase chip erase functions SPI EEPROM Nucleo F767ZI
Diff: EE25LC1024.h
- Revision:
- 0:81848bf6dd4a
- Child:
- 1:c389d5f4913d
- Child:
- 2:156c427681f0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/EE25LC1024.h Fri Jun 01 12:54:02 2018 +0000
@@ -0,0 +1,74 @@
+// EE25LC1024.h
+
+#ifndef EE25LC1024_H
+#define EE25LC1024_H
+
+#include "mbed.h"
+#include <string>
+
+#define SPI_FREQ 5000000 //Change SPI Frequency Here
+#define SPI_MODE 0 // SPI Mode can be 0 or 3 . see data sheet
+#define SPI_NBIT 8 // Number of bits 8.
+
+
+
+#define DUMMY_ADDR 0x00
+#define WAIT_TIME 1
+
+#define ADDR_BMASK3 0xff000000
+#define ADDR_BMASK2 0x00ff0000
+#define ADDR_BMASK1 0x0000ff00
+#define ADDR_BMASK0 0x000000ff
+
+#define ADDR_BSHIFT3 24
+#define ADDR_BSHIFT2 16
+#define ADDR_BSHIFT1 8
+#define ADDR_BSHIFT0 0
+
+
+#define READ 0x03 //0000 0011 Read data from memory array beginning at selected address
+#define WRITE 0x02 //0000 0010 Write data to memory array beginning at selected address
+#define WREN 0x06 //0000 0110 Set the write enable latch (enable write operations)
+#define WRDI 0x04 //0000 0100 Reset the write enable latch (disable write operations)
+#define RDSR 0x05 //0000 0101 Read STATUS register
+#define WRSR 0x01 //0000 0001 Write STATUS register
+#define PE 0x42 //0100 0010 Page Erase – erase one page in memory array
+#define SE 0xD8 //1101 1000 Sector Erase – erase one sector in memory array
+#define CE 0xC7 //1100 0111 Chip Erase – erase all sectors in memory array
+#define RDID 0xAB //1010 1011 Release from Deep power-down and read electronic signature
+#define DPD 0xB9 //1011 1001 Deep Power-Down mode
+#define DUMMYBYTE 0x00 //Dummy byte for Read Operation
+
+class EE25LC1024: public SPI {
+public:
+ EE25LC1024(PinName mosi, PinName miso, PinName sclk, PinName cs);
+
+ void deepPowerDown(void);
+
+
+ int readByte(int addr); // takes a 24-bit (3 bytes) address and returns the data (1 byte) at that location
+ void readStream(int addr, char* buf, int count); // takes a 24-bit address, reads count bytes, and stores results in buf
+ int ReleaseDPD_ReadSign(void);
+ void writeByte(int addr, int data); // takes a 24-bit (3 bytes) address and a byte of data to write at that location
+ void writeStream(int addr, char* buf, int count); // write count bytes of data from buf to memory, starting at addr
+ void writeString(int add, string str);
+ void sectorErase(int addr);
+ void pageErase(int addr);
+ void chipErase(); //erase all data on chip
+ uint8_t readRegister();
+ uint8_t checkIfBusy(); // Check if IC is bury writing or erasing
+ void writeRegister(uint8_t regValue); // Write status register or configuration register
+ long raedLong(int address); // Read long int number
+ void writeLong(int addr, long value); // Write Long Integer Number
+private:
+ void writeEnable(); // write enable
+ void writeDisable(); // write disable
+ void chipEnable(); // chip enable
+ void chipDisable();
+ // chip disable
+
+ // SPI _spi;
+ DigitalOut _cs;
+};
+
+#endif
\ No newline at end of file