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

nRF24L01+ IRQ stays low after first call

Hi i'm very frustated with myself not the modules , i could make a pair of them to work perfectly in a pic 16F886 , now due to other project i have to use a dspic33fj64mc202 and i already moved the nRF24L01+ library to the dspic , i first test in the dspic the interruption on falling edge it worked fine , then i tried the spi module and worked fine as well , when i tried the whole program just to turn on a led when the interrupt rutine triggers , it doesn't work as i espected , i send something with my working transceiver as a tx , and receive in the dspic , the irq pin changes from high to low and stays forever low , this doesn't allow the interrupt rutine to trigger , and i can't find the problem , please if you could give me some help it would be awesome, thank you very much .

Parents
  • Thank you very much for your answer. I fortunately have a 4 channel oscilloscope with spi trigger & decode option, it works great to observe the spi signals, I'm using the same nrf24l01+ module on the receiver with pic and then in the receiver with dspic, the other nrf24l01+ module is always in the transmitter, so my actual problem I think is about the interrupt in the receiver, when I watch the irq on the oscilloscope it is normally high, when I send something with the transmitter the irq line on the receiver switches to low and stays low forever, causing the interrupt routine not to execute neither once, therefore the irq flag never clears since the clear irq flag is inside the interrupt routine.
    If you could suggest another try since I've already compare the spi signals in the pic and dspic and they seemed to be the same during power on so I guess the module must be configured the same way in both cases but during irq in the pic I see spi signal but in the dspic no spi signal just the irq line going low. Thanks a lot for your time I appreciate it a lot.

  • Before when the dspic still didn't work the interrupt polarity was set to trigger from low to high, that's why It wasn't working due to the irq pin in the nrf24l01+ is active low, it means the microcontroller interrupt edge polarity has to be set from high to low and not the other way around, now as it should be, the irq pin in the nrf24l01+ always is high, when the interrupt triggers the line switches to low and that behavior fires the dspic interrupt due to the change is from high to low as it was set, hope you could understand, & thanks a lot for your help.

Reply
  • Before when the dspic still didn't work the interrupt polarity was set to trigger from low to high, that's why It wasn't working due to the irq pin in the nrf24l01+ is active low, it means the microcontroller interrupt edge polarity has to be set from high to low and not the other way around, now as it should be, the irq pin in the nrf24l01+ always is high, when the interrupt triggers the line switches to low and that behavior fires the dspic interrupt due to the change is from high to low as it was set, hope you could understand, & thanks a lot for your help.

Children
No Data
Related