Now I am using nRF24L01 to set a simple 3 point star network.I use pipe 1 as the physical address of the point,pipe 0 as the broadcast address.All pipe is no ack.
Now,I set the physical address of point 2,also pipe 1 of point 2,as C1 C1 C1 C1 C1,then set the transmit address of the point 1 as C1 C1 C1 C1 C1.But, there is transmitting,no receiving, if I use the pipe 0 as the physical address, there is no problem.
Can anyone help me?
My setting:
Point 1(TX):tx address:C1 C1 C1 C1 C1
Point 2(RX):pipe 1 address:C1 C1 C1 C1 C1
No receiving.
If I set as follows:
Point 1(TX):tx address:C1 C1 C1 C1 C1
Point 2(RX):pipe 0 address:C1 C1 C1 C1 C1
No problem.
Register map:
EN_AA=0x00,EN_RXADDR=0x03
Is there any further requirements of register map to use pipe 1,2…?
I would first suggest leaving all the default addresses on the pipes of your RX unit. Enable each pipe at the RX by setting its payload width appropriately (something > 1 that matches the number of bytes you want to send from the TX). Then, at your TX, set the TX address to pipe 0, and send a packet to it. Next set the TX address to pipe 1, send a packet. Do this until you have gotten to the point of being able to ping all 6 pipes at the RX. Only then should you try to start changing the addresses, etc. Tutorial 3 on my website does this automatically, and also prints out the statistics of each pipe’s pings.
Thank you for quick reply!
Last night,I figured out pipe 1 with the default address,but pipe 2…still doesn’t work.This morning,I changed the array used for store the address:
first,I define as follow:
unsigned char phyadd[5]={0xC2,0xC2,0xC2,0xC2,0xC3};
then,I change to:
unsigned char phyadd[5]={0xC3,0xC2,0xC2,0xC2,0xC2};
Then,pipe 2,3…worked.That’s because the SPI transmit LSByte first.
After that,I use auto ack with all pipe,the device also can work properly.But when I enable a specific pipe to auto ack,ex.pipe 5,there is transmiting,but no receiving.
I am puzzled.In the TX unit, there should be MAX_RT interrupt,if there is no receving,but I got TX_DS interrupt in the TX unit.Why?
Thanks again!