Hello,
I use the nRF52840DK with direct programmed registers for NRF_RADIO peripheral to send and receive 802.15.4 frames. I have also a separate laptop with nRF52840 USB Dongle and Wireshark and the 80201504 sniffer plugin to monitor what's on air.
I can receive frames from another sender, but when entering the RADIO_IRQHandler, something strange happens.: I get a flood of ADDRESS and PAYLOAD interrupts and I can not clear them by writing the value to 0 again. At first I was not sure why I was constantly in RADIO_IRQHandler again so I counted the different interrupt types of events.
Only these 3 IRQs should be active, the 3 lines before waiting for packets are:
NRF_RADIO->INTENSET = RADIO_INTENSET_READY_Msk | RADIO_INTENSET_PAYLOAD_Msk | RADIO_INTENSET_END_Msk;
NRF_RADIO->TASKS_RXEN = 1;
NVIC_EnableIRQ(RADIO_IRQn);
I see the frame data in my g_recvPacket array that my PACKETPTR points to and which is sent that is sent by the other station, it shows in Wireshark too, all good here. But I can't get rid of the ADDRESS and PAYLOAD IRQs, how can they be cleared ? as can be seen in second picture, the IRQ counts for these shoot up, all other remain low.
What is required to clear these interrupts correctly ?