Gorazd Kovacic
/
AT45_spi_flash_example
ported for ff-lpc546xx
main.cpp@1:1f267b9c975a, 2019-05-27 (annotated)
- Committer:
- gorazdko
- Date:
- Mon May 27 11:06:33 2019 +0000
- Revision:
- 1:1f267b9c975a
- Parent:
- 0:cb29c01320b1
port for l-tek lpc546xx
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maclobdell | 0:cb29c01320b1 | 1 | #include "mbed.h" |
maclobdell | 0:cb29c01320b1 | 2 | |
maclobdell | 0:cb29c01320b1 | 3 | #include "AT45.h" |
maclobdell | 0:cb29c01320b1 | 4 | |
gorazdko | 1:1f267b9c975a | 5 | /* Tested on L-Tek FF_LPC546xx */ |
maclobdell | 0:cb29c01320b1 | 6 | |
gorazdko | 1:1f267b9c975a | 7 | #define PIN_MOSI P0_8 |
gorazdko | 1:1f267b9c975a | 8 | #define PIN_MISO P0_9 |
gorazdko | 1:1f267b9c975a | 9 | #define PIN_SCK P0_6 |
gorazdko | 1:1f267b9c975a | 10 | #define PIN_CS P0_7 |
gorazdko | 1:1f267b9c975a | 11 | |
gorazdko | 1:1f267b9c975a | 12 | |
gorazdko | 1:1f267b9c975a | 13 | DigitalOut led1(LED1); |
gorazdko | 1:1f267b9c975a | 14 | |
gorazdko | 1:1f267b9c975a | 15 | SPI spi(PIN_MOSI, PIN_MISO, PIN_SCK); // mosi, miso, sclk |
gorazdko | 1:1f267b9c975a | 16 | AT45 spif(&spi, PIN_CS); |
maclobdell | 0:cb29c01320b1 | 17 | |
maclobdell | 0:cb29c01320b1 | 18 | DigitalOut myled(LED1); |
maclobdell | 0:cb29c01320b1 | 19 | |
maclobdell | 0:cb29c01320b1 | 20 | int main() { |
maclobdell | 0:cb29c01320b1 | 21 | |
maclobdell | 0:cb29c01320b1 | 22 | printf("spif test\n\r"); |
gorazdko | 1:1f267b9c975a | 23 | |
gorazdko | 1:1f267b9c975a | 24 | |
gorazdko | 1:1f267b9c975a | 25 | printf("id: %d\n\r", spif.id()); |
maclobdell | 0:cb29c01320b1 | 26 | |
maclobdell | 0:cb29c01320b1 | 27 | printf("spif size: %d bytes\n\r", spif.device_size()); |
maclobdell | 0:cb29c01320b1 | 28 | printf("spif page erase size: %d bytes\n\r", spif.pagesize()); |
maclobdell | 0:cb29c01320b1 | 29 | printf("spif pages: %d\n\r", spif.pages()); |
maclobdell | 0:cb29c01320b1 | 30 | printf("spif block erase size: 4096 bytes\n\r"); |
maclobdell | 0:cb29c01320b1 | 31 | printf("spif blocks: %d\n\r", spif.blocks()); |
maclobdell | 0:cb29c01320b1 | 32 | printf("id: %d\n\r", spif.id()); |
maclobdell | 0:cb29c01320b1 | 33 | |
maclobdell | 0:cb29c01320b1 | 34 | int pagesize = spif.pagesize(); |
maclobdell | 0:cb29c01320b1 | 35 | |
maclobdell | 0:cb29c01320b1 | 36 | // Write "Hello World!" to a block |
maclobdell | 0:cb29c01320b1 | 37 | char *buffer = (char*) malloc(pagesize); |
maclobdell | 0:cb29c01320b1 | 38 | sprintf(buffer, "Hello World!\n"); |
maclobdell | 0:cb29c01320b1 | 39 | spif.page_erase(3); |
maclobdell | 0:cb29c01320b1 | 40 | spif.write_page(buffer, 3); |
maclobdell | 0:cb29c01320b1 | 41 | |
maclobdell | 0:cb29c01320b1 | 42 | char *buffer2 = (char*) malloc(pagesize); |
maclobdell | 0:cb29c01320b1 | 43 | // Read back what was stored |
maclobdell | 0:cb29c01320b1 | 44 | spif.read_page(buffer2, 3); |
maclobdell | 0:cb29c01320b1 | 45 | |
maclobdell | 0:cb29c01320b1 | 46 | printf("%s", buffer2); |
maclobdell | 0:cb29c01320b1 | 47 | |
maclobdell | 0:cb29c01320b1 | 48 | while(1) { |
maclobdell | 0:cb29c01320b1 | 49 | myled = 1; |
maclobdell | 0:cb29c01320b1 | 50 | wait(0.2); |
maclobdell | 0:cb29c01320b1 | 51 | myled = 0; |
maclobdell | 0:cb29c01320b1 | 52 | wait(0.2); |
maclobdell | 0:cb29c01320b1 | 53 | |
maclobdell | 0:cb29c01320b1 | 54 | } |
maclobdell | 0:cb29c01320b1 | 55 | } |