#include "piccolo_all.h"#include "piccolo_spi.h"Makródefiníciók | |
| #define | BLKSIZE 64 |
| #define | CMD_WRSR 0x01 |
| #define | CMD_WRITE 0x02 |
| #define | CMD_READ 0x03 |
| #define | CMD_WRDI 0x04 |
| #define | CMD_RDSR 0x05 |
| #define | CMD_WREN 0x06 |
| #define | SLAVE_ENABLE() mLED_4 = 0 |
| #define | SLAVE_DISABLE() mLED_4 = 1 |
Függvények | |
| void | waitFor25LC256 (void) |
| void | memWrite25LC256 (union16 MemAddr, uint8 *pbuf) |
| void | memRead25LC256 (union16 MemAddr, uint8 *pbuf) |
| void | main (void) |
Hardver követelmények: a kísérleti áramkört egy 25LC256 SPI EEPROM-mal kell kiegészíteni, az összekötést az alábbi táblázat szerint alakítsuk ki:
PIC18 14K50 4550 25LC256 ========================================= SDI RB4 RB0 <----------------- SO (2) SDO RC7 RC7 -----------------> SI (5) SCK RB6 RB1 -----------------> SCK (6) LED4 RC3 RD3 -- Slave Select -> CS (1) VDD ---------------------------- VCC (8), WP(3), HOLD(7) GND ---------------------------- GND (4)
Definíció a(z) 25lc256_spi.c fájlban.
| void memRead25LC256 | ( | union16 | MemAddr, | |
| uint8 * | pbuf | |||
| ) |
Egy memórialap (64 bájt) olvasása az EEPROM egy megadott címétől kezdődően, és eltárolása az adatbufferbe.
| u16_MemAddr | a beolvasni kívánt memórialap kezdőcíme | |
| *pu8_buf | mutató az adatbuffer kezdetéhez |
Definíció a(z) 25lc256_spi.c fájl 83. sorában.
| void memWrite25LC256 | ( | union16 | MemAddr, | |
| uint8 * | pbuf | |||
| ) |
Egy memórialap (64 bájt) írása a bemenő adatbufferből, az EEPROM egy megadott címétől kezdődően.
| MemAddr | a memórialap kezdőcíme, ahová írunk | |
| buf | mutató az adatbuffer kezdetéhez |
Definíció a(z) 25lc256_spi.c fájl 61. sorában.
| void waitFor25LC256 | ( | void | ) |
Várakozás arra, hogy az EEPROM befejezze az írást. Amíg az írás tart, addig az EEPROM STATUS regiszterének legalsó bitje (WIP) '1'-ben áll. A függvény blokkoló típusú, addig nem tér vissza, amíg az EEPROM foglalt.
Definíció a(z) 25lc256_spi.c fájl 45. sorában.
1.5.9