Choice of Oscillator

As already mentioned, the system clock greatly impacts the power consumption of the system. In addition, the choice of oscillator also impacts the power consumption. As a general guideline, this is a tradeoff between accuracy and consumption. E.g. when selecting a 32 kHz clock, the internal 32K Ultra-Low Power (ULP) oscillator will offer drastically lower power consumption than an external crystal, but the accuracy is also worse. If the application is not dependent on high accuracy, choosing the ULP oscillator will help lower the power budget.

Allowing the clock sources to be disabled during sleep modes will lower the power consumption of the oscillator. However, for oscillators with a significant wake-up time, this will shorten the amount of time spent in sleep mode. For applications requiring high-accuracy timing, enabling oscillators to run in standby by writing the corresponding RUNSTDBY bit (e.g. XOSC32KCTRLA.RUNSTDBY for the external 32K oscillator) will eliminate the start-up time, and thus improve the timing. Refer to the corresponding data sheet for details.

There are techniques that can be used to improve the accuracy of the 32K ULP. By doing periodic run-time calibration, using a high-accuracy external crystal, the accuracy of the internal 32K ULP oscillator can be greatly improved. Refer to the application note on precise, ultra-low power timing using periodic enabling of the 32.768 kHz external crystal oscillator for recalibration of the ULP internal oscillator.