Implementation of reading and writing to AT25512N-SH SPI-Serial EEPROM. Use it in your own risk. Free software.
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 }
Generated on Thu Jul 28 2022 00:13:01 by
1.7.2