Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Driver for the eeprom 225AA256 (and 25LC256) 256K SPI bus serial EEPROM from Microchip. More...
Go to the source code of this file.
Data Structures | |
struct | Eeprom25AA256 |
25AA256 eeprom structure More... | |
Macros | |
#define | E25_IN_BUFFER_LEN (1024 + 3) |
Input buffer length. More... | |
#define | E25_OUT_BUFFER_LEN 3 |
Output buffer length. More... | |
Functions | |
void | eeprom25AA256_init (struct Eeprom25AA256 *eeprom, struct spi_periph *spi_p, uint8_t slave_idx) |
Init function. More... | |
void | eeprom25AA256_read (struct Eeprom25AA256 *eeprom, uint16_t addr, uint16_t length) |
Read function. More... | |
void | eeprom25AA256_event (struct Eeprom25AA256 *eeprom) |
Event function. More... | |
Driver for the eeprom 225AA256 (and 25LC256) 256K SPI bus serial EEPROM from Microchip.
Currently, only reading is implemented
Definition in file eeprom25AA256.h.
struct Eeprom25AA256 |
25AA256 eeprom structure
Definition at line 57 of file eeprom25AA256.h.
Data Fields | ||
---|---|---|
bool | data_available | data read flag |
volatile uint8_t | rx_buf[E25_IN_BUFFER_LEN] | receive buffer |
struct spi_periph * | spi_p | spi peripheral |
struct spi_transaction | spi_trans | spi transaction |
volatile uint8_t | tx_buf[E25_OUT_BUFFER_LEN] | transmit buffer |
#define E25_IN_BUFFER_LEN (1024 + 3) |
Input buffer length.
By default read 1024 bytes after the 3 empty bytes corresponding to the read command
Definition at line 43 of file eeprom25AA256.h.
#define E25_OUT_BUFFER_LEN 3 |
Output buffer length.
For read only operation, we need 1 byte for read command and 2 bytes for 16-bit address
Definition at line 52 of file eeprom25AA256.h.
void eeprom25AA256_event | ( | struct Eeprom25AA256 * | eeprom | ) |
Event function.
[in] | eeprom | pointer to 25AA256 eeprom struture |
Definition at line 89 of file eeprom25AA256.c.
References Eeprom25AA256::data_available, Eeprom25AA256::spi_trans, SPITransDone, SPITransFailed, SPITransSuccess, and spi_transaction::status.
Referenced by meteo_stick_event().
void eeprom25AA256_init | ( | struct Eeprom25AA256 * | eeprom, |
struct spi_periph * | spi_p, | ||
uint8_t | slave_idx | ||
) |
Init function.
[in] | eeprom | pointer to 25AA256 eeprom struture |
[in] | spi_p | pointer to spi device |
[in] | slave_idx | SPI slive index |
Definition at line 45 of file eeprom25AA256.c.
References spi_transaction::after_cb, spi_transaction::before_cb, spi_transaction::bitorder, spi_transaction::cdiv, spi_transaction::cpha, spi_transaction::cpol, spi_transaction::dss, spi_transaction::input_buf, spi_transaction::input_length, spi_transaction::output_buf, spi_transaction::output_length, Eeprom25AA256::rx_buf, spi_transaction::select, spi_transaction::slave_idx, Eeprom25AA256::spi_p, Eeprom25AA256::spi_trans, SPICphaEdge1, SPICpolIdleLow, SPIDiv128, SPIDss8bit, SPIMSBFirst, SPISelectUnselect, SPITransDone, spi_transaction::status, and Eeprom25AA256::tx_buf.
Referenced by meteo_stick_init().
void eeprom25AA256_read | ( | struct Eeprom25AA256 * | eeprom, |
uint16_t | addr, | ||
uint16_t | length | ||
) |
Read function.
[in] | eeprom | pointer to 25AA256 eeprom struture |
[in] | addr | 16-bit start read address |
[in] | length | number of bytes to read |
Definition at line 72 of file eeprom25AA256.c.
References E25_IN_BUFFER_LEN, E25_OUT_BUFFER_LEN, EEPROM_READ, spi_transaction::input_length, spi_transaction::output_length, Eeprom25AA256::spi_p, spi_submit(), Eeprom25AA256::spi_trans, SPITransDone, spi_transaction::status, and Eeprom25AA256::tx_buf.
Referenced by meteo_stick_periodic().