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

nRF51 addressing to nRF2401A

Hello,

I am using the nRF51 transmitter_pca10028 example to try to communicate with legacy systems using nRF2401A.

I could achieve nRF51 TX to nRF24 RX successfully, but only if I set all three nRF24 address bytes in the base address word and set BALEN to 3, which causes the nRF24 to receive the address prefix byte as a first payload byte. All my attempts to set the BALEN to 2 and put the third nRF24 address byte in the prefix failed to be received by the nRF24. I first worked with CRC disabled on both to isolate the addressing problem.

For example, the nRF51 code works: NRF_RADIO->BASE0 = bytewise_bitswap(0x5550C311UL); with BALEN=3 and nRF24 address beeing 0x55, 0x50, 0xC3.

However the nRF51 does not work with:

 NRF_RADIO->PREFIX0 = 
        ((uint32_t)swap_bits(0xC3) << 24) 
      | ((uint32_t)swap_bits(0xC2) << 16) 
      | ((uint32_t)swap_bits(0xC1) << 8)
      | ((uint32_t)swap_bits(0xC3) << 0); //byte of interest

NRF_RADIO->BASE0 = bytewise_bitswap(0x5550C311UL);
BALEN=2, TXADDRESS=0.

I tried several combinations of bit endianness but none worked.

Is there a reason for the nRF2401A not to be able to understand a 3byte address using the prefix byte? Thank you!

Michael

Parents Reply Children
No Data
Related