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

RF communication data error detection

Hi.

I have RF communication between nRF24L01 + and nRF24LU1 +.

Incorrect data is transmitted occasionally during communication. So, I want to use CRC, but when CRC is enabled, communication is not possible. (Register setting = EN_CRC : 1, CRCO : 0or1)

In addition to the CONFIG register, I would like to know if there is anything else to consider using CRC.

What do you think is the reason you do not have the communication you expect?

In addition, I would like to know how to detect or prevent the transmission of erroneous data in addition to the CRC.

Thank you.

Parents
  • Tx(nRF24L01+)

      NRF_WriteRegister(0x07, 0x00);
      NRF_WriteRegister(0x01, 0x00); 
        
      NRF_FlushTX();
      NRF_FlushRX();
       
      nRF24_CSN_H();
      
      NRF_WriteRegister(0x05, 0x02); 
      NRF_WriteRegister(0x06, 0x06);
      NRF_WriteRegister(0x00, 0x0E);  // CRC 2byte
      NRF_WriteRegister(0x03, 0x03); 
      NRF_WriteRegister(0x07, 0x70);
    

    Rx(nRF24LU1+)

    CONFIG : 0x0F
    EN_AA : 0x00
    EN_RXADDR : 0x03
    SETUP_RETR : 0x00
    RF_CH : 0x02
    RF_SETUP : 0x06
    

    All remaining values ​​are default.

    Best regards

Reply
  • Tx(nRF24L01+)

      NRF_WriteRegister(0x07, 0x00);
      NRF_WriteRegister(0x01, 0x00); 
        
      NRF_FlushTX();
      NRF_FlushRX();
       
      nRF24_CSN_H();
      
      NRF_WriteRegister(0x05, 0x02); 
      NRF_WriteRegister(0x06, 0x06);
      NRF_WriteRegister(0x00, 0x0E);  // CRC 2byte
      NRF_WriteRegister(0x03, 0x03); 
      NRF_WriteRegister(0x07, 0x70);
    

    Rx(nRF24LU1+)

    CONFIG : 0x0F
    EN_AA : 0x00
    EN_RXADDR : 0x03
    SETUP_RETR : 0x00
    RF_CH : 0x02
    RF_SETUP : 0x06
    

    All remaining values ​​are default.

    Best regards

Children
No Data
Related