SPI EEPROM Nucleo F767ZI 25LC1024 Serial Read Write Erase

Dependencies:   EE25LC1024

Committer:
shivanandgowdakr
Date:
Fri Jun 01 12:57:29 2018 +0000
Revision:
0:f9b337f472e3
SPI EEPROM Nucleo F767ZI  25LC1024 Serial Read Write Erase

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shivanandgowdakr 0:f9b337f472e3 1
shivanandgowdakr 0:f9b337f472e3 2 // SPI Single IO NOR eeprom Library for Nucleo F767ZI Interfacing
shivanandgowdakr 0:f9b337f472e3 3
shivanandgowdakr 0:f9b337f472e3 4
shivanandgowdakr 0:f9b337f472e3 5
shivanandgowdakr 0:f9b337f472e3 6 #include "mbed.h"
shivanandgowdakr 0:f9b337f472e3 7 #include "EE25LC1024.h"
shivanandgowdakr 0:f9b337f472e3 8 #include <string>
shivanandgowdakr 0:f9b337f472e3 9
shivanandgowdakr 0:f9b337f472e3 10 Serial pc(USBTX, USBRX); // tx, rx
shivanandgowdakr 0:f9b337f472e3 11 DigitalOut WP(D7);
shivanandgowdakr 0:f9b337f472e3 12 int main()
shivanandgowdakr 0:f9b337f472e3 13 {
shivanandgowdakr 0:f9b337f472e3 14
shivanandgowdakr 0:f9b337f472e3 15 char str2[24] = {0};
shivanandgowdakr 0:f9b337f472e3 16 char str3[24] = {0};
shivanandgowdakr 0:f9b337f472e3 17 char str4[24] = {0};
shivanandgowdakr 0:f9b337f472e3 18
shivanandgowdakr 0:f9b337f472e3 19
shivanandgowdakr 0:f9b337f472e3 20 WP=1;
shivanandgowdakr 0:f9b337f472e3 21 EE25LC1024 eeprom(PA_7, PA_6, PA_5, PA_4);
shivanandgowdakr 0:f9b337f472e3 22 pc.printf("SPI init done\r\n\r\n");
shivanandgowdakr 0:f9b337f472e3 23
shivanandgowdakr 0:f9b337f472e3 24 // Read Identification information Related to chip.
shivanandgowdakr 0:f9b337f472e3 25
shivanandgowdakr 0:f9b337f472e3 26 int ID = eeprom.ReleaseDPD_ReadSign();
shivanandgowdakr 0:f9b337f472e3 27 printf("ID and Signature is :%d",ID);
shivanandgowdakr 0:f9b337f472e3 28
shivanandgowdakr 0:f9b337f472e3 29 wait(1);
shivanandgowdakr 0:f9b337f472e3 30 // Reading eeprom Memory Status Register contents.
shivanandgowdakr 0:f9b337f472e3 31
shivanandgowdakr 0:f9b337f472e3 32
shivanandgowdakr 0:f9b337f472e3 33
shivanandgowdakr 0:f9b337f472e3 34 eeprom.readStream(0x00, str2, 23);
shivanandgowdakr 0:f9b337f472e3 35 pc.printf("After Read 1 String Here: %s\r\n",str2);
shivanandgowdakr 0:f9b337f472e3 36 eeprom.readStream(23, str4, 23);
shivanandgowdakr 0:f9b337f472e3 37 pc.printf("After Read 2 String Here: %s\r\n",str2);
shivanandgowdakr 0:f9b337f472e3 38 eeprom.readStream(46, str3, 23);
shivanandgowdakr 0:f9b337f472e3 39 pc.printf("After Read 3 String Here: %s\r\n",str2);
shivanandgowdakr 0:f9b337f472e3 40
shivanandgowdakr 0:f9b337f472e3 41 // write a stream of characters to arbitrary address 0x168
shivanandgowdakr 0:f9b337f472e3 42 char stri[] = "Shivanand Gowda Ramaiah";
shivanandgowdakr 0:f9b337f472e3 43
shivanandgowdakr 0:f9b337f472e3 44 pc.printf("Writing String Here: %s\r\n",stri);
shivanandgowdakr 0:f9b337f472e3 45 eeprom.writeStream(0x00, stri, 23); //Writing Strings in three Differnt addresses.
shivanandgowdakr 0:f9b337f472e3 46 eeprom.writeStream(23, stri, 23);
shivanandgowdakr 0:f9b337f472e3 47 eeprom.writeStream(46, stri, 23);
shivanandgowdakr 0:f9b337f472e3 48
shivanandgowdakr 0:f9b337f472e3 49 //
shivanandgowdakr 0:f9b337f472e3 50 // uint8_t a=eeprom.readRegister();
shivanandgowdakr 0:f9b337f472e3 51 // read stream from 0x168
shivanandgowdakr 0:f9b337f472e3 52
shivanandgowdakr 0:f9b337f472e3 53 pc.printf("Before String Here: %s\r\n",str2);
shivanandgowdakr 0:f9b337f472e3 54 eeprom.readStream(0x00, str2, 23);
shivanandgowdakr 0:f9b337f472e3 55 pc.printf("After Read 1 String Here: %s\r\n",str2);
shivanandgowdakr 0:f9b337f472e3 56 eeprom.readStream(23, str4, 23);
shivanandgowdakr 0:f9b337f472e3 57 pc.printf("After Read 2 String Here: %s\r\n",str2);
shivanandgowdakr 0:f9b337f472e3 58 eeprom.readStream(46, str3, 23);
shivanandgowdakr 0:f9b337f472e3 59 pc.printf("After Read 3 String Here: %s\r\n",str2);
shivanandgowdakr 0:f9b337f472e3 60 //
shivanandgowdakr 0:f9b337f472e3 61 // for(int i=0; i<20;i++)
shivanandgowdakr 0:f9b337f472e3 62 // pc.printf("Printing byte by byte %c\r\n",str2[i]);
shivanandgowdakr 0:f9b337f472e3 63
shivanandgowdakr 0:f9b337f472e3 64
shivanandgowdakr 0:f9b337f472e3 65 // eeprom.sectorErase(0x00);
shivanandgowdakr 0:f9b337f472e3 66 // while(1) {
shivanandgowdakr 0:f9b337f472e3 67 // uint8_t busy=eeprom.checkIfBusy();
shivanandgowdakr 0:f9b337f472e3 68 // if(busy==0) {
shivanandgowdakr 0:f9b337f472e3 69 // pc.printf("Not Busy any More \r\n");
shivanandgowdakr 0:f9b337f472e3 70 // break;
shivanandgowdakr 0:f9b337f472e3 71 // } else if (busy==1)
shivanandgowdakr 0:f9b337f472e3 72 // pc.printf("Busy Now \r\n");
shivanandgowdakr 0:f9b337f472e3 73 // }
shivanandgowdakr 0:f9b337f472e3 74
shivanandgowdakr 0:f9b337f472e3 75 pc.printf("Exited from program \r\n");
shivanandgowdakr 0:f9b337f472e3 76 return 0;
shivanandgowdakr 0:f9b337f472e3 77
shivanandgowdakr 0:f9b337f472e3 78 }