I’m working in double buffer mode. I’ve noted that, in case of a good reception event, the high-to-low transition of the IRQ line is spurious and my host gets a second rising-edge IRQ event. I’ve further seen the spike with the oscilloscope. The spurious falling edge occurs while the host program is clearing SYS_STATUS_ALL_RX_GOOD flags in the dwt_isr callback. This seems not to appear in single-buffer reception mode. My IRQ line is pulled-down and I do rx re-enable manually. Is this behavior correct or is my module misconfigured?
We also had this problem and solved it by doing the procedure specified in the following block diagram in the user manual:
Figure 14: Flow chart for using double RX buffering
So we added the HSRBP==ICRBP comprpobation, the masking/unmasking to protect the clear event and, at the end, the toggle of the pointer, and it was solved.