
SPI EEPROM Nucleo F767ZI 25LC1024 Serial Read Write Erase
main.cpp@0:f9b337f472e3, 2018-06-01 (annotated)
- 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?
User | Revision | Line number | New 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 | } |