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