test / demo program for the 25LCxxx_SPI library

Dependencies:   mbed

Committer:
hlipka
Date:
Wed Jan 26 22:15:15 2011 +0000
Revision:
0:9ae1fdfe973e
initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hlipka 0:9ae1fdfe973e 1 #include "mbed.h"
hlipka 0:9ae1fdfe973e 2
hlipka 0:9ae1fdfe973e 3 #include "Ser25lcxxx.h"
hlipka 0:9ae1fdfe973e 4
hlipka 0:9ae1fdfe973e 5 void dumpLine(char* s, int len)
hlipka 0:9ae1fdfe973e 6 {
hlipka 0:9ae1fdfe973e 7 for (int i=0;i<len;i++)
hlipka 0:9ae1fdfe973e 8 {
hlipka 0:9ae1fdfe973e 9 printf("%X ",s[i]);
hlipka 0:9ae1fdfe973e 10 }
hlipka 0:9ae1fdfe973e 11 printf("\n");
hlipka 0:9ae1fdfe973e 12 }
hlipka 0:9ae1fdfe973e 13
hlipka 0:9ae1fdfe973e 14 void dump(char *s, int len)
hlipka 0:9ae1fdfe973e 15 {
hlipka 0:9ae1fdfe973e 16 int i=0;
hlipka 0:9ae1fdfe973e 17 while (i<len)
hlipka 0:9ae1fdfe973e 18 {
hlipka 0:9ae1fdfe973e 19 if (i+16<len)
hlipka 0:9ae1fdfe973e 20 dumpLine(s+i,16);
hlipka 0:9ae1fdfe973e 21 else
hlipka 0:9ae1fdfe973e 22 dumpLine(s+i,len-i);
hlipka 0:9ae1fdfe973e 23 i+=16;
hlipka 0:9ae1fdfe973e 24 }
hlipka 0:9ae1fdfe973e 25 }
hlipka 0:9ae1fdfe973e 26
hlipka 0:9ae1fdfe973e 27 int main() {
hlipka 0:9ae1fdfe973e 28 printf("******** [%s] *********\n",__TIME__);
hlipka 0:9ae1fdfe973e 29 // setup hardware
hlipka 0:9ae1fdfe973e 30 SPI spi(p5,p6,p7);
hlipka 0:9ae1fdfe973e 31 spi.format(8,3);
hlipka 0:9ae1fdfe973e 32 spi.frequency(1000000);
hlipka 0:9ae1fdfe973e 33 // /CS is connected to p9, chip,in question is a 25LC256 (32kx8, 64-byte page)
hlipka 0:9ae1fdfe973e 34 Ser25LCxxx flash(&spi, p9, 32768,64);
hlipka 0:9ae1fdfe973e 35
hlipka 0:9ae1fdfe973e 36 int len=128;
hlipka 0:9ae1fdfe973e 37
hlipka 0:9ae1fdfe973e 38 // dump initial memory content (first 2 pages)
hlipka 0:9ae1fdfe973e 39 char* r=flash.read(0,len);
hlipka 0:9ae1fdfe973e 40 dump(r,len);
hlipka 0:9ae1fdfe973e 41 printf("\n");
hlipka 0:9ae1fdfe973e 42
hlipka 0:9ae1fdfe973e 43 // write some stuff to the first and second page
hlipka 0:9ae1fdfe973e 44 char buf[64];
hlipka 0:9ae1fdfe973e 45 sprintf(buf,"******** [%s] *********\n",__TIME__);
hlipka 0:9ae1fdfe973e 46
hlipka 0:9ae1fdfe973e 47 bool b=flash.write(50,strlen(buf),buf);
hlipka 0:9ae1fdfe973e 48
hlipka 0:9ae1fdfe973e 49 // read written data back (first 2 pages)
hlipka 0:9ae1fdfe973e 50 r=flash.read(0,len);
hlipka 0:9ae1fdfe973e 51 dump(r,len);
hlipka 0:9ae1fdfe973e 52 printf("\n");
hlipka 0:9ae1fdfe973e 53
hlipka 0:9ae1fdfe973e 54 // clear first page, read first 2 pages back
hlipka 0:9ae1fdfe973e 55 flash.clearPage(0);
hlipka 0:9ae1fdfe973e 56 r=flash.read(0,len);
hlipka 0:9ae1fdfe973e 57 dump(r,len);
hlipka 0:9ae1fdfe973e 58 printf("\n");
hlipka 0:9ae1fdfe973e 59
hlipka 0:9ae1fdfe973e 60 // clear everything, read first 2 pages back
hlipka 0:9ae1fdfe973e 61 flash.clearMem();
hlipka 0:9ae1fdfe973e 62 r=flash.read(0,len);
hlipka 0:9ae1fdfe973e 63 dump(r,len);
hlipka 0:9ae1fdfe973e 64 printf("\n");
hlipka 0:9ae1fdfe973e 65
hlipka 0:9ae1fdfe973e 66 }