AVR vs SAM power consumption

Go To Last Post
12 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello,

 

i am preparing project where system has to do periodic analog measurement and send it to external circuit via serial and the whole thing is battery powered, so consumption is important. The design is pretty simple, but i am deciding between Atmega 3209 and SAM L10. The L10 is considered one of best low power cortexs, but when comparing power consumption between them, the 3209 comes out as a winner, simply to the fact that it can run at  32.768 kHz. The measurement is done and sent out only once per minute, so the speed is not an issue. Or did i miss something that would make SAML10 better?

 

SAML10 datasheet(power on page 1130+):

http://www.farnell.com/datasheets/2623123.pdf?_ga=2.126498701.1417042204.1563171205-1854375776.1554112367&_gac=1.252050939.1560851445.Cj0KCQjwl6LoBRDqARIsABllMSaykvi5BPmHD1t0hqQj3Iyd0Yf6JYs6TCwDvFAIX46Dm_sWvK56RJ4aAqREEALw_wcB

 

Atmega3209 datasheet(power on page 12+):

http://ww1.microchip.com/downloads/en/DeviceDoc/48-pin-Data-Sheet-megaAVR-0-series-DS40002016B.pdf

 

Thanks in advance for any input form your side.

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

the 3209 comes out as a winner, simply to the fact that it can run at  32.768 kHz.

Can't you also run the L10 off of the internal 32kHz clock?  I'm not sure it'll do that when exiting any of the Sleep modes ("reset" starts up with the 4MHz internal clock), and synchronization may be an issue...

 

Isn't running any sort of "Serial" off of a 32kHz clock somewhat problematic?

 

"current wisdom" is that lowest power consumption is achieved by running at higher clock rates, for less time.  I'm not quite sure how that pans out if you have tasks (like transmitting on a particular Serial) that are going to take a fixed amount of time regardless of clock rate...

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Build prototypes and measure the real world power consumption.

 

#1 This forum helps those that help themselves

#2 All grounds are not created equal

#3 How have you proved that your chip is running at xxMHz?

#4 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand." - Heater's ex-boss

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

yes, running serial of 32khz is what also worries me, but i ordered development board for both and will try to make it work at that speed. I will keep running the MCU in sleep mode 99% of time anyway and use the pulse from analog value i read as a wake up signal, read it, send it to serial and go back to sleep. 

Its probably just my habbit where i tend to use cortex core MCUs for high intensity tasks and use AVRs for simple measurement stuffs so now i kinda feel cortex is complete overkill fro the task. Didn't really think about running at low clock and then raising it when sending out data. 

Thanks for tip :D 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, since the design for both MCUs cases is as simple as it can get, it would probably really be best to do that.

 

Thanks.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

In a power sensitive app won't you be SLEEPing most of the time? That then brings you to the classic argument about sleep/power.... is it better to wake up for a long period of slow clock activity or a very short period of fast clock activity? Unless the awake period HAS to last for a long time there is probably little merit in trying to run the CPU at very low speed like 32.768k.

 

As an example say the activity you have to do is going to take 2,000 clock cycles then on 8MHz it would mean being awake for 250us. At 32.768k you would be awake for 61,035us.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Does Microchip/Atmel have any sort of power profiling software? I know SiLabs has software that will analyse your code under simulation and tell you what energy each function consumes.

#1 This forum helps those that help themselves

#2 All grounds are not created equal

#3 How have you proved that your chip is running at xxMHz?

#4 "If you think you need floating point to solve the problem then you don't understand the problem. If you really do need floating point then you have a problem you do not understand." - Heater's ex-boss

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, i will use sleep for 40-80sec, then wake up for 1 or 2 seconds and then back to sleep. I will probably just run at  1.8432 MHz core clock and utilize sleep and peripheral controller to get power consumption down. So i will probably go with L10 since it gives a lot more controller over turning on or off individual segments.

Last Edited: Fri. Jul 19, 2019 - 08:55 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brian Fairchild wrote:
Does Microchip/Atmel have any sort of power profiling software?
There is a device called "Power Debugger". Dunno what it is/does though.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
That then brings you to the classic argument about sleep/power.... is it better to wake up for a long period of slow clock activity or a very short period of fast clock activity?
Dependent on the voltage source's internal resistance.

Hardware and Firmware Issues in Using Ultra-Low Power MCUs, by Jack Ganssle

...

 

6 - Running Fast to Save Power

...

Remember how a battery's internal resistance increases as it is depleted?

...

Wake up, and Vdd drops below the minimum allowed, so the processor crashes.

...

The moral is to wake up at a low clock frequency. Ramp it up while watching Vdd, stopping a bit above the MCU's cutoff point. Be sure to factor in the needs of I/O you'll be powering up.

...

megaAVR 0-series has XMEGA's high dF/dt or ΔtCLCL (can ramp the clock); that may exist in SAM L10.

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

One of a few use cases in the Power Debugger webdoc :

Power Debugger - Reducing the Clock Frequency

 

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Update: i tested the Atmega3209 and with "power-down sleep mode" got the consumption down to 0.5 uA at 3.3V, running at 1MHz from internal oscilator and at same time achieving reliable usart functionality. Also it takes max total of 500ms to wake up, start ADC, do measurement, send via serial and go back to sleep. This will achive 5x times longer autonomy from battery that is required. 1MHz helps MCU to setart up when batetry is near dead and voltage drops (thanks gchapman for warning).

 

Thanks all for help.

Last Edited: Fri. Jul 19, 2019 - 01:39 PM