Paparazzi UAS  v5.15_devel-58-g208c37b
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
cyrf6936.h File Reference

Driver for the cyrf6936 2.4GHz radio chip. More...

#include "cyrf6936_regs.h"
#include "mcu_periph/spi.h"
+ Include dependency graph for cyrf6936.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Cyrf6936
 

Macros

#define CYRF6936_MAX_BUFFER   80
 The max buffer size in the cyrf6936 structure. More...
 

Enumerations

enum  Cyrf6936Status {
  CYRF6936_UNINIT, CYRF6936_IDLE, CYRF6936_GET_MFG_ID, CYRF6936_MULTIWRITE,
  CYRF6936_DATA_CODE, CYRF6936_CHAN_SOP_DATA_CRC, CYRF6936_RX_IRQ_STATUS_PACKET, CYRF6936_SEND
}
 

Functions

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. More...
 
void cyrf6936_event (struct Cyrf6936 *cyrf)
 The on event call for the CYRF6936 chip. More...
 
bool cyrf6936_write (struct Cyrf6936 *cyrf, const uint8_t addr, const uint8_t data)
 Write to one register. More...
 
bool cyrf6936_multi_write (struct Cyrf6936 *cyrf, const uint8_t data[][2], const uint8_t length)
 Write to multiple registers one byte. More...
 
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. More...
 
bool cyrf6936_read_rx_irq_status_packet (struct Cyrf6936 *cyrf)
 Read the RX IRQ status register, the rx status register and the rx packet. More...
 
bool cyrf6936_send (struct Cyrf6936 *cyrf, const uint8_t data[], const uint8_t length)
 Send a packet with a certain length. More...
 

Detailed Description

Driver for the cyrf6936 2.4GHz radio chip.

Definition in file cyrf6936.h.


Data Structure Documentation

struct Cyrf6936

Definition at line 48 of file cyrf6936.h.

+ Collaboration diagram for Cyrf6936:
Data Fields
uint8_t buffer[CYRF6936_MAX_BUFFER] The buffer used to write/read multiple registers.
uint8_t buffer_idx The index of the buffer used for MULTIWRITE and used as sub-status for other statuses.
uint8_t buffer_length The length of the buffer used for MULTIWRITE.
bool has_irq When the CYRF6936 is done reading the irq.
uint8_t input_buf[17] The input buffer for the SPI transaction.
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_count The length of the received packet.
uint8_t rx_irq_status The last receive interrupt status.
uint8_t rx_packet[16] The last received packet.
uint8_t rx_status The last receive status.
struct spi_periph * spi_p The SPI peripheral for the connection.
struct spi_transaction spi_t The SPI transaction used for the writing and reading of registers.
enum Cyrf6936Status status The status of the CYRF6936 chip.
uint8_t tx_irq_status The last send interrupt status.

Macro Definition Documentation

#define CYRF6936_MAX_BUFFER   80

The max buffer size in the cyrf6936 structure.

Definition at line 33 of file cyrf6936.h.

Enumeration Type Documentation

Enumerator
CYRF6936_UNINIT 

The chip isn't initialized.

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_DATA_CODE 

The chip is writing a data code.

CYRF6936_CHAN_SOP_DATA_CRC 

The chip is setting the channel, SOP code, DATA code and the CRC seed.

CYRF6936_RX_IRQ_STATUS_PACKET 

The chip is getting the receive irq status, receive status and the receive packet.

CYRF6936_SEND 

The chip is busy sending a packet.

Definition at line 36 of file cyrf6936.h.

Function Documentation

bool cyrf6936_multi_write ( struct Cyrf6936 cyrf,
const uint8_t  data[][2],
const uint8_t  length 
)

Write to multiple registers one byte.

Definition at line 341 of file cyrf6936.c.

References Cyrf6936::buffer, Cyrf6936::buffer_idx, Cyrf6936::buffer_length, CYRF6936_IDLE, CYRF6936_MULTIWRITE, cyrf6936_write_register(), and Cyrf6936::status.

Referenced by cyrf6936_write(), superbitrf_event(), and superbitrf_receive_packet_cb().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool cyrf6936_read_rx_irq_status_packet ( struct Cyrf6936 cyrf)

Read the RX IRQ status register, the rx status register and the rx packet.

Definition at line 412 of file cyrf6936.c.

References Cyrf6936::buffer_idx, CYRF6936_IDLE, cyrf6936_read_register(), CYRF6936_RX_IRQ_STATUS_PACKET, CYRF_RX_IRQ_STATUS, and Cyrf6936::status.

Referenced by superbitrf_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool cyrf6936_send ( struct Cyrf6936 cyrf,
const uint8_t  data[],
const uint8_t  length 
)

Send a packet with a certain length.

Definition at line 432 of file cyrf6936.c.

References Cyrf6936::buffer, Cyrf6936::buffer_idx, CYRF6936_IDLE, CYRF6936_SEND, cyrf6936_write_register(), CYRF_TX_LENGTH, and Cyrf6936::status.

Referenced by superbitrf_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool cyrf6936_write ( struct Cyrf6936 cyrf,
const uint8_t  addr,
const uint8_t  data 
)

Write to one register.

Definition at line 330 of file cyrf6936.c.

References cyrf6936_multi_write().

Referenced by superbitrf_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

Definition at line 373 of file cyrf6936.c.

References Cyrf6936::buffer, Cyrf6936::buffer_idx, CYRF6936_CHAN_SOP_DATA_CRC, CYRF6936_IDLE, cyrf6936_write_register(), CYRF_CRC_SEED_LSB, and Cyrf6936::status.

Referenced by superbitrf_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function: