[199] USBD: USBD cannot receive tasks during DMA

This anomaly applies to Revision 1, build codes CKAA-Cx0, QIAA-Cx0.

It was inherited from the previous IC revision Engineering C.

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;