[199] USBD: USBD cannot receive tasks during DMA

This anomaly applies to IC Rev. Engineering D, build codes QIAA-DA0, CKAA-DA0.

It was inherited from the previous IC revision Rev 1 nRF52840.

Symptoms

The USBD does not perform incoming tasks.

Conditions

The USBD is performing a DMA transfer.

Consequences

If any EasyDMA transfer is in progress, USB tasks cannot be used.

Workaround

To enable incoming tasks when using DMA, use the following code when starting a DMA transfer:

*(volatile uint32_t *)0x40027C1C = 0x00000082;
After the DMA transfer is completed, use:

*(volatile uint32_t *)0x40027C1C = 0x00000000;