Hello everyone!
I need some help here. I am trying to build a transceiver using 2 nrf24l01+ modules with hd44780 LCDs for printing.
Here is the problem; The two rf modules communicate succesfully printing the correct character to the LCD, but after the reading of the data the IRQ pin doesn’t go back to HIGH. It keeps being low, so the LCD then starts printing garbage.
Any ideas?
Thank you very much.
Are you clearing the RX_DS interrupt bit in the STATUS register after you read out the RX packet?
No, it suppose to clean itself because i just read it.
everythin:
No, it suppose to clean itself because i just read it.
Not true. As noted in p. 59 of v1.0 of the nRF24L01+ datasheet, you must manually clear the IRQ status bits in the STATUS register (RX_DR, TX_DS, and MAX_RT). They do not clear automatically in any case that I'm aware of.
According to the product specification v2.0
“The RX_DR IRQ is asserted by a new packet arrival event. The procedure for handling this interrupt should be: 1) read payload through SPI, 2) clear RX_DR IRQ, 3) read FIFO_STATUS to check if there are more payloads available in RX FIFO, 4) if there are more data in RX FIFO, repeat from 1)”
So, I guess you 're right. Thank you.