nRF 802.15.4 Radio Driver
The nRF 802.15.4 Radio Driver is a set of libraries that implement the IEEE 802.15.4 functionalities for the SoCs from the nRF52 and nRF53 families. The following functionalities are implemented:
Frame transmission.
Frame reception and filtering.
Acknowledgments. It allows sending and receiving acknowledgments according to the protocol specification and the timing requirements. Both
Imm-Acks
andEnh-Acks
are supported.Promiscuous mode.
Low power (sleep) mode.
Carrier transmission. It allows sending a carrier wave continuously, either modulated or unmodulated. This feature can be used for radio tests.
Multiprotocol support. It allows the concurrency of Bluetooth LE and 802.15.4 operations.
CSMA/CA support. It provides a built-in CSMA/CA mechanism, optimized for performance.
Delayed transmission and reception. It allows the scheduling of transmissions and receptions, to execute them at a predefined moment. It can be used for features like CSL, TSCH, and Zigbee GPP.
Timestamping. It provides precise frame timestamps.
PA/LNA. It allows the Radio Driver to control an external PA/LNA module to amplify the RF signal.
The 802.15.4 Radio Driver consists of the following libraries:
802.15.4 Radio Core
802.15.4 Service Layer
802.15.4 Serialization
The libraries are compatible with the following SoCs:
nRF52833
nRF52840
nRF5340
The nRF 802.15.4 Radio Driver supports the CMake build system and can be directly included in a project using the CMake build system with the add_subdirectory(nrfxlib/nrf_802154)
CMake command.
To add the 802.15.4 radio driver to a project using other build systems, create build system scripts listing all the necessary 802.15.4 radio driver files to build. The lists of the necessary files can be found in the following locations:
nrfxlib/nrf_802154/driver/CMakeLists.txt
nrfxlib/nrf_802154/serialization/CMakeLists.txt
nrfxlib/nrf_802154/sl/sl/CMakeLists.txt
- Driver architecture
- Driver features
- Receiving and filtering frames
- Sending automatically ACK frames
- Setting pending bit in ACK frames
- Transmitting unicast and broadcast frames
- Performing an automatic CCA procedure before transmission
- Receiving automatically ACK frames
- Performing a stand-alone CCA procedure
- Entering low-power mode
- Performing energy detection
- Running in promiscuous mode
- Transmitting a continuous unmodulated carrier wave
- Transmitting a continuous modulated carrier wave
- Performing CSMA-CA
- Performing delayed operations
- Injecting the CSL Phase Information Element
- Supporting IEEE 802.15.4 frame security
- Injecting Thread Link Metrics IEs
- Performing retransmissions
- Supporting Front-End Modules
- Wi-Fi Coexistence module (PTA support)
- Hardware resources
- Multiprotocol support
- Antenna diversity
- nRF 802.15.4 Service Layer
- Changelog
- Main branch
- nRF Connect SDK v2.0.0 - nRF 802.15.4 Radio Driver
- nRF Connect SDK v1.9.0 - nRF 802.15.4 Radio Driver
- nRF Connect SDK v1.8.0 - nRF 802.15.4 Radio Driver
- nRF Connect SDK v1.7.0 - nRF 802.15.4 Radio Driver
- nRF Connect SDK v1.6.0 - nRF 802.15.4 Radio Driver
- nRF 802.15.4 Service Layer 0.5.0
- nRF 802.15.4 Service Layer 0.4.0
- nRF 802.15.4 Service Layer 0.3.0
- nRF 802.15.4 Service Layer 0.2.0
- API documentation
- Setting addresses and PAN ID of the device
- Functions to calculate data given by the driver
- Functions to request FSM transitions and check the current state
- Calls to the higher layer
- Driver memory management
- RSSI measurement function
- Promiscuous mode
- Auto ACK management
- CCA configuration management
- CSMA-CA procedure
- ACK timeout procedure
- Statistics and measurements
- Inter-frame spacing feature
- Radio driver run-time capabilities feature
- Radio driver MAC security feature
- Radio driver Information Element data injection feature
- Radio driver configuration
- CSMA/CA procedure configuration
- ACK timeout feature configuration
- Transmission start notification feature configuration
- Information Elements configuration
- Other functions