Implementation of reading and writing to AT25512N-SH SPI-Serial EEPROM. Use it in your own risk. Free software.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 /**
00003 *   Writing and reading from Serial Flash memory
00004 *   AT25512N-SH
00005 *   http://ww1.microchip.com/downloads/en/DeviceDoc/AT25512-SPI-Serial-EEPROM-512-Kbits-20006218A.pdf
00006 *   Author : Mariwan jalal
00007 */
00008 
00009 SPI device(SPI_MOSI, SPI_MISO, SPI_SCK);
00010 
00011 DigitalOut CS(SPI_CS);
00012 
00013 Serial pc(USBTX, USBRX);
00014 void read()
00015 {
00016     CS=1;
00017     int v=0;
00018     for(int i=0x200; i<0x210; i++) {
00019         wait_ms(1);
00020         CS=0;
00021         device.write(0x03);
00022         device.write((i&0xff00)>>8);
00023         device.write(i&0xff);
00024         v=device.write(0);///dummy
00025         CS=1;
00026         pc.printf("Results for i=%i : %x\n",i,v);
00027     }
00028 
00029 }
00030 void write()
00031 {
00032     for(int i=0x200; i<0x0210; i++) {
00033         CS=1;
00034         CS=0;
00035         wait_ms(1);
00036         device.write(0x01);
00037         device.write(0x00);
00038         CS=1;
00039         CS=0;
00040         device.write(0x6);
00041         CS=1;
00042         CS=0;
00043         device.write(0x02);
00044         device.write((i&0xff00)>>8);
00045         device.write(i&0xff);
00046         device.write((0xDA));
00047         CS=1;
00048         pc.printf("Address= %x %x\n",((i&0xff00)>>8), (i&0xff));
00049     }
00050 
00051 }
00052 int main()
00053 {
00054     pc.printf("device Started\n");
00055     device.format(8, 0);
00056     device.frequency(1000000);
00057     pc.printf("START Write\n");
00058     write();
00059     pc.printf("START Read\n");
00060     read();
00061 }