nRF24 / RF24

OSI Layer 2 driver for nRF24L01 on Arduino & Raspberry Pi/Linux Devices
https://nrf24.github.io/RF24
GNU General Public License v2.0
2.21k stars 1.02k forks source link

how to Change TX_ADDR? #523

Closed imohammad74 closed 4 years ago

imohammad74 commented 5 years ago

I coding a Arduino's program. it worked well but after some day it break and don't send or receive data. I printed the NRF24L01 configuration and result was:

STATUS       = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1     = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
TX_ADDR      = 0xf0f0f0f0d2
RX_PW_P0-6   = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA        = 0x3f
EN_RXADDR    = 0x02
RF_CH        = 0x4c
RF_SETUP     = 0x07
CONFIG       = 0x0f
DYNPD/FEATURE    = 0x3f 0x04
Data Rate    = 1MBPS
Model        = nRF24L01+
CRC Length   = 16 bits
PA Power     = PA_MAX

I I run a sample code "pingpair_dyn.ino" in get NRF configuration details.So compare between ttwo result "pingpair_dyn.ino"

STATUS       = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1     = 0xf0f0f0f0e1 0xf0f0f0f0d2
RX_ADDR_P2-5     = 0xc3 0xc4 0xc5 0xc6
TX_ADDR      = 0xf0f0f0f0e1
RX_PW_P0-6   = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA        = 0x3f
EN_RXADDR    = 0x02
RF_CH        = 0x4c
RF_SETUP     = 0x07
CONFIG       = 0x0f
DYNPD/FEATURE    = 0x3f 0x04
Data Rate    = 1MBPS
Model        = nRF24L01+
CRC Length   = 16 bits
PA Power     = PA_MAX

The TX_ADDR is different in this results. how to change TX_ADDR in my program ? Thanks

TMRh20 commented 5 years ago

Use openWritingPipe per http://tmrh20.github.io/RF24/classRF24.html#af2e409e62d49a23e372a70b904ae30e1 to change tx addr.

On Sep 1, 2019, at 08:29, S.Mohammad.R Razmara notifications@github.com wrote:

I coding a Arduino's program. it worked well but after some day it break and don't send or receive data. I printed the NRF24L01 configuration and result was:

STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xf0f0f0f0e1 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xf0f0f0f0d2 RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00 EN_AA = 0x3f EN_RXADDR = 0x02 RF_CH = 0x4c RF_SETUP = 0x07 CONFIG = 0x0f DYNPD/FEATURE = 0x3f 0x04 Data Rate = 1MBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX I I run a sample code "pingpair_dyn.ino" in get NRF configuration details.So compare between ttwo result "pingpair_dyn.ino"

STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0 RX_ADDR_P0-1 = 0xf0f0f0f0e1 0xf0f0f0f0d2 RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6 TX_ADDR = 0xf0f0f0f0e1 RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00 EN_AA = 0x3f EN_RXADDR = 0x02 RF_CH = 0x4c RF_SETUP = 0x07 CONFIG = 0x0f DYNPD/FEATURE = 0x3f 0x04 Data Rate = 1MBPS Model = nRF24L01+ CRC Length = 16 bits PA Power = PA_MAX The TX_ADDR is different in this results. how to change TX_ADDR in my program ? Thanks

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

imohammad74 commented 5 years ago

What's it "CONFIG"? I changed the pipes and TX_ADDR changed and corrected . But now CONFIG is difference between them. I have generally question: Should "NRF Configuration" be same at Raspberry (3b+) and Arduino Uno?

TMRh20 commented 5 years ago

What's it "CONFIG"?

Its the hex value of the Config register of the nrf chip. See page 54 of here

Should "NRF Configuration" be same at Raspberry (3b+) and Arduino Uno?

Not necessarily, especially if one is in RX mode and one is in TX mode.