cc2538_rf.h¶
Low-level radio driver for the CC2538.
-
CC2538_AUTOCRC_LEN¶ 1
(2)
-
CC2538_RF_FIFO_SIZE¶ 1
(128)
-
CC2538_PACKET_LENGTH_SIZE¶ 1
(1)
-
CC2538_RF_MAX_DATA_LEN¶ 1
(CC2538_RF_FIFO_SIZE - CC2538_PACKET_LENGTH_SIZE)
-
CC2538_EUI64_LOCATION_PRI¶ Primary EUI-64 address location.
1
(0x00280028)
-
CC2538_EUI64_LOCATION_SEC¶ Secondary EUI-64 address location.
1
(0x0027FFCC)
-
IEEE802154_MIN_FREQ¶ Min.
1
(2405)
frequency (2405 MHz)
-
IEEE802154_MAX_FREQ¶ Max.
1
(2480)
frequency (2480 MHz)
-
IEEE802154_CHANNEL_SPACING¶ Channel spacing in MHz.
1
(5)
-
IEEE802154_CHAN2FREQ( chan)¶ 1
( IEEE802154_MIN_FREQ + ((chan) - IEEE802154_CHANNEL_MIN) * IEEE802154_CHANNEL_SPACING )
-
IEEE802154_FREQ2CHAN( freq)¶ 1
( IEEE802154_CHANNEL_MIN + ((freq) - IEEE802154_MIN_FREQ) / IEEE802154_CHANNEL_SPACING )
-
CC2538_MIN_FREQ¶ 1
(2394)
-
CC2538_MAX_FREQ¶ 1
(2507)
-
CC2538_RF_POWER_DEFAULT¶ Default output power in dBm.
1
(IEEE802154_DEFAULT_TXPOWER)
-
CC2538_RF_CHANNEL_DEFAULT¶ 1
(IEEE802154_DEFAULT_CHANNEL)
-
OUTPUT_POWER_MIN¶ Min output power in dBm.
1
(-24)
-
OUTPUT_POWER_MAX¶ Max output power in dBm.
1
(7)
-
NUM_POWER_LEVELS¶ 1
( OUTPUT_POWER_MAX - OUTPUT_POWER_MIN + 1 )
-
CC2538_CORR_VAL_MIN¶ 1
(50U)
-
CC2538_CORR_VAL_MAX¶ 1
(110U)
-
CC2538_CORR_VAL_MASK¶ 1
(0x7F)
-
CC2538_RSSI_OFFSET¶ Signal strength offset value.
1
(-73)
-
CC2538_RF_SENSITIVITY¶ dBm typical, normal conditions
1
(-97)
-
RFCORE_ASSERT( expr)¶ 1
(void)( (expr) || RFCORE_ASSERT_failure(#expr, __FUNCTION__, __LINE__) )
-
RFCORE_WAIT_UNTIL( expr)¶ 1 2 3 4
while (!(expr)) { \ DEBUG("RFCORE_WAIT_UNTIL(%s) at line %u in %s()\n", #expr, __LINE__, __FUNCTION__); \ thread_yield(); \ }
-
RFCORE_FLUSH_RECEIVE_FIFO()¶ 1
rfcore_strobe(ISFLUSHRX)
-
ABS_DIFF( x, y)¶ 1
( ((x) < (y))? ((y) - (x)) : ((x) - (y)) )
-
BOOLEAN( x)¶ 1
( (x) != 0 )
-
NOT( x)¶ 1
( (x) == 0 )
-
GET_BYTE( buffer, index)¶ 1
( (unsigned char*)(buffer) )[index]
-
BIT( n)¶ 1
( 1 << (n) )
-
OBSSEL_EN¶ 1
BIT(7)
-
enum
@13¶ - FSM_STATE_IDLE
= 0 - FSM_STATE_RX_CALIBRATION
= 2 - FSM_STATE_TX_CALIBRATION
= 32
- FSM_STATE_IDLE
-
enum
@14¶ - STROBE_ERR
= BIT(6) - TXUNDERF
= BIT(5) - TXOVERF
= BIT(4) - RXUNDERF
= BIT(3) - RXOVERF
= BIT(2) - RXABO
= BIT(1) - NLOCK
= BIT(0)
- STROBE_ERR
-
enum
@15¶ - ENERGY_SCAN
= BIT(4) - AUTOACK
= BIT(5) - AUTOCRC
= BIT(6) - APPEND_DATA_MODE
= BIT(7)
- ENERGY_SCAN
-
enum
@16¶ - ACT_UNUSED
= BIT(0) - SFD
= BIT(1) - Start of frame event.
- FIFOP
= BIT(2) - SRC_MATCH_DONE
= BIT(3) - SRC_MATCH_FOUND
= BIT(4) - FRAME_ACCEPTED
= BIT(5) - RXPKTDONE
= BIT(6) - End of frame event.
- RXMASKZERO
= BIT(7)
- ACT_UNUSED
-
enum
@17¶ - rfc_obs_sig0
= 0 - rfc_obs_sig1
= 1 - rfc_obs_sig2
= 2
- rfc_obs_sig0
-
enum
@18¶ - constant_value_0
= 0x00 - constant_value_1
= 0x01 - rfc_sniff_data
= 0x08 - rfc_sniff_clk
= 0x09 - rssi_valid
= 0x0c - demod_cca
= 0x0d - sampled_cca
= 0x0e - sfd_sync
= 0x0f - tx_active
= 0x10 - rx_active
= 0x11 - ffctrl_fifo
= 0x12 - ffctrl_fifop
= 0x13 - packet_done
= 0x14 - rfc_xor_rand_i_q
= 0x16 - rfc_rand_q
= 0x17 - rfc_rand_i
= 0x18 - lock_status
= 0x19 - pa_pd
= 0x20 - lna_pd
= 0x2a
- constant_value_0
-
void
_irq_handler(void)¶ IRQ handler for RF events.
-
bool
cc2538_channel_clear(void)¶ Trigger a clear channel assessment.
Return values
- True if channel is clear
- False if channel is busy
-
uint64_t
cc2538_get_addr_long(void)¶ Get the configured long address of the device.
Return values
- The currently set (8-byte) long address
-
uint16_t
cc2538_get_addr_short(void)¶ Get the configured short address of the device.
Return values
- The currently set (2-byte) short address
-
uint64_t
cc2538_get_eui64_primary(void)¶ Get the primary (burned-in) EUI-64 of the device.
Return values
- The primary EUI-64 of the device
-
unsigned int
cc2538_get_chan(void)¶ Get the configured channel number of the device.
Return values
- The currently set channel number
-
bool
cc2538_get_monitor(void)¶ Check if device is in monitor (promiscuous) mode.
Return values
- True if device is in monitor mode
- False if device is not in monitor mode
-
uint16_t
cc2538_get_pan(void)¶ Get the configured PAN ID of the device.
Return values
- The currently set PAN ID
-
int
cc2538_get_tx_power(void)¶ Get the configured transmission power of the device.
Return values
- The currently configured transmission power in dBm
-
void
cc2538_init(void)¶ Initialise the CC2538 radio hardware.
-
bool
cc2538_is_on(void)¶ Check if device is active.
Return values
- True if device is active
- False if device is not active
-
void
cc2538_off(void)¶ Deactivate the CC2538 radio device.
-
bool
cc2538_on(void)¶ Activate the CC2538 radio device.
-
void
cc2538_setup(cc2538_rf_t * dev)¶ Setup a CC2538 radio device for use with netdev.
Parameters
dev: Device descriptor
-
void
cc2538_set_addr_short(uint16_t addr)¶ Set the short address of the device.
Parameters
addr: (2-byte) short address to set
-
void
cc2538_set_addr_long(uint64_t addr)¶ Set the long address of the device.
Parameters
addr: (8-byte) short address to set
-
void
cc2538_set_chan(unsigned int chan)¶ Set the channel number of the device.
Parameters
chan: Channel number to set
-
void
cc2538_set_freq(unsigned int MHz)¶ Set the frequency of the device.
Parameters
MHz: Frequency to set in MHz
-
void
cc2538_set_monitor(bool mode)¶ Enable/disable monitor (promiscuous) mode for the device.
Parameters
mode: True for enable, false for disable
-
void
cc2538_set_pan(uint16_t pan)¶ Set the PAN ID of the device.
Parameters
pan: PAN ID to set
-
void
cc2538_set_state(cc2538_rf_t * dev,netopt.h::netopt_state_tstate)¶ Set the state of the device.
Parameters
dev: Device descriptor state: State to set device to
-
void
cc2538_set_tx_power(int dBm)¶ Set the transmission power for the device.
Parameters
dBm: Transmission power to set in dBm
-
struct
cc2538_rf_t¶ Device descriptor for CC2538 transceiver.
-
netdev_ieee802154_t
netdev¶ netdev parent struct
-
uint8_t
state¶ current state of the radio
-
netdev_ieee802154_t