Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

Multiprotocol Support (BLE and IEEE-802.15.4)

I am working on developing an application for nRF52833 DK (PCA10100) using nRF5 SDK_v17.1 and nRF_802.15.4 Radio driver v1.6. I am using the s122 Soft device on the device. I don't have enough experience with multiprotocol. I used the ble_app_uart_c example in the SDK for this. The application works in the central role on the BLE and can communicate with the peripheral device by connecting it. When BLE is not active, it can send packets over IEEE-802.15.4 radio. I want to run IEEE-802.15.4 radio and BLE as multiprotocol on the device. But right after connecting to peripheral device with BLE, I can only send one packet over IEEE-802.15.4 and then I cannot send another packet. As long as the BLE connection is established, packets can be sent over IEEE-802.15.4 only for a short time at the beginning. How can I fix this situation?

Note: The BLE peripheral device only responds to my commands, so I don't have to keep receive open all the time.

Parents Reply
  • I added NRF_SDH_SOC_OBSERVER and soc_event_handler to the code.

    After calling nrf_802154_transmit function, soc_event_handler is called with evt_id = NRF_EVT_HFCLKSTARTED and transmitted from packet radio. Then after the nrf_802154_transmitted function is called, soc_event_handler is called with evt_id = NRF_EVT_HFCLKSTARTED. However, after that, when the nrf_802154_transmit function is called, there is no call to soc_event_handler.

    I guess the BLE side doesn't leave the radio to IEEE-802.15.4. What should I do to fix this?

Children
Related