Hello program for the FM25W256 library

Dependencies:   FM25W256 mbed

Files at this revision

API Documentation at this revision

Comitter:
MACRUM
Date:
Fri Mar 04 13:48:22 2016 +0000
Child:
1:be908b1aafe6
Commit message:
Initial commit

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Mar 04 13:48:22 2016 +0000
@@ -0,0 +1,94 @@
+#include "mbed.h"
+
+Serial pc(USBTX, USBRX);
+SPI fram(dp2, dp1, dp6);
+DigitalOut _cs(dp18);
+
+#define CMD_WREN   0x06
+#define CMD_WRDI   0x04
+#define CMD_RDSR   0x05
+#define CMD_WRSR   0x01
+#define CMD_READ   0x03
+#define CMD_WRITE  0x02
+
+void write_byte(uint16_t address, uint8_t data)
+{
+    _cs = 0;
+    fram.write(CMD_WREN);
+    _cs = 1;
+
+    _cs = 0;
+    fram.write(CMD_WRITE);
+    fram.write(address >> 8);
+    fram.write(address & 0xFF);
+    fram.write(data & 0xFF);
+    _cs = 1;
+}
+
+uint8_t read_byte(uint16_t address)
+{
+    uint8_t data;
+
+    _cs = 0;
+    fram.write(CMD_READ);
+    fram.write(address >> 8);
+    fram.write(address & 0xFF);
+    data = fram.write(0);
+    _cs = 1;
+
+    return data;
+}
+
+void read_bytes(uint16_t address, uint8_t *buf, uint16_t size)
+{
+    _cs = 0;
+    fram.write(CMD_READ);
+    fram.write(address >> 8);
+    fram.write(address & 0xFF);
+    while (size--) {
+        *buf++ = fram.write(0);
+    }
+    _cs = 1;
+}
+
+
+void read_test()
+{
+    uint16_t adrs = 0;
+    for(int i=0; i<16; i++) {
+        pc.printf("0x%04X : ", i * 16);
+        for(int j=0; j<16; j++) {
+            //pc.printf("%02X ", fram.write(0));
+            pc.printf("%02X ", read_byte(adrs++));
+        }
+        pc.printf("\n");
+    }
+}
+    
+void write_test()
+{
+    for(int i=0; i<256; i++) {
+        write_byte(i, i);
+    }
+}
+
+int main()
+{
+    fram.format(8, 0);
+    fram.frequency(20000000);
+    _cs = 1;
+
+    pc.printf("\nFM25W256 test program - write test? (y/n) ");
+    if (pc.getc() == 'y') {
+        write_test();
+    }
+
+    pc.printf("\nFM25W256 test program - read test? (y/n) ");
+    if (pc.getc() == 'y') {
+        pc.printf("\n");
+        read_test();
+    }
+
+    while(1) {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Mar 04 13:48:22 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/87f2f5183dfb
\ No newline at end of file