![]() |
nRF Connect SDK API 3.3.99
|
#include <stdbool.h>#include <errno.h>#include <nrfx.h>#include <hal/nrf_radio.h>#include <zephyr/sys/util.h>#include <zephyr/types.h>Go to the source code of this file.
Data Structures | |
| struct | esb_payload |
| Enhanced ShockBurst payload. More... | |
| struct | esb_evt |
| Enhanced ShockBurst event. More... | |
| struct | esb_config |
| Main configuration structure for the module. More... | |
Macros | |
| #define | ESB_DEFAULT_CONFIG |
| Default radio parameters. | |
| #define | ESB_LEGACY_CONFIG |
| Default legacy radio parameters. | |
| #define | ESB_CREATE_PAYLOAD(_pipe, ...) |
| Macro to create an initializer for a TX data packet. | |
Typedefs | |
| typedef void(* | esb_event_handler) (const struct esb_evt *event) |
| Event handler prototype. | |
Enumerations | |
| enum | esb_protocol { ESB_PROTOCOL_ESB , ESB_PROTOCOL_ESB_DPL } |
| Enhanced ShockBurst protocols. More... | |
| enum | esb_mode { ESB_MODE_PTX , ESB_MODE_PRX , ESB_MODE_MONITOR } |
| Enhanced ShockBurst modes. More... | |
| enum | esb_bitrate { ESB_BITRATE_1MBPS = NRF_RADIO_MODE_NRF_1MBIT , ESB_BITRATE_2MBPS = NRF_RADIO_MODE_NRF_2MBIT , ESB_BITRATE_250KBPS = NRF_RADIO_MODE_NRF_250KBIT , ESB_BITRATE_1MBPS_BLE = NRF_RADIO_MODE_BLE_1MBIT , ESB_BITRATE_2MBPS_BLE = NRF_RADIO_MODE_BLE_2MBIT , ESB_BITRATE_4MBPS = NRF_RADIO_MODE_NRF_4MBIT_BT_0_6 } |
| Enhanced ShockBurst bitrate modes. More... | |
| enum | esb_crc { ESB_CRC_16BIT = RADIO_CRCCNF_LEN_Two , ESB_CRC_8BIT = RADIO_CRCCNF_LEN_One , ESB_CRC_OFF = RADIO_CRCCNF_LEN_Disabled } |
| Enhanced ShockBurst CRC modes. More... | |
| enum | esb_tx_power { ESB_TX_POWER_10DBM = RADIO_TXPOWER_TXPOWER_Pos10dBm , ESB_TX_POWER_9DBM = RADIO_TXPOWER_TXPOWER_Pos9dBm , ESB_TX_POWER_8DBM = RADIO_TXPOWER_TXPOWER_Pos8dBm , ESB_TX_POWER_7DBM = RADIO_TXPOWER_TXPOWER_Pos7dBm , ESB_TX_POWER_6DBM = RADIO_TXPOWER_TXPOWER_Pos6dBm , ESB_TX_POWER_5DBM = RADIO_TXPOWER_TXPOWER_Pos5dBm , ESB_TX_POWER_4DBM = RADIO_TXPOWER_TXPOWER_Pos4dBm , ESB_TX_POWER_3DBM = RADIO_TXPOWER_TXPOWER_Pos3dBm , ESB_TX_POWER_2DBM = RADIO_TXPOWER_TXPOWER_Pos2dBm , ESB_TX_POWER_1DBM = RADIO_TXPOWER_TXPOWER_Pos1dBm , ESB_TX_POWER_0DBM = RADIO_TXPOWER_TXPOWER_0dBm , ESB_TX_POWER_NEG1DBM = RADIO_TXPOWER_TXPOWER_Neg1dBm , ESB_TX_POWER_NEG2DBM = RADIO_TXPOWER_TXPOWER_Neg2dBm , ESB_TX_POWER_NEG3DBM = RADIO_TXPOWER_TXPOWER_Neg3dBm , ESB_TX_POWER_NEG4DBM = RADIO_TXPOWER_TXPOWER_Neg4dBm , ESB_TX_POWER_NEG5DBM = RADIO_TXPOWER_TXPOWER_Neg5dBm , ESB_TX_POWER_NEG6DBM = RADIO_TXPOWER_TXPOWER_Neg6dBm , ESB_TX_POWER_NEG7DBM = RADIO_TXPOWER_TXPOWER_Neg7dBm , ESB_TX_POWER_NEG8DBM = RADIO_TXPOWER_TXPOWER_Neg8dBm , ESB_TX_POWER_NEG9DBM = RADIO_TXPOWER_TXPOWER_Neg9dBm , ESB_TX_POWER_NEG10DBM = RADIO_TXPOWER_TXPOWER_Neg10dBm , ESB_TX_POWER_NEG12DBM = RADIO_TXPOWER_TXPOWER_Neg12dBm , ESB_TX_POWER_NEG14DBM = RADIO_TXPOWER_TXPOWER_Neg14dBm , ESB_TX_POWER_NEG16DBM = RADIO_TXPOWER_TXPOWER_Neg16dBm , ESB_TX_POWER_NEG20DBM = RADIO_TXPOWER_TXPOWER_Neg20dBm , ESB_TX_POWER_NEG26DBM = RADIO_TXPOWER_TXPOWER_Neg26dBm , ESB_TX_POWER_NEG30DBM = RADIO_TXPOWER_TXPOWER_Neg30dBm , ESB_TX_POWER_NEG40DBM = RADIO_TXPOWER_TXPOWER_Neg40dBm , ESB_TX_POWER_NEG46DBM = RADIO_TXPOWER_TXPOWER_Neg46dBm , ESB_TX_POWER_NEG70DBM = RADIO_TXPOWER_TXPOWER_Neg70dBm } |
| Enhanced ShockBurst radio transmission power modes. More... | |
| enum | esb_tx_mode { ESB_TXMODE_AUTO , ESB_TXMODE_MANUAL , ESB_TXMODE_MANUAL_START } |
| Enhanced ShockBurst transmission modes. More... | |
| enum | esb_evt_id { ESB_EVENT_TX_SUCCESS , ESB_EVENT_TX_FAILED , ESB_EVENT_RX_RECEIVED , ESB_EVENT_TIMESLOT_FAILED } |
| Enhanced ShockBurst event IDs. More... | |
Functions | |
| int | esb_init (const struct esb_config *config) |
| Initialize the Enhanced ShockBurst module. | |
| int | esb_suspend (void) |
| Suspend the Enhanced ShockBurst module. | |
| void | esb_disable (void) |
| Disable the Enhanced ShockBurst module. | |
| bool | esb_is_idle (void) |
| Check if the Enhanced ShockBurst module is idle. | |
| int | esb_write_payload (const struct esb_payload *payload) |
| Write a payload for transmission or acknowledgement. | |
| int | esb_read_rx_payload (struct esb_payload *payload) |
| Read a payload. | |
| int | esb_start_tx (void) |
| Start transmitting data. | |
| int | esb_start_rx (void) |
| Start receiving data. | |
| int | esb_stop_rx (void) |
| Stop data reception. | |
| int | esb_flush_tx (void) |
| Flush the TX buffer. | |
| int | esb_pop_tx (void) |
| Pop the first item from the TX buffer. | |
| bool | esb_tx_full (void) |
| Check if there is some free space left in TX FIFO. | |
| int | esb_flush_rx (void) |
| Flush the RX buffer. | |
| int | esb_set_address_length (uint8_t length) |
| Set the length of the address. | |
| int | esb_set_base_address_0 (const uint8_t *addr) |
| Set the base address for pipe 0. | |
| int | esb_set_base_address_1 (const uint8_t *addr) |
| Set the base address for pipe 1 to pipe 7. | |
| int | esb_set_prefixes (const uint8_t *prefixes, uint8_t num_pipes) |
| Set the number of pipes and the pipe prefix addresses. | |
| int | esb_enable_pipes (uint8_t enable_mask) |
| Enable select pipes. | |
| int | esb_update_prefix (uint8_t pipe, uint8_t prefix) |
| Update pipe prefix. | |
| int | esb_set_rf_channel (uint32_t channel) |
| Set the channel to use for the radio. | |
| int | esb_get_rf_channel (uint32_t *channel) |
| Get the current radio channel. | |
| int | esb_set_tx_power (int8_t tx_output_power) |
| Set the radio output power. | |
| int | esb_set_retransmit_delay (uint16_t delay) |
| Set the packet retransmit delay. | |
| int | esb_set_retransmit_count (uint16_t count) |
| Set the number of retransmission attempts. | |
| int | esb_set_bitrate (enum esb_bitrate bitrate) |
| Set the radio bitrate. | |
| int | esb_reuse_pid (uint8_t pipe) |
| Reuse a packet ID for a specific pipe. | |