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

NRF24L01+ RX_ADDR_P0 and TX the same address?

I'm planning on testing an rf link with just a pair of NRF24L01+. Having battled with the PTX side and got that working i'm looking at pipes an addresses.

An answer to a another question on here suggest that power on defaults for two chips should be sufficient for the two to communicate?

The power on defaults are RX_ADDR_P0=0xE7E7E7E7E7, RX_ADDR_P1=0xC2C2C2C2C2 and TX_ADDR=0xE7E7E7E7E7.

It seems counter intuitive to me that one chip would have the same TX and RX address as another.

S

Parents
  • Hi,

    This is to ensure that the AUTO ACK-ing feature of the Enhanced ShockBurst (short: ESB) is working. ESB requires you to use the RF_PIPE0 as the reception pipe for the ACK.

    This means that if you want to send w/ACK you must always ensure that RX_ADDR_P0 = TX_ADDR.

    Cheers, Håkon

  • I've just tried this out, no luck though.

    On the micro i've initialised with:

    CONFIG=0xe STATUS=0x70 //clear previous interupts FLUSH_TX FLUSH_RX

    And in the TX routine i have:

    STATUS=0x70 //clear previous interrupts FLUSH_TX //clear tx fifo write TX_PAYLOAD raise CE for 15us

    I'm testing the RX side on a pi using some python code i found on github. It doesn't receive anything and it prints its config as:

    STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xc2c2c2c2c2 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xe7e7e7e7e7 RX_PW_P0-6 = 0x05 0x05 0x00 0x00 0x00 0x00 EN_AA = 0x3f EN_RXADDR = 0x03 RF_CH = 0x02 RF_SETUP = 0x07 CONFIG = 0x0f DYNPD/FEATURE = 0x00 0x00 Data Rate = 1MBPS Model = nRF24l01+ CRC Length = 16 bits PA Power = PA_HIGH

    Should this work?

    S

Reply
  • I've just tried this out, no luck though.

    On the micro i've initialised with:

    CONFIG=0xe STATUS=0x70 //clear previous interupts FLUSH_TX FLUSH_RX

    And in the TX routine i have:

    STATUS=0x70 //clear previous interrupts FLUSH_TX //clear tx fifo write TX_PAYLOAD raise CE for 15us

    I'm testing the RX side on a pi using some python code i found on github. It doesn't receive anything and it prints its config as:

    STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xc2c2c2c2c2 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xe7e7e7e7e7 RX_PW_P0-6 = 0x05 0x05 0x00 0x00 0x00 0x00 EN_AA = 0x3f EN_RXADDR = 0x03 RF_CH = 0x02 RF_SETUP = 0x07 CONFIG = 0x0f DYNPD/FEATURE = 0x00 0x00 Data Rate = 1MBPS Model = nRF24l01+ CRC Length = 16 bits PA Power = PA_HIGH

    Should this work?

    S

Children
No Data
Related