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

Enabling Data Whitening for ESB Data Communication

I have one TX and another RX codes for data communication by ESB protocol. To verify whether data whitening can be enabled, I added below register setting on TX side only and let RX side use its default setting (data whitening disabled):

NRF_RADIO->PCNF1 = ((NRF_RADIO->PCNF1 & ~RADIO_PCNF1_WHITEEN_Msk) | (RADIO_PCNF1_WHITEEN_Enabled << RADIO_PCNF1_WHITEEN_Pos))

NRF_RADIO->DATAWHITEIV = 0x55

I expect the RX side should receive nothing from TX for this experiment but the RX could still receive all the packets (no CRC error) from TX without any packet drop. It looks like the data whitening was not working.

Does the ESB support data whitening? If yes, what is wrong with my setting? Thanks.

Parents Reply
  • I tested as you suggested. Both PRX and PTX were set to BLE_1Mbit and below are the 3 test cases.

    (1) If no data whitening on both PRX and PTX, PRX could receive what PTX had sent. This proves the BLE_1Mbit could work.

    (2) If data whitening on PTX, PRX could not receive anything from PTX no matter data whitening was set on PRX or not.

    (3) If no data whitening on PTX and PRX with data whitening, PRX could still receive correct payload data from PTX. This looks like data whitening was still not working.

    For another matter, I also tested BLE_2Mbit on both PRX and PTX without data whitening. The PRX could receive correct data from PTX, and this could improve the PRX sensitivity about 3dB (same as specification).

    What is the difference in the protocal level by this setting (MODE set to BLE_2Mbit) as compared to using the "SoftDevice" stack? Maybe this setting uses non-standard BLE protocol, e.g. no GATT and no profile? If yes, this means it uses "shorter" packet data than the one by standard BLE protocol? This MODE setup is only for testing, but not suggest for our find products?

    Sorry for so many questions as I would like to explore some "software" methods that can improve the PRX sensitivity while power consumption can be close to the our existing measurement level by ESB at 2Mbps. One of these is by data whitening even I guess this does not improve a lot.

    Thank you so much.

Children
Related