[166] USBD: ISO double buffering not functional

This anomaly applies to IC Rev. Engineering C, build codes QIAA-CA0, CKAA-CA0.

It was inherited from the previous IC revision Engineering B nRF52840.

Symptoms

The double buffering of the ISO EPs of the USBD is not functional.

Conditions

Always. With default settings, the buffers overlap.

Consequences

During ISO transition, received or transmitted data is likely to be corrupted.

Workaround

Reconfigure ISO buffers during initialization of USBD. After each time the USBD peripheral is enabled, apply the following code:

*((volatile uint32_t *)(NRF_USBD_BASE + 0x800)) = 0x7E3;
*((volatile uint32_t *)(NRF_USBD_BASE + 0x804)) = 0x40;