RX_ADDR_Pn Registers

Address

0x0A to 0x0F

Description

The six RX_ADDR_Pn registers are used to set the addresses for the six Rx data pipes.

Contents

This table is copied from the nRF24L01 product specification (page 55).  Unlike previous tables, this table describes the registers themselves, not bit fields in the registers.

Name
Bit
Reset Value
Type Description
RX_ADDR_P0 39:0 0xE7E7E7E7E7 R/W Receive address data pipe 0. 5 Bytes maximum length. (LSByte is written first. Write the number of bytes defined by SETUP_AW)
RX_ADDR_P1 39:0 0xC2C2C2C2C2 R/W Receive address data pipe 1. 5 Bytes maximum length. (LSByte is written first. Write the number of bytes defined by SETUP_AW)
RX_ADDR_P2 7:0 0xC3 R/W Receive address data pipe 2. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8]
RX_ADDR_P3 7:0 0xC4 R/W Receive address data pipe 3. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8]
RX_ADDR_P4 7:0 0xC5 R/W Receive address data pipe 4. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8]
RX_ADDR_P5 7:0 0xC6 R/W Receive address data pipe 5. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8]

Comments

Only pipes 0 and 1 can have addresses with 5 unique bytes.  Pipes 2-5 share the first four bytes of pipe 1’s address.  The default addresses are as follows:

Pipe Default Address
0 0xE7E7E7E7E7
1 0xC2C2C2C2C2
2 0xC2C2C2C2C3
3 0xC2C2C2C2C4
4 0xC2C2C2C2C5
5 0xC2C2C2C2C6

This assumes that the radio is using 5-byte addresses.  For 3- or 4-byte addresses, the one or two most significant bytes are ignored.  For example, for 3-byte addresses the pipe 0 default is 0xE7E7E7 and the pipe 5 default is 0xC2C2C6.  If any of the four most significant bytes in pipe 1’s address are changed, then they will be changed in the addresses of pipes 2-5.

Some thought needs to be put into constructing addresses.  An address should not have long plateaux or valleys (i.e. very long strings of 1s or 0s with just one transition), or it may be interpreted as noise.  It should also not start with long strings of alternating bits, because that can be interpreted as a continuation of the preamble byte that starts every packet.  The preamble is 01010101 if the address starts with a 0, or 10101010 if the address starts with a 1. For example, the following addresses should be avoided:

Address Comment
0xFFFFF00000 There is only one transition from a plateau of 1s to a valley of 0s; this will be interpreted as noise.
0x55ABCDEF55 The start of the address is a continuation of the preamble, and the address may not be read correctly.

The software driver allows an application to broadcast packets.  This feature uses 0xEDB7EDB7ED as the broadcast address.  The address is only special to the driver presented in this project, it has no inherent meaning to the radio, but if the driver is being used then 0xEDB7EDB7ED should not be used for non-broadcast purposes.