SPI NOR Flash Single IO Nucleo F767ZI Helloworld 1Gb NOR Flash S70FL01GS

Dependencies:   S70FL01GS mbed

Fork of SPI_FLASH_MEM by Shivanand Gowda

Revision:
2:f62261b0ef55
Parent:
0:21b36798fd00
Child:
4:7f58f3f34f3e
--- a/main.cpp	Wed Jun 07 14:08:05 2017 +0000
+++ b/main.cpp	Sat May 19 10:00:35 2018 +0000
@@ -1,14 +1,84 @@
+
+// SPI Single IO NOR Flash Library for Nucleo F767ZI Interfacing
+
+
+
 #include "mbed.h"
- 
-SPI device(SPI_MOSI, SPI_MISO, SPI_SCK);
- 
-int main() {
-    int i = 0;
+#include "S25FL256S.h"
+#include <string>
+
+Serial pc(USBTX, USBRX); // tx, rx
+
+int main()
+{
+    S25FL256S flash(PA_7, PA_6, PA_5, PA_4);
+    pc.printf("SPI init done\r\n\r\n");
+    uint8_t buffer[100]= {0};
+    // Read Identification information Related to chip.
+
+    flash.Read_Identification(buffer);
+    for(int i=0; i<80; i++) {
+        printf(" ID is %X\r\n",buffer[i]);
+    }
+
+    wait(1);
+    // Reading Flash Memory Status Register1 contents.
+
+    uint8_t STATUS_REGISTER1= flash.readRegister();
+    pc.printf(" STATUS REGISTER1 CONTENTS:%X\r\n\r\n",STATUS_REGISTER1);
+
+    wait(1);
+
+    flash.clearRegister();
+
+    uint8_t Read_Value=flash.readRegister();
+    pc.printf(" reading value here %s\r\n\n",Read_Value);
+
+    STATUS_REGISTER1= flash.readRegister();
+    pc.printf(" STATUS REGISTER1 CONTENTS:%X\r\n\r\n",STATUS_REGISTER1);
+    wait(1);
+
+    printf("Read_Value   : %X",Read_Value);
+
+// write a stream of characters to arbitrary address 0x168
+    char stri[] = "Shivanand Gowda Ramaiah";
+
+    pc.printf("Writing String Here: %s\r\n",stri);
+
+
+    flash.writeStream(0x00, stri, 22); //Writing Strings in three Differnt addresses.
+    flash.writeStream(22, stri, 22);
+    flash.writeStream(44, stri, 22);
+    
+//   
+//    uint8_t a=flash.readRegister();
+//    read stream from 0x168
+    char str2[22] = {0};
+    char str3[22] = {0};
+    char str4[22] = {0};
+    pc.printf("Before String Here: %s\r\n",str2);
+    flash.readStream(0x00, str2, 22);
+    pc.printf("After Read 1 String Here: %s\r\n",str2);
+    flash.readStream(22, str4, 22);
+    pc.printf("After Read 2 String Here: %s\r\n",str2);
+    flash.readStream(44, str3, 22);
+    pc.printf("After Read 3 String Here: %s\r\n",str2);
+//
+//    for(int i=0; i<20;i++)
+//    pc.printf("Printing byte by byte %c\r\n",str2[i]);
+
+
+    flash.sectorErase(0x00);
     while(1) {
-        device.write(0x55);
-        device.write(i++);
-        device.write(0xE0);
-        wait_us(50);
+        uint8_t busy=flash.checkIfBusy();
+        if(busy==0) {
+            pc.printf("Not  Busy any More \r\n");
+            break;
+        } else if (busy==1)
+            pc.printf("Busy Now \r\n");
     }
+
+    pc.printf("Exited from program  \r\n");
+    return 0;
+
 }
- 
\ No newline at end of file