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

Interrupt reception on the TX side seems inconsistent for nRF2401+

So the interrupt on the nRF2401+ seems to be working inconsistently. I get interrupts sometimes and sometimes I don't. 

For a context: I'm transmitting a sensor data only when the user types in something in the command line. And sometimes I have also seen IRQ triggering even though none of the interrupt bits are set `(RX_DR, TX_DS, MAX_RT)`.

Following is what I'm printing after sending a payload. You can see dynamic payload length, PWR_UP are enabled and PRIM_RX is disabled (TXing), but interrupt never gets fired.

Her'es a function for transmitting payload:

Parents
  • Can you change to:

  • HAL_Delay() only provides a minimum of 1ms apparently, but I can look into it. Any reason behind a 10us delay?

  • 10us is the minimum value, but if you keep CE high long (e.g. until transmission is complete, some time after >130us) then chip will stay in TX mode or go to standby-II mode. It is more common to return to standby-I mode (which is the case if CE <130us). Refer to the radio control state diagram in nRF24L01P datasheet.

    Best regards,
    Kenneth

  • From what I am seeing in the state diagram, the mode is switched from Standby I to TX mode upon setting PRIM_RX to 0 and CE is set for more than 10us. 
    It returns to standby I mode if CE is set to 0 and standby II if CE remains high. 

    It does mention that TX setting is 130us but i'm not sure if that refers to going back to either of the standby modes from TX mode 

  • Sorry Kenneth I didn't quite understand the idea behind adding a 10us delay 

  • I think it is easier if you can test it at the moment, then we can first identify it is the cause.

    Kenneth

  • adding 10us delay didn't help

Reply Children
No Data