Test Program for AT241024. Byte R/W, Page R/W

Dependencies:   AT24C1024 mbed-rtos mbed

Committer:
ryood
Date:
Fri Jan 06 08:33:50 2017 +0000
Revision:
4:015c1e2a3ae2
Parent:
3:2265ade869a4
Add: Zero Clear

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 3:2265ade869a4 1 /*
ryood 3:2265ade869a4 2 * AT24C1024 Test
ryood 3:2265ade869a4 3 *
ryood 3:2265ade869a4 4 * mbed: Revision: 121
ryood 3:2265ade869a4 5 * mbed-rtos: Revision: 117
ryood 3:2265ade869a4 6 *
ryood 3:2265ade869a4 7 * 2016.11.25 Created
ryood 3:2265ade869a4 8 *
ryood 3:2265ade869a4 9 */
ryood 3:2265ade869a4 10
ryood 0:61561880f5ea 11 #include "mbed.h"
ryood 3:2265ade869a4 12 #include "rtos.h"
ryood 0:61561880f5ea 13 #include "AT24C1024.h"
ryood 0:61561880f5ea 14
ryood 0:61561880f5ea 15 I2C i2c(D14, D15); // SDA, SCL
ryood 0:61561880f5ea 16 AT24C1024 at24c1024(i2c); // Atmel 1Mbit EE-PROM
ryood 0:61561880f5ea 17
ryood 0:61561880f5ea 18 DigitalOut led1(LED1);
ryood 0:61561880f5ea 19
ryood 0:61561880f5ea 20 int main()
ryood 0:61561880f5ea 21 {
ryood 0:61561880f5ea 22 printf("\r\n*** AT24C1024 Test ***\r\n");
ryood 3:2265ade869a4 23
ryood 3:2265ade869a4 24 at24c1024.frequency(100000);
ryood 1:c671dcf90b11 25
ryood 1:c671dcf90b11 26 // Byte Read/Write
ryood 1:c671dcf90b11 27 //
ryood 0:61561880f5ea 28 uint8_t dt = 0x55;
ryood 0:61561880f5ea 29 printf("Byte Write: %02x\r\n", dt);
ryood 0:61561880f5ea 30 at24c1024.write(0, dt); // write addr=0 data=dt
ryood 0:61561880f5ea 31 wait_ms(5);
ryood 0:61561880f5ea 32 dt = at24c1024.read(0); // read addr=0
ryood 0:61561880f5ea 33 printf("Byte Read: %02x\r\n", dt);
ryood 0:61561880f5ea 34
ryood 1:c671dcf90b11 35 // Page Read/Write
ryood 1:c671dcf90b11 36 //
ryood 2:ba28083ac613 37 uint8_t eep_buf[258], r_eep_buf[258];
ryood 4:015c1e2a3ae2 38
ryood 4:015c1e2a3ae2 39 // Zero Clear
ryood 4:015c1e2a3ae2 40 for (int i = 0; i < 256; i++) {
ryood 4:015c1e2a3ae2 41 eep_buf[i] = 0;
ryood 4:015c1e2a3ae2 42 r_eep_buf[i] = 0xff;
ryood 4:015c1e2a3ae2 43 }
ryood 4:015c1e2a3ae2 44 printf("Page Write: Zero Clear\r\n");
ryood 4:015c1e2a3ae2 45 AT24C_STATUS status = at24c1024.write_page(0x1ff00, eep_buf, sizeof(eep_buf));
ryood 4:015c1e2a3ae2 46 wait_ms(5);
ryood 4:015c1e2a3ae2 47 printf("Status: %d\r\n", status);
ryood 4:015c1e2a3ae2 48 printf("Page Read:\r\n");
ryood 4:015c1e2a3ae2 49 status = at24c1024.read_page(0x1ff00, r_eep_buf, sizeof(r_eep_buf));
ryood 4:015c1e2a3ae2 50 printf("Status: %d\r\n", status);
ryood 4:015c1e2a3ae2 51 for (int i = 0; i < sizeof(r_eep_buf); i++) {
ryood 4:015c1e2a3ae2 52 printf("%d ", r_eep_buf[i]);
ryood 4:015c1e2a3ae2 53 }
ryood 4:015c1e2a3ae2 54 printf("\r\n");
ryood 4:015c1e2a3ae2 55
ryood 4:015c1e2a3ae2 56 // Set 0..255
ryood 1:c671dcf90b11 57 for (int i = 0; i < 256; i++) {
ryood 1:c671dcf90b11 58 eep_buf[i] = i;
ryood 2:ba28083ac613 59 r_eep_buf[i] = 0x00;
ryood 1:c671dcf90b11 60 }
ryood 1:c671dcf90b11 61 printf("Page Write: 0..255\r\n");
ryood 4:015c1e2a3ae2 62 status = at24c1024.write_page(0x1ff00, eep_buf, sizeof(eep_buf));
ryood 1:c671dcf90b11 63 wait_ms(5);
ryood 1:c671dcf90b11 64 printf("Status: %d\r\n", status);
ryood 1:c671dcf90b11 65 printf("Page Read:\r\n");
ryood 2:ba28083ac613 66 status = at24c1024.read_page(0x1ff00, r_eep_buf, sizeof(r_eep_buf));
ryood 1:c671dcf90b11 67 printf("Status: %d\r\n", status);
ryood 2:ba28083ac613 68 for (int i = 0; i < sizeof(r_eep_buf); i++) {
ryood 2:ba28083ac613 69 printf("%d ", r_eep_buf[i]);
ryood 1:c671dcf90b11 70 }
ryood 1:c671dcf90b11 71 printf("\r\n");
ryood 1:c671dcf90b11 72
ryood 0:61561880f5ea 73 while(1) {
ryood 1:c671dcf90b11 74 led1 = !led1;
ryood 1:c671dcf90b11 75 wait(0.2);
ryood 0:61561880f5ea 76 }
ryood 0:61561880f5ea 77 }