[156] GPIOTE: Some CLR tasks give unintentional behavior

This anomaly applies to IC Rev. Rev 1, build codes QFAA-B00, QFAB-B00, CIAA-B00.

It was inherited from the previous IC revision Engineering C.

Symptoms

One of the following:
  • Current consumption is high when entering IDLE.
  • Latency for detection changes on inputs connected to GPIOTE channels becoming longer that expected.

Conditions

Using the following tasks:
Address GPIOTE task
0x060 TASK_CLR[0]
0x064 TASK_CLR[1]
0x068 TASK_CLR[2]
0x06C TASK_CLR[3]
0x070 TASK_CLR[4]
0x074 TASK_CLR[5]
0x078 TASK_CLR[6]
0x07C TASK_CLR[7]

Consequences

High current consumption or too long time from external event to internal triggering of PPI event and/or IRQ from GPIOTE.

Using TASK_CLR[n] for even values of n has the side effect of setting the system in constant latency mode (see POWER->TASKS_CONSTLAT). Using TASK_CLR[n] for odd values of n has the side effect of setting the system in low power mode (see POWER->TASKS_LOWPOWER).

Workaround

To set the system back in the mode it was before using the TASK_CLR[n], triggering of tasks with even n must be followed by triggering any of the TASK_CLR with odd n and vice versa.