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

NRF24L01+ one RX and two or more TX

I am working one one star network system with NRF24L01+. I got success with one pair (Single TX and Single RX) on communicating. But I could not get any positive result for three TX and one RX. I read may be hundred time the data sheet and also some tutorial pdfs but still no sucess. I have some questions as follows; Can I work in normal RX and TX mode to establish a network for one RX and let say three TX? If not what system I have to use Shock Burst or Enhanced Shock Burst. If I need to use one of them How I can set up them. Because there is not any specific informations on data sheet indicating you should do these things..... . for working in that modes.

I give you here my config figures and I kindly ask you to clarify where I am doing wrong. RX Side: Config Register=bx00111011, EN_AA Register=bx00000111, EN_RXADDR=bx00000111, SETUP_AW=bx00000011, SETUP_RETR=bx00000011, RF_CH=bx00000010, RF_SETUP=bx00001110, RX_ADDR_P0=b7,b7,b7,b7,b7 , RX_ADDR_P1=c5,c5,c5,c5,c5, RX_ADDR_P2=c4,c5,c5,c5,c5 (C4 is the Byte0) , RX_PW_P0=bx00000100, RX_PW_P1=bx00000100, RX_PW_P2=bx00000100

TX1 Side: Config Register=bx01111010, EN_AA Register=bx00000111, EN_RXADDR=bx00000111, SETUP_AW=bx00000011, SETUP_RETR=bx00000011, RF_CH=bx00000010, RF_SETUP=bx00001110, TX_ADDR=b7,b7,b7,b7,b7, RX_ADDR_P0=b7,b7,b7,b7,b7,

TX2 Side: Config Register=bx01111010, EN_AA Register=bx00000111, EN_RXADDR=bx00000111, SETUP_AW=bx00000011, SETUP_RETR=bx00000011, RF_CH=bx00000010, RF_SETUP=bx00001110, TX_ADDR=c4,c5,c5,c5,c5 (C4 is the Byte0), RX_ADDR_P0=c4,c5,c5,c5,c5 (C4 is the Byte0),

Rgds Ete

  • If you send something via the nRF24L01+ Radio you already use SB or ESB. ESB is enabled by default, you can configure to use SB as in section 7.9 in the spec.

    When you mention you got success on one on one communication, which address did you use? Can you receive packet from TX2 ?

    You can first try to verify all the pipes (or at least pipe0, pipe 1 and pipe 2) can receive data, use just one TX, and change the address to test on each pipe. After that you can test when both running.

  • I am getting data form TX0 (over Pipe0) and TX1 (Over Pipe1) nothing else. IF I enable also Pipe2 the system is becoming blocked. RX can not get any data from T0-T1-TX2. I used default settings. I already tried to anble all the pipes and gave all necessary figures but nothing is changed. I am thinking I have an address problem. I am giving $C3 as the address to the Pipe2 (which is also default) I am using on TX2 as TX adress C2-C2-C2-C2-C3 and RX_Adres_P0 same. The C3 figure is given first to the NRF (as LSB byte) and following other C2 figures) I am reading in RX and also TX2 what address has been written they are right. But it does not work. I do not know why. I checked the SB packet format and I see there a preambl one byte. Do I need to add this to the my payload this preambl or NRF is arranging it automatically. I have no idea what I have to do for that format.!!!!

    Erol

  • Just checked your other case. Very strange that when you enable pipe 2 , the other pipes stopped working.

    On the PTX side there is a little bit unusual that you enable EN_RXADDR on PTX. Could you check to set it to 0x01 only ? If you try to change Pipe 2 address to something else would the same thing happen ?

  • I checked already all the configurations. My last logical decision was to anbale only one pipe which is P0 and nothing else. But again this also has not worked. Erol

  • But you mentioned, it worked for you on one on one communication, and also you said in the other case that P0 and P1 worked fine ?

Related