nrf24l01+ Transmitting But Not Receiving

Discussion about wireless devices

nrf24l01+ Transmitting But Not Receiving

Postby jdroloson » Sun Jan 15, 2012 9:23 pm

Hi.

I am trying to make an active RFID tag and reader using nrf24l01 devices. My tags transmit periodically and my receiver should just take note of which tags it hears. I am able to communicate withe my devices through SPI pretty well and my transmitter is working as far as I can tell, based on the registers. However, my receiver never receives anything in it's RX_FIFO register. I have been pounding away at this for some time now, and just can't seem to get it, so I thought I'd come here for help.

Your tutorial was great, by the way. Thank you so much for posting it.

Below I have posted the dump of my registers from both my Receiver and Transmitter devices, respectively.

Receiving Radio Registers
CONFIG 3F
EN_AA 00
EN_RXADDR 01
SETUP_AW 03
SETUP_RETR 00
RF_CH 02
RF_SETUP 2E
STATUS 0E
OBSERVE_TX 00
CD 00
RX_ADDR_P0 E7 E7 E7 E7 E7
RX_ADDR_P1 C2 C2 C2 C2 C2
RX_ADDR_P2 C3
RX_ADDR_P3 C4
RX_ADDR_P4 C5
RX_ADDR_P5 C6
TX_ADDR E7 E7 E7 E7 E7
RX_PW_P0 01
RX_PW_P1 00
RX_PW_P2 00
RX_PW_P3 00
RX_PW_P4 00
RX_PW_P5 00
FIFO_STATUS 11

Transmitting Radio Registers
CONFIG 5C
EN_AA 00
EN_RXADDR 03
SETUP_AW 03
SETUP_RETR 00
RF_CH 02
RF_SETUP 46
STATUS 14
OBSERVE_TX 00
CD 00
RX_ADDR_P0 E7 E7 E7 E7 E7
RX_ADDR_P1 C2 C2 C2 C2 C2
RX_ADDR_P2 C3
RX_ADDR_P3 C4
RX_ADDR_P4 C5
RX_ADDR_P5 C6
TX_ADDR E7 E7 E7 E7 E7
RX_PW_P0 01
RX_PW_P1 00
RX_PW_P2 00
RX_PW_P3 00
RX_PW_P4 00
RX_PW_P5 00
FIFO_STATUS 11
jdroloson
 
Posts: 1
Joined: Sun Jan 15, 2012 9:02 pm

Re: nrf24l01+ Transmitting But Not Receiving

Postby brennen » Mon Jan 16, 2012 1:36 pm

I think you may have switched base notations on some registers in your TX unit dump. It looks like at least your RF_SETUP and STATUS registers are listed in base 10, while the rest of the numbers are in hex. Please check this and re-post the numbers if you did indeed switch bases. If these values are in fact the correct hex numbers, then there is something wrong in both of them.

My suggestion to you is that when you first start, you want to change the absolute bare minimum of registers until you get the link working. If you want to turn off auto-ack, then that's fine, but I would leave every other setting as default. Change only one setting at a time and verify that the link still works as you move through getting all the settings the way you want them.

If you want to verify that you have sent a packet, you want to make sure that you are getting the TX_DS interrupt. You can look at the IRQ pin, but you also want to verify in the STATUS register that the TX_DS interrupt posted. My suggestion is to always allow all interrupts to access the IRQ pin (i.e., DO NOT mask ANY interrupts in the CONFIG register on either the TX or the RX). In the case you started using auto-ack, you may forget to re-enable the MAX_RT interrupt and you would never see it asserted (at least until you figured it out).
brennen
Site Admin
 
Posts: 395
Joined: Sun Aug 17, 2008 2:15 pm


Return to Wireless

Who is online

Users browsing this forum: No registered users and 1 guest

cron