Test Program for AT241024. Byte R/W, Page R/W
Dependencies: AT24C1024 mbed-rtos mbed
main.cpp@4:015c1e2a3ae2, 2017-01-06 (annotated)
- 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?
User | Revision | Line number | New 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 | } |