[212] SAADC: Events are not generated when switching from scan mode to no-scan mode with burst enabled

This anomaly applies to Revision 2, build codes CIAA-Ex0, QFAA-Ex0, QFAB-Ex0.

It was inherited from the previous IC revision Revision 1.

Symptoms

SAADC stops working.

Conditions

Any of the following:
  • Switching from multiple channels to single channel when BURST is disabled and acquisition time < 10 μs.
  • Switching from multiple channels to single channel when BURST is enabled.

Consequences

SAADC does not generate the expected events.

Workaround

Execute the following code before changing the channel configuration:
 
volatile uint32_t temp1;
volatile uint32_t temp2;
volatile uint32_t temp3;

temp1 = *(volatile uint32_t *)0x40007640ul;
temp2 = *(volatile uint32_t *)0x40007644ul;
temp3 = *(volatile uint32_t *)0x40007648ul;

*(volatile uint32_t *)0x40007FFCul = 0ul; 
*(volatile uint32_t *)0x40007FFCul; 
*(volatile uint32_t *)0x40007FFCul = 1ul;

*(volatile uint32_t *)0x40007640ul = temp1;
*(volatile uint32_t *)0x40007644ul = temp2;
*(volatile uint32_t *)0x40007648ul = temp3;
After the workaround is executed, the SAADC configuration is reset. Before use all registers must be configured again.