RADIO HAL

group nrf_radio_hal

Hardware access layer for managing the RADIO peripheral.

Defines

NRF_RADIO_DPPI_OFFSET

Symbol specifying offset between address of TASK/EVENT register and address of associated SUBSCRIBE/PUBLISH register.

Enums

enum nrf_radio_task_t

RADIO tasks.

Values:

enumerator NRF_RADIO_TASK_TXEN

Enable RADIO in TX mode.

enumerator NRF_RADIO_TASK_RXEN

Enable RADIO in RX mode.

enumerator NRF_RADIO_TASK_START

Start RADIO.

enumerator NRF_RADIO_TASK_STOP

Stop RADIO.

enumerator NRF_RADIO_TASK_DISABLE

Disable RADIO.

enumerator NRF_RADIO_TASK_RSSISTART

Start the RSSI and take one single sample of the receive signal strength.

enumerator NRF_RADIO_TASK_RSSISTOP

Stop the RSSI measurement.

enumerator NRF_RADIO_TASK_BCSTART

Start the bit counter.

enumerator NRF_RADIO_TASK_BCSTOP

Stop the bit counter.

enumerator NRF_RADIO_TASK_EDSTART

Start the Energy Detect measurement used in IEEE 802.15.4 mode.

enumerator NRF_RADIO_TASK_EDSTOP

Stop the Energy Detect measurement.

enumerator NRF_RADIO_TASK_CCASTART

Start the Clear Channel Assessment used in IEEE 802.15.4 mode.

enumerator NRF_RADIO_TASK_CCASTOP

Stop the Clear Channel Assessment.

enum nrf_radio_event_t

RADIO events.

Values:

enumerator NRF_RADIO_EVENT_READY

Radio has ramped up and is ready to be started.

enumerator NRF_RADIO_EVENT_ADDRESS

Address sent or received.

enumerator NRF_RADIO_EVENT_PAYLOAD

Packet payload sent or received.

enumerator NRF_RADIO_EVENT_END

Packet transmitted or received.

enumerator NRF_RADIO_EVENT_DISABLED

RADIO has been disabled.

enumerator NRF_RADIO_EVENT_DEVMATCH

A device address match occurred on the last received packet.

enumerator NRF_RADIO_EVENT_DEVMISS

No device address match occurred on the last received packet.

enumerator NRF_RADIO_EVENT_RSSIEND

Sampling of receive signal strength complete.

enumerator NRF_RADIO_EVENT_BCMATCH

Bit counter reached bit count value.

enumerator NRF_RADIO_EVENT_CRCOK

Packet received with correct CRC.

enumerator NRF_RADIO_EVENT_CRCERROR

Packet received with incorrect CRC.

enumerator NRF_RADIO_EVENT_FRAMESTART

IEEE 802.15.4 length field received.

enumerator NRF_RADIO_EVENT_EDEND

Energy Detection procedure ended.

enumerator NRF_RADIO_EVENT_EDSTOPPED

The sampling of Energy Detection has stopped.

enumerator NRF_RADIO_EVENT_CCAIDLE

Wireless medium in idle - clear to send.

enumerator NRF_RADIO_EVENT_CCABUSY

Wireless medium busy - do not send.

enumerator NRF_RADIO_EVENT_CCASTOPPED

The CCA has stopped.

enumerator NRF_RADIO_EVENT_RATEBOOST

Ble_LR CI field received, receive mode is changed from Ble_LR125Kbit to Ble_LR500Kbit.

enumerator NRF_RADIO_EVENT_TXREADY

RADIO has ramped up and is ready to be started TX path.

enumerator NRF_RADIO_EVENT_RXREADY

RADIO has ramped up and is ready to be started RX path.

enumerator NRF_RADIO_EVENT_MHRMATCH

MAC Header match found.

enumerator NRF_RADIO_EVENT_PHYEND

Generated in Ble_LR125Kbit, Ble_LR500Kbit and BleIeee802154_250Kbit modes when last bit is sent on the air.

enumerator NRF_RADIO_EVENT_SYNC

Generated in Ble_LR125Kbit, Ble_LR500Kbit and BleIeee802154_250Kbit modes when possible preamble has been received.

enumerator NRF_RADIO_EVENT_CTEPRESENT

CTE is present.

enum nrf_radio_int_mask_t

RADIO interrupts.

Values:

enumerator NRF_RADIO_INT_READY_MASK

Interrupt on READY event.

enumerator NRF_RADIO_INT_ADDRESS_MASK

Interrupt on ADDRESS event.

enumerator NRF_RADIO_INT_PAYLOAD_MASK

Interrupt on PAYLOAD event.

enumerator NRF_RADIO_INT_END_MASK

Interrupt on END event.

enumerator NRF_RADIO_INT_DISABLED_MASK

Interrupt on DISABLED event.

enumerator NRF_RADIO_INT_DEVMATCH_MASK

Interrupt on DEVMATCH event.

enumerator NRF_RADIO_INT_DEVMISS_MASK

Interrupt on DEVMISS event.

enumerator NRF_RADIO_INT_RSSIEND_MASK

Interrupt on RSSIEND event.

enumerator NRF_RADIO_INT_BCMATCH_MASK

Interrupt on BCMATCH event.

enumerator NRF_RADIO_INT_CRCOK_MASK

Interrupt on CRCOK event.

enumerator NRF_RADIO_INT_CRCERROR_MASK

Interrupt on CRCERROR event.

enumerator NRF_RADIO_INT_FRAMESTART_MASK

Interrupt on FRAMESTART event.

enumerator NRF_RADIO_INT_EDEND_MASK

Interrupt on EDEND event.

enumerator NRF_RADIO_INT_EDSTOPPED_MASK

Interrupt on EDSTOPPED event.

enumerator NRF_RADIO_INT_CCAIDLE_MASK

Interrupt on CCAIDLE event.

enumerator NRF_RADIO_INT_CCABUSY_MASK

Interrupt on CCABUSY event.

enumerator NRF_RADIO_INT_CCASTOPPED_MASK

Interrupt on CCASTOPPED event.

enumerator NRF_RADIO_INT_RATEBOOST_MASK

Interrupt on RATEBOOST event.

enumerator NRF_RADIO_INT_TXREADY_MASK

Interrupt on TXREADY event.

enumerator NRF_RADIO_INT_RXREADY_MASK

Interrupt on RXREADY event.

enumerator NRF_RADIO_INT_MHRMATCH_MASK

Interrupt on MHRMATCH event.

enumerator NRF_RADIO_INT_PHYEND_MASK

Interrupt on PHYEND event.

enumerator NRF_RADIO_INT_SYNC_MASK

Interrupt on SYNC event.

enumerator NRF_RADIO_INT_CTEPRESENT_MASK

Interrupt on CTEPRESENT event.

enum nrf_radio_short_mask_t

RADIO shortcuts.

Values:

enumerator NRF_RADIO_SHORT_READY_START_MASK

Shortcut between READY event and START task.

enumerator NRF_RADIO_SHORT_END_DISABLE_MASK

Shortcut between END event and DISABLE task.

enumerator NRF_RADIO_SHORT_DISABLED_TXEN_MASK

Shortcut between DISABLED event and TXEN task.

enumerator NRF_RADIO_SHORT_DISABLED_RXEN_MASK

Shortcut between DISABLED event and RXEN task.

enumerator NRF_RADIO_SHORT_ADDRESS_RSSISTART_MASK

Shortcut between ADDRESS event and RSSISTART task.

enumerator NRF_RADIO_SHORT_END_START_MASK

Shortcut between END event and START task.

enumerator NRF_RADIO_SHORT_ADDRESS_BCSTART_MASK

Shortcut between ADDRESS event and BCSTART task.

enumerator NRF_RADIO_SHORT_DISABLED_RSSISTOP_MASK

Shortcut between DISABLED event and RSSISTOP task.

enumerator NRF_RADIO_SHORT_RXREADY_CCASTART_MASK

Shortcut between RXREADY event and CCASTART task.

enumerator NRF_RADIO_SHORT_CCAIDLE_TXEN_MASK

Shortcut between CCAIDLE event and TXEN task.

enumerator NRF_RADIO_SHORT_CCABUSY_DISABLE_MASK

Shortcut between CCABUSY event and DISABLE task.

enumerator NRF_RADIO_SHORT_FRAMESTART_BCSTART_MASK

Shortcut between FRAMESTART event and BCSTART task.

enumerator NRF_RADIO_SHORT_READY_EDSTART_MASK

Shortcut between READY event and EDSTART task.

enumerator NRF_RADIO_SHORT_EDEND_DISABLE_MASK

Shortcut between EDEND event and DISABLE task.

enumerator NRF_RADIO_SHORT_CCAIDLE_STOP_MASK

Shortcut between CCAIDLE event and STOP task.

enumerator NRF_RADIO_SHORT_TXREADY_START_MASK

Shortcut between TXREADY event and START task.

enumerator NRF_RADIO_SHORT_RXREADY_START_MASK

Shortcut between RXREADY event and START task.

enumerator NRF_RADIO_SHORT_PHYEND_DISABLE_MASK

Shortcut between PHYEND event and DISABLE task.

enumerator NRF_RADIO_SHORT_PHYEND_START_MASK

Shortcut between PHYEND event and START task.

enum nrf_radio_cca_mode_t

RADIO Clear Channel Assessment modes.

Values:

enumerator NRF_RADIO_CCA_MODE_ED

Energy Above Threshold. Will report busy whenever energy is detected above set threshold.

enumerator NRF_RADIO_CCA_MODE_CARRIER

Carrier Seen. Will report busy whenever compliant IEEE 802.15.4 signal is seen.

enumerator NRF_RADIO_CCA_MODE_CARRIER_AND_ED

Energy Above Threshold AND Carrier Seen.

enumerator NRF_RADIO_CCA_MODE_CARRIER_OR_ED

Energy Above Threshold OR Carrier Seen.

enumerator NRF_RADIO_CCA_MODE_ED_TEST1

Energy Above Threshold test mode that will abort when first ED measurement over threshold is seen. No averaging.

enum nrf_radio_state_t

Types of RADIO states.

Values:

enumerator NRF_RADIO_STATE_DISABLED

No operations are going on inside the radio and the power consumption is at a minimum.

enumerator NRF_RADIO_STATE_RXRU

The radio is ramping up and preparing for reception.

enumerator NRF_RADIO_STATE_RXIDLE

The radio is ready for reception to start.

enumerator NRF_RADIO_STATE_RX

Reception has been started.

enumerator NRF_RADIO_STATE_RXDISABLE

The radio is disabling the receiver.

enumerator NRF_RADIO_STATE_TXRU

The radio is ramping up and preparing for transmission.

enumerator NRF_RADIO_STATE_TXIDLE

The radio is ready for transmission to start.

enumerator NRF_RADIO_STATE_TX

The radio is transmitting a packet.

enumerator NRF_RADIO_STATE_TXDISABLE

The radio is disabling the transmitter.

enum nrf_radio_txpower_t

Types of RADIO TX power.

Values:

enumerator NRF_RADIO_TXPOWER_POS10DBM

10 dBm.

enumerator NRF_RADIO_TXPOWER_POS9DBM

9 dBm.

enumerator NRF_RADIO_TXPOWER_POS8DBM

8 dBm.

enumerator NRF_RADIO_TXPOWER_POS7DBM

7 dBm.

enumerator NRF_RADIO_TXPOWER_POS6DBM

6 dBm.

enumerator NRF_RADIO_TXPOWER_POS5DBM

5 dBm.

enumerator NRF_RADIO_TXPOWER_POS4DBM

4 dBm.

enumerator NRF_RADIO_TXPOWER_POS3DBM

3 dBm.

enumerator NRF_RADIO_TXPOWER_POS2DBM

2 dBm.

enumerator NRF_RADIO_TXPOWER_POS1DBM

1 dBm.

enumerator NRF_RADIO_TXPOWER_0DBM

0 dBm.

enumerator NRF_RADIO_TXPOWER_NEG1DBM

-1 dBm.

enumerator NRF_RADIO_TXPOWER_NEG2DBM

-2 dBm.

enumerator NRF_RADIO_TXPOWER_NEG3DBM

-3 dBm.

enumerator NRF_RADIO_TXPOWER_NEG4DBM

-4 dBm.

enumerator NRF_RADIO_TXPOWER_NEG5DBM

-5 dBm.

enumerator NRF_RADIO_TXPOWER_NEG6DBM

-6 dBm.

enumerator NRF_RADIO_TXPOWER_NEG7DBM

-7 dBm.

enumerator NRF_RADIO_TXPOWER_NEG8DBM

-8 dBm.

enumerator NRF_RADIO_TXPOWER_NEG12DBM

-12 dBm.

enumerator NRF_RADIO_TXPOWER_NEG16DBM

-16 dBm.

enumerator NRF_RADIO_TXPOWER_NEG20DBM

-20 dBm.

enumerator NRF_RADIO_TXPOWER_NEG30DBM

-30 dBm.

enumerator NRF_RADIO_TXPOWER_NEG40DBM

-40 dBm.

enumerator NRF_RADIO_TXPOWER_NEG70DBM

-70 dBm.

enum nrf_radio_mode_t

Types of RADIO modes (data rate and modulation).

Values:

enumerator NRF_RADIO_MODE_NRF_1MBIT

1Mbit/s Nordic proprietary radio mode.

enumerator NRF_RADIO_MODE_NRF_2MBIT

2Mbit/s Nordic proprietary radio mode.

enumerator NRF_RADIO_MODE_NRF_250KBIT

250Kbit/s Nordic proprietary radio mode.

enumerator NRF_RADIO_MODE_NRF_4MBIT_H_0_5

4Mbit/s Nordic proprietary radio mode (BT=0.5/h=0.5).

enumerator NRF_RADIO_MODE_NRF_4MBIT_H_0_25

4Mbit/s Nordic proprietary radio mode (BT=0.5/h=0.25).

enumerator NRF_RADIO_MODE_BLE_1MBIT

1 Mbit/s Bluetooth Low Energy.

enumerator NRF_RADIO_MODE_BLE_2MBIT

2 Mbit/s Bluetooth Low Energy.

enumerator NRF_RADIO_MODE_BLE_LR125KBIT

Bluetooth Low Energy Long range 125 kbit/s TX, 125 kbit/s and 500 kbit/s RX

enumerator NRF_RADIO_MODE_BLE_LR500KBIT

Bluetooth Low Energy Long range 500 kbit/s TX, 125 kbit/s and 500 kbit/s RX

enumerator NRF_RADIO_MODE_IEEE802154_250KBIT

IEEE 802.15.4-2006 250 kbit/s.

enum nrf_radio_preamble_length_t

Types of preamble length.

Values:

enumerator NRF_RADIO_PREAMBLE_LENGTH_8BIT

8-bit preamble.

enumerator NRF_RADIO_PREAMBLE_LENGTH_16BIT

16-bit preamble.

enumerator NRF_RADIO_PREAMBLE_LENGTH_32BIT_ZERO

32-bit zero preamble used for IEEE 802.15.4.

enumerator NRF_RADIO_PREAMBLE_LENGTH_LONG_RANGE

Preamble - used for BTLE Long Range.

enum nrf_radio_crc_addr_t

Types of CRC calculatons regarding address.

Values:

enumerator NRF_RADIO_CRC_ADDR_INCLUDE

CRC calculation includes address field.

enumerator NRF_RADIO_CRC_ADDR_SKIP

CRC calculation does not include address field.

enumerator NRF_RADIO_CRC_ADDR_IEEE802154

CRC calculation as per 802.15.4 standard.

enumerator NRF_RADIO_CRC_ADDR_S0

CRC calculation starting at first byte after S0 field.

enumerator NRF_RADIO_CRC_ADDR_S1

CRC calculation starting at first byte after S1 field.

enum nrf_radio_dfe_op_mode_t

Direction Finding operation modes.

Values:

enumerator NRF_RADIO_DFE_OP_MODE_AOD

Angle-of-Departure mode.

enumerator NRF_RADIO_DFE_OP_MODE_AOA

Angle-of-Arrival mode.

enum nrf_radio_dfe_switch_state_t

States of Direction Finding switching state machine.

Values:

enumerator NRF_RADIO_DFE_SWITCH_STATE_IDLE

Switching state Idle.

enumerator NRF_RADIO_DFE_SWITCH_STATE_OFFSET

Switching state Offset.

enumerator NRF_RADIO_DFE_SWITCH_STATE_GUARD

Switching state Guard.

enumerator NRF_RADIO_DFE_SWITCH_STATE_REF

Switching state Ref.

enumerator NRF_RADIO_DFE_SWITCH_STATE_SWITCHING

Switching state Switching.

enumerator NRF_RADIO_DFE_SWITCH_STATE_ENDING

Switching state Ending.

enum nrf_radio_dfe_sample_state_t

States of Direction Finding sampling state machine.

Values:

enumerator NRF_RADIO_DFE_SAMPLE_STATE_IDLE

Sampling state Idle.

enumerator NRF_RADIO_DFE_SAMPLE_STATE_SAMPLING

Sampling state Sampling.

enum nrf_radio_cteinline_time_range_t

Valid ranges of CTE time, expressed in 8 us units.

Values:

enumerator NRF_RADIO_CTEINLINE_TIME_RANGE_20

20 units time range.

enumerator NRF_RADIO_CTEINLINE_TIME_RANGE_31

31 units time range.

enumerator NRF_RADIO_CTEINLINE_TIME_RANGE_63

63 units time range.

enum nrf_radio_cteinline_rx_mode_t

Spacing between samples for the samples in the switching period.

Values:

enumerator NRF_RADIO_CTEINLINE_RX_MODE_125NS

125 ns spacing.

enumerator NRF_RADIO_CTEINLINE_RX_MODE_250NS

250 ns spacing.

enumerator NRF_RADIO_CTEINLINE_RX_MODE_500NS

500 ns spacing.

enumerator NRF_RADIO_CTEINLINE_RX_MODE_1US

1 us spacing.

enumerator NRF_RADIO_CTEINLINE_RX_MODE_2US

2 us spacing.

enumerator NRF_RADIO_CTEINLINE_RX_MODE_4US

4 us spacing.

enum nrf_radio_dfectrl_extension_t

State when CTE extension is added and antenna switching/sampling is done.

Values:

enumerator NRF_RADIO_DFECTRL_EXTENSION_CRC

AoA/AoD procedure triggered at end of CRC.

enumerator NRF_RADIO_DFECTRL_EXTENSION_PAYLOAD

Antenna switching/sampling done in the packet payload.

enum nrf_radio_dfectrl_switch_spacing_t

Interval between antenna changes in the switching state.

Values:

enumerator NRF_RADIO_DFECTRL_SWITCH_SPACING_1US

1 us interval between antenna change.

enumerator NRF_RADIO_DFECTRL_SWITCH_SPACING_2US

2 us interval between antenna change.

enumerator NRF_RADIO_DFECTRL_SWITCH_SPACING_4US

4 us interval between antenna change.

enum nrf_radio_dfectrl_sample_spacing_t

Interval between samples.

Values:

enumerator NRF_RADIO_DFECTRL_SAMPLE_SPACING_125NS

125 ns interval between samples.

enumerator NRF_RADIO_DFECTRL_SAMPLE_SPACING_250NS

250 ns interval between samples.

enumerator NRF_RADIO_DFECTRL_SAMPLE_SPACING_500NS

500 ns interval between samples.

enumerator NRF_RADIO_DFECTRL_SAMPLE_SPACING_1US

1 us interval between samples.

enumerator NRF_RADIO_DFECTRL_SAMPLE_SPACING_2US

2 us interval between samples.

enumerator NRF_RADIO_DFECTRL_SAMPLE_SPACING_4US

4 us interval between samples.

enum nrf_radio_dfectrl_sample_type_t

Direction finding sample type.

Values:

enumerator NRF_RADIO_DFECTRL_SAMPLE_TYPE_IQ

Complex samples in I and Q.

enumerator NRF_RADIO_DFECTRL_SAMPLE_TYPE_MAGPHASE

Complex samples as magnitude and phase.

Functions

NRF_STATIC_INLINE void nrf_radio_task_trigger(NRF_RADIO_Type *p_reg, nrf_radio_task_t task)

Function for activating a specific RADIO task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task to be activated.

NRF_STATIC_INLINE uint32_t nrf_radio_task_address_get(NRF_RADIO_Type const *p_reg, nrf_radio_task_t task)

Function for getting the address of a specific RADIO task register.

This function can be used by the PPI module.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Requested task.

Returns:

Address of the specified task register.

NRF_STATIC_INLINE void nrf_radio_event_clear(NRF_RADIO_Type *p_reg, nrf_radio_event_t event)

Function for clearing a specific RADIO event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to clean.

NRF_STATIC_INLINE bool nrf_radio_event_check(NRF_RADIO_Type const *p_reg, nrf_radio_event_t event)

Function for retrieving the state of the RADIO event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event to be checked.

Return values:
  • true – The event has been generated.

  • false – The event has not been generated.

NRF_STATIC_INLINE uint32_t nrf_radio_event_address_get(NRF_RADIO_Type const *p_reg, nrf_radio_event_t event)

Function for getting the address of a specific RADIO event register.

This function can be used by the PPI module.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Requested Event.

Returns:

Address of the specified event register.

NRF_STATIC_INLINE void nrf_radio_shorts_enable(NRF_RADIO_Type *p_reg, uint32_t shorts_mask)

Function for enabling specified RADIO shortcuts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • shorts_mask[in] Mask of shortcuts.

NRF_STATIC_INLINE void nrf_radio_shorts_disable(NRF_RADIO_Type *p_reg, uint32_t shorts_mask)

Function for disabling specified RADIO shortcuts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • shorts_mask[in] Mask of shortcuts.

NRF_STATIC_INLINE void nrf_radio_shorts_set(NRF_RADIO_Type *p_reg, uint32_t shorts_mask)

Function for setting the configuration of RADIO shortcuts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • shorts_mask[in] Shortcuts configuration to set.

NRF_STATIC_INLINE uint32_t nrf_radio_shorts_get(NRF_RADIO_Type const *p_reg)

Function for getting the configuration of RADIO shortcuts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Mask of currently enabled shortcuts.

NRF_STATIC_INLINE void nrf_radio_int_enable(NRF_RADIO_Type *p_reg, uint32_t mask)

Function for enabling specified RADIO interrupts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be enabled. Use nrf_radio_int_mask_t values for bit masking.

NRF_STATIC_INLINE void nrf_radio_int_disable(NRF_RADIO_Type *p_reg, uint32_t mask)

Function for disabling specified RADIO interrupts.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be disabled. Use nrf_radio_int_mask_t values for bit masking.

NRF_STATIC_INLINE uint32_t nrf_radio_int_enable_check(NRF_RADIO_Type const *p_reg, uint32_t mask)

Function for checking if the specified interrupts are enabled.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • mask[in] Mask of interrupts to be checked. Use nrf_radio_int_mask_t values for bit masking.

Returns:

Mask of enabled interrupts.

NRF_STATIC_INLINE void nrf_radio_subscribe_set(NRF_RADIO_Type *p_reg, nrf_radio_task_t task, uint8_t channel)

Function for setting the subscribe configuration for a given RADIO task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task for which to set the configuration.

  • channel[in] Channel through which to subscribe events.

NRF_STATIC_INLINE void nrf_radio_subscribe_clear(NRF_RADIO_Type *p_reg, nrf_radio_task_t task)

Function for clearing the subscribe configuration for a given RADIO task.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • task[in] Task for which to clear the configuration.

NRF_STATIC_INLINE void nrf_radio_publish_set(NRF_RADIO_Type *p_reg, nrf_radio_event_t event, uint8_t channel)

Function for setting the publish configuration for a given RADIO event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event for which to set the configuration.

  • channel[in] Channel through which to publish the event.

NRF_STATIC_INLINE void nrf_radio_publish_clear(NRF_RADIO_Type *p_reg, nrf_radio_event_t event)

Function for clearing the publish configuration for a given RADIO event.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • event[in] Event for which to clear the configuration.

NRF_STATIC_INLINE bool nrf_radio_crc_status_check(NRF_RADIO_Type const *p_reg)

Function for getting CRC status of last received packet.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Return values:
  • true – The packet was received without CRC error.

  • false – The packet was received with CRC error.

NRF_STATIC_INLINE uint8_t nrf_radio_rxmatch_get(NRF_RADIO_Type const *p_reg)

Function for getting the received address.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Received address.

NRF_STATIC_INLINE uint32_t nrf_radio_rxcrc_get(NRF_RADIO_Type const *p_reg)

Function for getting CRC field of the last received packet.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

CRC field of previously received packet.

NRF_STATIC_INLINE uint8_t nrf_radio_dai_get(NRF_RADIO_Type const *p_reg)

Function for getting the device address match index.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Device adress match index.

NRF_STATIC_INLINE uint8_t nrf_radio_pdustat_get(NRF_RADIO_Type const *p_reg)

Function for getting status on payload length.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Return values:
  • 0 – The payload is lesser than PCNF1.MAXLEN.

  • 1 – The payload is greater than PCNF1.MAXLEN.

NRF_STATIC_INLINE uint8_t nrf_radio_cistat_get(NRF_RADIO_Type const *p_reg)

Function for getting status on what rate packet is received with in Long Range.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Return values:
  • 0 – The frame is received at 125kbps.

  • 1 – The frame is received at 500kbps.

NRF_STATIC_INLINE void nrf_radio_packetptr_set(NRF_RADIO_Type *p_reg, void const *p_packet)

Function for setting packet pointer to given location in memory.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_packet[in] Packet pointer.

NRF_STATIC_INLINE void *nrf_radio_packetptr_get(NRF_RADIO_Type const *p_reg)

Function for getting packet pointer.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Pointer to tx or rx packet buffer.

NRF_STATIC_INLINE void nrf_radio_frequency_set(NRF_RADIO_Type *p_reg, uint16_t radio_frequency)

Function for setting the radio frequency.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • radio_frequency[in] Frequency in MHz.

NRF_STATIC_INLINE uint16_t nrf_radio_frequency_get(NRF_RADIO_Type const *p_reg)

Function for getting the radio frequency.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Frequency in MHz.

NRF_STATIC_INLINE void nrf_radio_txpower_set(NRF_RADIO_Type *p_reg, nrf_radio_txpower_t tx_power)

Function for setting the radio transmit power.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • tx_power[in] Transmit power of the radio [dBm].

NRF_STATIC_INLINE nrf_radio_txpower_t nrf_radio_txpower_get(NRF_RADIO_Type const *p_reg)

Function for getting the radio transmit power.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Transmit power of the radio.

NRF_STATIC_INLINE void nrf_radio_mode_set(NRF_RADIO_Type *p_reg, nrf_radio_mode_t radio_mode)

Function for setting the radio data rate and modulation settings.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • radio_mode[in] Radio data rate and modulation.

NRF_STATIC_INLINE nrf_radio_mode_t nrf_radio_mode_get(NRF_RADIO_Type const *p_reg)

Function for getting Radio data rate and modulation settings.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Radio data rate and modulation.

NRF_STATIC_INLINE void nrf_radio_packet_configure(NRF_RADIO_Type *p_reg, nrf_radio_packet_conf_t const *p_config)

Function for setting the packet configuration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_config[in] Pointer to the structure with packet configuration.

NRF_STATIC_INLINE void nrf_radio_base0_set(NRF_RADIO_Type *p_reg, uint32_t address)

Function for setting the base address 0.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • address[in] Base address 0 value.

NRF_STATIC_INLINE uint32_t nrf_radio_base0_get(NRF_RADIO_Type const *p_reg)

Function for getting the base address 0.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Base address 0.

NRF_STATIC_INLINE void nrf_radio_base1_set(NRF_RADIO_Type *p_reg, uint32_t address)

Function for setting Base address 1.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • address[in] Base address 1 value.

NRF_STATIC_INLINE uint32_t nrf_radio_base1_get(NRF_RADIO_Type const *p_reg)

Function for getting base address 1.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Base address 1.

NRF_STATIC_INLINE void nrf_radio_prefix0_set(NRF_RADIO_Type *p_reg, uint32_t prefixes)

Function for setting prefixes bytes for logical addresses 0-3.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • prefixes[in] Prefixes bytes for logical addresses 0-3.

NRF_STATIC_INLINE uint32_t nrf_radio_prefix0_get(NRF_RADIO_Type const *p_reg)

Function for getting prefixes bytes for logical addresses 0-3.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Prefixes bytes for logical addresses 0-3

NRF_STATIC_INLINE void nrf_radio_prefix1_set(NRF_RADIO_Type *p_reg, uint32_t prefixes)

Function for setting prefixes bytes for logical addresses 4-7.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • prefixes[in] Prefixes bytes for logical addresses 4-7.

NRF_STATIC_INLINE uint32_t nrf_radio_prefix1_get(NRF_RADIO_Type const *p_reg)

Function for getting prefixes bytes for logical addresses 4-7.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Prefixes bytes for logical addresses 4-7

NRF_STATIC_INLINE void nrf_radio_txaddress_set(NRF_RADIO_Type *p_reg, uint8_t txaddress)

Function for setting the transmit address.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • txaddress[in] Logical address to be used when transmitting a packet.

NRF_STATIC_INLINE uint8_t nrf_radio_txaddress_get(NRF_RADIO_Type const *p_reg)

Function for getting the transmit address select.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Logical address to be used when transmitting a packet.

NRF_STATIC_INLINE void nrf_radio_rxaddresses_set(NRF_RADIO_Type *p_reg, uint8_t rxaddresses)

Function for for selecting the receive addresses.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • rxaddresses[in] Enable or disable reception on logical address i. Read more in the Product Specification.

NRF_STATIC_INLINE uint8_t nrf_radio_rxaddresses_get(NRF_RADIO_Type const *p_reg)

Function for getting receive address select.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Receive address select.

NRF_STATIC_INLINE void nrf_radio_crc_configure(NRF_RADIO_Type *p_reg, uint8_t crc_length, nrf_radio_crc_addr_t crc_address, uint32_t crc_polynominal)

Function for configure CRC.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • crc_length[in] CRC length in number of bytes [0-3].

  • crc_address[in] Include or exclude packet address field out of CRC.

  • crc_polynominal[in] CRC polynominal to set.

NRF_STATIC_INLINE void nrf_radio_crcinit_set(NRF_RADIO_Type *p_reg, uint32_t crc_init_value)

Function for setting CRC initial value.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • crc_init_value[in] CRC initial value

NRF_STATIC_INLINE uint32_t nrf_radio_crcinit_get(NRF_RADIO_Type const *p_reg)

Function for getting CRC initial value.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

CRC initial value.

NRF_STATIC_INLINE void nrf_radio_ifs_set(NRF_RADIO_Type *p_reg, uint32_t radio_ifs)

Function for setting Inter Frame Spacing interval.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • radio_ifs[in] Inter frame spacing interval [us].

NRF_STATIC_INLINE uint32_t nrf_radio_ifs_get(NRF_RADIO_Type const *p_reg)

Function for getting Inter Frame Spacing interval.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Inter frame spacing interval [us].

NRF_STATIC_INLINE uint8_t nrf_radio_rssi_sample_get(NRF_RADIO_Type const *p_reg)

Function for getting RSSI sample result.

Note

The read value is a positive value while the actual received signal is a negative value. Actual received signal strength is therefore as follows: received signal strength = - read_value dBm .

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

RSSI sample result.

NRF_STATIC_INLINE nrf_radio_state_t nrf_radio_state_get(NRF_RADIO_Type const *p_reg)

Function for getting the current state of the radio module.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Current radio state.

NRF_STATIC_INLINE void nrf_radio_datawhiteiv_set(NRF_RADIO_Type *p_reg, uint8_t datawhiteiv)

Function for setting the data whitening initial value.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • datawhiteiv[in] Data whitening initial value.

NRF_STATIC_INLINE uint8_t nrf_radio_datawhiteiv_get(NRF_RADIO_Type const *p_reg)

Function for getting the data whitening initial value.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Data whitening initial value.

NRF_STATIC_INLINE void nrf_radio_bcc_set(NRF_RADIO_Type *p_reg, uint32_t radio_bcc)

Function for setting Bit counter compare.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • radio_bcc[in] Bit counter compare [bits].

NRF_STATIC_INLINE uint32_t nrf_radio_bcc_get(NRF_RADIO_Type const *p_reg)

Function for getting Bit counter compare.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Bit counter compare.

NRF_STATIC_INLINE void nrf_radio_dab_set(NRF_RADIO_Type *p_reg, uint32_t dab_value, uint8_t segment)

Function for setting Device address base segment.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • dab_value[in] Particular base segment value.

  • segment[in] Index of the particular Device address base segment register.

NRF_STATIC_INLINE uint32_t nrf_radio_dab_get(NRF_RADIO_Type const *p_reg, uint8_t segment)

Function for getting Device address base segment.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • segment[in] Number of the Device address base segment.

Returns:

Particular segment of the Device address base.

NRF_STATIC_INLINE void nrf_radio_dap_set(NRF_RADIO_Type *p_reg, uint16_t dap_value, uint8_t prefix_index)

Function for setting device address prefix.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • dap_value[in] Particular device address prefix value.

  • prefix_index[in] Index of the particular device address prefix register.

NRF_STATIC_INLINE uint32_t nrf_radio_dap_get(NRF_RADIO_Type const *p_reg, uint8_t prefix_index)

Function for getting Device address prefix.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • prefix_index[in] Number of the Device address prefix segment.

Returns:

Particular segment of the Device address prefix.

NRF_STATIC_INLINE void nrf_radio_dacnf_set(NRF_RADIO_Type *p_reg, uint8_t ena, uint8_t txadd)

Function for setting device address match configuration.

Note

Read more about configuring device address match in the Product Specification.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • ena[in] Device address matching bitmask.

  • txadd[in] TxAdd bitmask.

NRF_STATIC_INLINE uint8_t nrf_radio_dacnf_ena_get(NRF_RADIO_Type const *p_reg)

Function for getting ENA field of the Device address match configuration register.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

ENA field of the Device address match configuration register.

NRF_STATIC_INLINE uint8_t nrf_radio_dacnf_txadd_get(NRF_RADIO_Type const *p_reg)

Function for getting TXADD field of the Device address match configuration register.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

TXADD field of the Device address match configuration register.

NRF_STATIC_INLINE void nrf_radio_mhmu_search_pattern_set(NRF_RADIO_Type *p_reg, uint32_t radio_mhmu_search_pattern)

Function for setting MAC Header Match Unit search pattern configuration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • radio_mhmu_search_pattern[in] Search Pattern Configuration.

NRF_STATIC_INLINE uint32_t nrf_radio_mhmu_search_pattern_get(NRF_RADIO_Type const *p_reg)

Function for getting MAC Header Match Unit search pattern configuration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Search Pattern Configuration.

NRF_STATIC_INLINE void nrf_radio_mhmu_pattern_mask_set(NRF_RADIO_Type *p_reg, uint32_t radio_mhmu_pattern_mask)

Function for setting MAC Header Match Unit pattern mask configuration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • radio_mhmu_pattern_mask[in] Pattern mask.

NRF_STATIC_INLINE uint32_t nrf_radio_mhmu_pattern_mask_get(NRF_RADIO_Type const *p_reg)

Function for getting MAC Header Match Unit pattern mask configuration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Pattern mask.

NRF_STATIC_INLINE void nrf_radio_modecnf0_set(NRF_RADIO_Type *p_reg, bool fast_ramp_up, uint8_t default_tx)

Function for setting Radio mode configuration register 0.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • fast_ramp_up[in] Use fast radio ramp-up time

  • default_tx[in] Default TX value during inactivity.

NRF_STATIC_INLINE bool nrf_radio_modecnf0_ru_get(NRF_RADIO_Type const *p_reg)

Function for getting ramp-up time configuration of the Radio mode configuration register 0.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Return values:
  • true – If the ramp-up time is set to fast.

  • false – If the ramp-up time is set to default.

NRF_STATIC_INLINE uint8_t nrf_radio_modecnf0_dtx_get(NRF_RADIO_Type const *p_reg)

Function for getting default TX value of the Radio mode configuration register 0.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Default TX value.

NRF_STATIC_INLINE void nrf_radio_fast_ramp_up_enable_set(NRF_RADIO_Type *p_reg, bool enable)

Function for enabling or disabling fast ramp-up setting.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • enable[in] True if fast ramp-up is to be enabled, false otherwise.

NRF_STATIC_INLINE bool nrf_radio_fast_ramp_up_check(NRF_RADIO_Type const *p_reg)

Function for checking fast ramp-up time configuration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

true If the ramp-up time is set to fast.

Returns:

false If the ramp-up time is set to default compatible with 180nm radio.

NRF_STATIC_INLINE void nrf_radio_sfd_set(NRF_RADIO_Type *p_reg, uint8_t sfd)

Function for setting IEEE 802.15.4 start of frame delimiter.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • sfd[in] IEEE 802.15.4 start of frame delimiter.

NRF_STATIC_INLINE uint8_t nrf_radio_sfd_get(NRF_RADIO_Type const *p_reg)

Function for getting IEEE 802.15.4 start of frame delimiter.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

IEEE 802.15.4 start of frame delimiter.

NRF_STATIC_INLINE void nrf_radio_ed_loop_count_set(NRF_RADIO_Type *p_reg, uint32_t ed_loop_count)

Function for setting number of iterations to perform ED scan.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • ed_loop_count[in] Number of iterations during ED procedure.

NRF_STATIC_INLINE void nrf_radio_ed_cca_period_set(NRF_RADIO_Type *p_reg, uint8_t ed_period)

Function for setting the period of a ED/CCA iteration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • ed_period[in] Duration of a single ED/CCA iteration.

NRF_STATIC_INLINE uint8_t nrf_radio_ed_sample_get(NRF_RADIO_Type const *p_reg)

Function for getting Energy Detection level.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

IEEE 802.15.4 energy detect level.

NRF_STATIC_INLINE void nrf_radio_cca_configure(NRF_RADIO_Type *p_reg, nrf_radio_cca_mode_t cca_mode, uint8_t cca_ed_threshold, uint8_t cca_corr_threshold, uint8_t cca_corr_cnt)

Function for configuring the IEEE 802.15.4 clear channel assessment.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • cca_mode[in] Mode of CCA.

  • cca_ed_threshold[in] Energy Detection threshold value.

  • cca_corr_threshold[in] Correlator Busy Threshold.

  • cca_corr_cnt[in] Limit of occurances above Correlator Threshold. When not equal to zero the correlator based signal detect is enabled.

NRF_STATIC_INLINE void nrf_radio_power_set(NRF_RADIO_Type *p_reg, bool radio_power)

Function for setting power mode of the radio peripheral.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • radio_power[in] If radio should be powered on.

NRF_STATIC_INLINE uint32_t nrf_radio_cte_time_get(NRF_RADIO_Type const *p_reg)

Function for getting the CTE time parsed from received packet.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

CTE time.

NRF_STATIC_INLINE uint32_t nrf_radio_cte_type_get(NRF_RADIO_Type const *p_reg)

Function for getting the CTE type parsed from received packet.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

CTE type.

NRF_STATIC_INLINE uint32_t nrf_radio_cte_rfu_get(NRF_RADIO_Type const *p_reg)

Function for getting the CTE RFU parsed from received packet.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

CTE RFU.

NRF_STATIC_INLINE nrf_radio_dfe_switch_state_t nrf_radio_dfe_switch_state_get(NRF_RADIO_Type const *p_reg)

Function for getting the current state of DFE switching state machine.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

State of switching state machine.

NRF_STATIC_INLINE nrf_radio_dfe_sample_state_t nrf_radio_dfe_sample_state_get(NRF_RADIO_Type const *p_reg)

Function for getting the current state of DFE sampling state machine.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

State of sampling state machine.

NRF_STATIC_INLINE void nrf_radio_cteinline_configure(NRF_RADIO_Type *p_reg, nrf_radio_cteinline_conf_t const *p_config)

Function for setting the configuration of CTE inline mode.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_config[in] Pointer to the structure with CTE inline mode configuration.

NRF_STATIC_INLINE void nrf_radio_dfectrl_configure(NRF_RADIO_Type *p_reg, nrf_radio_dfectrl_conf_t const *p_config)

Function for setting the direction finding configuration.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_config[in] Pointer to the structure with direction finding configuration.

NRF_STATIC_INLINE void nrf_radio_dfe_pattern_pin_set(NRF_RADIO_Type *p_reg, uint32_t pin, uint8_t pos)

Function for configuring the specified GPIO pin for antenna control.

Parameters:
NRF_STATIC_INLINE void nrf_radio_dfe_pattern_add(NRF_RADIO_Type *p_reg, uint8_t pin_mask)

Function for adding single pattern to the array of GPIO patterns for antenna control.

The GPIO pattern array size is 40 entries. This function configures single pattern consisting of 8 pins. To set subsequent pattern, call this function again. To get total number of currently configured patterns use nrf_radio_dfe_pattern_cnt_get(). To clear the array of GPIO patterns use nrf_radio_dfe_pattern_clear().

Warning

A minimum number of 3 patterns must be written.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • pin_mask[in] Bitmask specifying pins to be used in this switching pattern. Each bit corresponds to the index of the pin configured with nrf_radio_dfe_pattern_pin_set().

NRF_STATIC_INLINE void nrf_radio_dfe_patterns_add(NRF_RADIO_Type *p_reg, uint8_t const *p_pin_masks, size_t length)

Function for adding multiple patterns to the array of GPIO patterns for antenna control.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_pin_masks[in] Pointer to the array of bitmasks specifying pins to be used in subsequent switching patterns.

  • length[in] Bitmask array length.

NRF_STATIC_INLINE uint32_t nrf_radio_dfe_pattern_cnt_get(NRF_RADIO_Type const *p_reg)

Function for getting number of currently configured GPIO patterns for antenna control.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Number of patterns.

NRF_STATIC_INLINE void nrf_radio_dfe_pattern_clear(NRF_RADIO_Type *p_reg)

Function for clearing all of the currently configured GPIO patterns for antenna control.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

NRF_STATIC_INLINE void nrf_radio_dfe_buffer_set(NRF_RADIO_Type *p_reg, uint32_t *p_buffer, size_t length)

Function for setting the buffer for storing IQ samples or magnitude and phase pairs of the samples.

Note

Each sample or pair is stored on a 32-bit word.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

  • p_buffer[in] Pointer to the buffer for storing IQ samples or magnitude and phase of the samples.

  • length[in] Maximum number of samples to receive.

NRF_STATIC_INLINE uint32_t nrf_radio_dfe_amount_get(NRF_RADIO_Type const *p_reg)

Function for getting the number of stored IQ samples or magnitude and phase pairs of the samples during last transaction.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Return values:

Amount – of samples.

NRF_STATIC_INLINE uint32_t nrf_radio_dfe_current_amount_get(NRF_RADIO_Type const *p_reg)

Function for getting the number of bytes transferred in the current transaction.

Parameters:
  • p_reg[in] Pointer to the structure of registers of the peripheral.

Returns:

Number of bytes.

struct nrf_radio_packet_conf_t
#include <nrf_radio.h>

Packet configuration.

Public Members

uint8_t lflen

Length on air of LENGTH field in number of bits.

uint8_t s0len

Length on air of S0 field in number of bytes.

uint8_t s1len

Length on air of S1 field in number of bits.

bool s1incl

Include or exclude S1 field in RAM.

uint8_t cilen

Length of code indicator - long range.

nrf_radio_preamble_length_t plen

Length of preamble on air. Decision point: TASKS_START task.

bool crcinc

Indicates if LENGTH field contains CRC or not.

uint8_t termlen

Length of TERM field in Long Range operation.

uint8_t maxlen

Maximum length of packet payload.

uint8_t statlen

Static length in number of bytes.

uint8_t balen

Base address length in number of bytes.

bool big_endian

On air endianness of packet.

bool whiteen

Enable or disable packet whitening.

struct nrf_radio_cteinline_conf_t
#include <nrf_radio.h>

Configuration for CTE inline mode.

Public Members

bool enable

Enable or disable parsing of CTEInfo from received packet.

bool info_in_s1

Indicates whether CTEInfo is in S1 byte or not.

bool err_handling

Enable or disable switching and sampling when CRC is not OK.

nrf_radio_cteinline_time_range_t time_range

Maximum range of CTE time.

nrf_radio_cteinline_rx_mode_t rx1us

Spacing between samples during switching period for AoD 1 us.

nrf_radio_cteinline_rx_mode_t rx2us

Spacing between samples during switching period for AoD 2 us or AoA 4 us.

uint8_t s0_pattern

S0 bit pattern to match.

uint8_t s0_mask

S0 bit mask to set which bit to match.

struct nrf_radio_dfectrl_conf_t
#include <nrf_radio.h>

Direction finding configuration.

Public Members

uint8_t dfe_len

Length of the AoA/AoD procedure in number of 8 µs units.

nrf_radio_dfectrl_extension_t extension

State in which CTE extension is added and antenna switching/sampling is done.

nrf_radio_dfectrl_switch_spacing_t switch_spacing

Interval between antenna changes in the switching state.

nrf_radio_dfectrl_sample_spacing_t spacing_ref

Interval between samples in the reference period.

nrf_radio_dfectrl_sample_type_t sample_type

Indicates whether to sample I/Q or magnitude/phase.

nrf_radio_dfectrl_sample_spacing_t sample_spacing

Interval between samples in the switching period.

uint8_t gain_steps

Number of gain steps lowering the total gain at the start of CTE .

int16_t switch_offset

Signed value offset after the end of the CRC before starting switching expressed in 16 Mhz cycles.

int16_t sample_offset

Signed value offset before starting sampling expressed in 16 Mhz cycles relative to the beginning of the reference state.