33 #define CYRF6936_MAX_BUFFER 80
struct spi_transaction spi_t
The SPI transaction used for the writing and reading of registers.
void cyrf6936_event(struct Cyrf6936 *cyrf)
The on event call for the CYRF6936 chip.
@ CYRF6936_DATA_CODE
The chip is writing a data code.
@ CYRF6936_IDLE
The chip is idle and can be used.
@ CYRF6936_GET_MFG_ID
The chip is busy with getting the manufacturer ID.
@ CYRF6936_MULTIWRITE
The chip is writing multiple registers.
@ CYRF6936_RX_IRQ_STATUS_PACKET
The chip is getting the receive irq status, receive status and the receive packet.
@ CYRF6936_UNINIT
The chip isn't initialized.
@ CYRF6936_SEND
The chip is busy sending a packet.
@ CYRF6936_CHAN_SOP_DATA_CRC
The chip is setting the channel, SOP code, DATA code and the CRC seed.
struct spi_periph * spi_p
The SPI peripheral for the connection.
void cyrf6936_init(struct Cyrf6936 *cyrf, struct spi_periph *spi_p, const uint8_t slave_idx, const uint32_t rst_port, const uint16_t rst_pin)
Initializing the cyrf chip.
uint8_t rx_status
The last receive status.
uint8_t buffer_idx
The index of the buffer used for MULTIWRITE and used as sub-status for other statuses.
bool cyrf6936_multi_write(struct Cyrf6936 *cyrf, const uint8_t data[][2], const uint8_t length)
Write to multiple registers one byte.
uint8_t rx_count
The length of the received packet.
bool cyrf6936_write_chan_sop_data_crc(struct Cyrf6936 *cyrf, const uint8_t chan, const uint8_t sop_code[], const uint8_t data_code[], const uint16_t crc_seed)
Set the channel, SOP code, DATA code and the CRC seed.
uint8_t buffer_length
The length of the buffer used for MULTIWRITE.
enum Cyrf6936Status status
The status of the CYRF6936 chip.
bool cyrf6936_write(struct Cyrf6936 *cyrf, const uint8_t addr, const uint8_t data)
Write to one register.
bool has_irq
When the CYRF6936 is done reading the irq.
uint8_t buffer[CYRF6936_MAX_BUFFER]
The buffer used to write/read multiple registers.
bool cyrf6936_read_rx_irq_status_packet(struct Cyrf6936 *cyrf)
Read the RX IRQ status register, the rx status register and the rx packet.
uint8_t input_buf[17]
The input buffer for the SPI transaction.
#define CYRF6936_MAX_BUFFER
The max buffer size in the cyrf6936 structure.
bool cyrf6936_send(struct Cyrf6936 *cyrf, const uint8_t data[], const uint8_t length)
Send a packet with a certain length.
uint8_t tx_irq_status
The last send interrupt status.
uint8_t mfg_id[6]
The manufacturer id of the CYRF6936 chip.
uint8_t output_buf[17]
The output buffer for the SPI transaction.
uint8_t rx_packet[16]
The last received packet.
uint8_t rx_irq_status
The last receive interrupt status.
Register defines for the CYRF6936 2.4GHz radio chip.
uint8_t slave_idx
slave id: SPI_SLAVE0 to SPI_SLAVE4
SPI peripheral structure.
SPI transaction structure.
Architecture independent SPI (Serial Peripheral Interface) API.
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.