nRF52840 Radio receiving with CRC

Hi

I have nRF52840 DK with nRF5_SDK_17.0.2_d674dde 

I am using radio_test example code under examples\peripheral\radio_test:

Radio Channel is fixed at 10,

The data packet is  : from x01 to 0x1F                                                                       

20 01 02 03  04 05 06 07  08 09 0A 0B  0C 0D 0E 0F                              
10 11 12 13  14 15 16 17  18 19 1A 1B  1C 1D 1E 1F                              

Normally, it is ok, but occasionally, it received with a bit error:   

uart_cli:~$ print_rx                                                           
                                                                                
20 01 02 03  04 05 06 07  08 09 0A 0B  0C 0D 0E 0F                              
10 11 12 13  14 15 56 17  18 19 1A 1B  1C 1D 1E 1F

My question is:  radio receiving is when CRCOK event occurs,

    nrf_radio_int_enable(NRF_RADIO_INT_CRCOK_MASK);

void RADIO_IRQHandler(void)
{
    if (nrf_radio_event_check(NRF_RADIO_EVENT_CRCOK))
    {
        nrf_radio_event_clear(NRF_RADIO_EVENT_CRCOK);
       / / data packet recieved here
        m_rx_packet_cnt++;
    }

  ...

}

Why the packet is still received when there is CRC error? I believe that data byte 0x16 is changed to 0x56, CRC must be different.

Did I miss something here?

Thank you,

David Zhou.

Related