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.

  • I was also interested in data whitening with ESB.

    Seems if I modify ESB such that:

    1) Set Radio's MODE to BLE_2Mbit (as described earlier)

    2) Enable data whitening in PCNF1 register (as described earlier)

    3)   *** Initialize DATAWHITEIV to 0x40 (Reset value)

    If I apply these settings to TX and RX:  radio transmissions are successful.

    If I apply these settings with the exception of turning off the PCNF1 whitening register bit on 1 side or the other (so TX PCNF1 whitening enabled / RX PCNF1 whitening disabled, or vice versa) :  radio transmissions stop working in both cases.

    I am guessing that data whitening is functional when both sides have the 3 modifications applied.

    Tommy

Related