This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Nordic52840 --- How to fixed PHY rate at 500 and 125 Kbps.

Hello everyone

I am a beginner in BLE.

I am working on nRF5_SDK_14.1.0-Nordic with nRF52840-PDK.

#define BLE_GAP_PHY_1MBPS 0x01 /**< 1 Mbps PHY. */
#define BLE_GAP_PHY_2MBPS 0x02 /**< 2 Mbps PHY. */
#define BLE_GAP_PHY_CODED 0x04 /**< Coded PHY. */

Is CODED support 500/125Kbps ?  Is auto change PHY rate betwen  500kbps and 125kbps ?

How to fixed PHY rate at 500 and 125 Kbps ?

Thaks

 Louis

Parents
  • Hi Andreas.

    You said to Louis: "SoftDevice 6.1.0 is able to receive at 125 kbps and 500 kbps. But it can only transmit at 125 kbps" and also changing to  ".scan_phys     = BLE_GAP_PHY_CODED," in the scanner. But then, how the scanner knows whether to decode the received PDUs at 125 Kbps or 500 Kbps?

    Thanks 

  • Hi.

    The header of Coded packets is always transmitted on S=8  (125 kbps), in the header there is a bit saying if the rest of the payload packet is S=8 or S=2 (500 kbps). Both decoding schemes are supported at the same time in the HW.

    Best regards,

    Andreas

  • Hi Andreas.

    Then If I got you right, when you want your extended advertising to benefit from the BT5 4xRange advantage (according to page 2565 on the BT Specification Version 5.0-Vol 6, Part B),  you must set the Coding Indicator (CI Field on the FEC block 1 of the transmitted LE CODE PHY packet) to force S=8 coding over the FEC block 2.  Otherwise, when you are working at 4xRange, you may receive the FEC block 1 but certainly not FEC block 2, since it will reach the receiver with only two symbols per bit coding and the receiver error correction scheme won't be able to compensate the noise at this range. Am I right? and if I am, how can you set this CI Field value to either S=2 or S=8?

    Thanks and,

    Best Regards

  • Hi.

    It is correct that if FEC1 is S=8 and FEC2 is S=2, it will not make any sence.

    But as I said in my previous reply, in the HW implementation for FEC2 we decode FEC2 in regards to what is set in CI.

    If CI is S=8 then FEC2 is decoded as S=8, if CI is S=2 then FEC2 is decoded as S=2.

    This is at the RX side, you don't "set" the CI field here.

    Best regards,

    Andreas

Reply
  • Hi.

    It is correct that if FEC1 is S=8 and FEC2 is S=2, it will not make any sence.

    But as I said in my previous reply, in the HW implementation for FEC2 we decode FEC2 in regards to what is set in CI.

    If CI is S=8 then FEC2 is decoded as S=8, if CI is S=2 then FEC2 is decoded as S=2.

    This is at the RX side, you don't "set" the CI field here.

    Best regards,

    Andreas

Children
Related