32U4 power consumption

amowry

Member
My apologies that this is about an older product, but here goes:

On this page the idle current for the Teensy 2.0 is quite a bit higher than the 32U4 datasheet seems to suggest on page 396 (around 1.5 mA for 3.3 V/8 Mhz).

I've gotten similar results to those shown on the Teensy page above, but I'm wondering why the datasheet shows such lower consumption in idle mode?
 
Maybe you're looking at "idle" (CPU not running) current rather than "active"?

Also pay close attention to the description of test conditions. Atmel specifies "active" current with all peripherals disabled. In some sense that may be useful to understand how just the CPU contributes to power usage, but if you're not careful it can paint a rather misleading picture of the power consumption you'll see in actual usage.

The PJRC numbers are actual measurements with Teensy 2.0 running a program compiled by Arduino, where USB and other peripherals are active at running in the way the software actually uses them. Much of the reason that page was written so long ago was because people had very unrealistic expectations of the power consumption because Atmel's documentation was so misleading.

However, those measurements were made in the early days of (now discontinued) Teensy 2.0 with chips Atmel manufactured at that time... about 12 years ago! Atmel was acquired by Microchip years ago, and whether they're even using the same semiconductor foundary to manufacture the chips is questionable at this point. If you were to find one of the last Teensy 2.0 before they were discontinued and repeat those measurements, odds are good you'd see some difference due to changes in manufacturing of the chips over the last decade.
 
Thanks for this reply, Paul! I was beginning to think that the datasheet is indeed misleading. I am testing idle current with most peripherals (USB, ADC, SPI, etc. turned off), and still getting 4.5 mA, which is in the same ballpark as your number for 90% idle. I’m not really sure what’s still using power, but it seems like a far cry from the datasheet’s 1.5 mA :).
 
Just in case anyone else has this question, I found that the LowPower library that I am using doesn't turn off the USB clock. When I do that using the code below before putting the MCU in idle mode, the consumption drops to 2.3 mA in idle mode, so quite an improvement, and much closer to the datasheet spec.

USBCON |= (1 << FRZCLK); // Freeze the USB Clock
PLLCSR &= ~(1 << PLLE); // Disable the USB Clock (PPL)
USBCON &= ~(1 << USBE); // Disable the USB
 
Just in case anyone else has this question, I found that the LowPower library that I am using doesn't turn off the USB clock. When I do that using the code below before putting the MCU in idle mode, the consumption drops to 2.3 mA in idle mode, so quite an improvement, and much closer to the datasheet spec.

USBCON |= (1 << FRZCLK); // Freeze the USB Clock
PLLCSR &= ~(1 << PLLE); // Disable the USB Clock (PPL)
USBCON &= ~(1 << USBE); // Disable the USB

What should be used to turn it back on?
 
Back
Top