Bluetooth Coded PHY decoding algorithm (nRF52840)

Convolutional codes are used to provide forward error correction (FEC) in Bluetooth Coded PHY.
From literature I find that the Viterbi algorithm is often (but not always) used. However, from the nRF52840 documentation I cannot find a mention of the FEC decoding algorithm implemented in hardware. Is this information available?


Image from the Bluetooth Core v5.3 specification page 2733:

Parents Reply Children
  • Hi Simonr,

    Could you clarify for me the flow of how packets are processed then?

    1. I use the MPSL Timeslot API to control the radio directly. From your answer I understand that packets are still processed/decoded by the SoftDevice to some degree before being passed to the application? (I thought this was all achieved in the RADIO peripheral hardware)

    2. The nRF52840 supports Bluetooth Long Range. I thought this support meant it was hardware-dependent (hence why some chips don't support it), but it sounds like this is only on the transmission side for encoding then? 

    3. Finally, looking at the Bluetooth specification bit stream processing diagram I attached, the CRC generation is performed on unencoded bits. The CRC check is likewise performed on unencoded bits.
    Because the CRC generation and check are part of the RADIO block diagram for the nRF52840 I assumed this meant both were realized in the RADIO hardware. How is the CRC check then achieved in hardware for a long range packet if the packet is never decoded by an FEC decoding unit before the CRC check is performed?

    Edit: Or might I have a basic misunderstanding of what the "SoftDevice controller" encompasses? Are some hardware parts (like that of the RADIO peripheral) also considered part of the SoftDevice Controller link-layer/physical layer?


    Best Regards
    Casper

Related