Cómo lograr un bajo consumo de energía con ATTINY85

1

Estoy creando un proyecto que utiliza un ATTINY85. La mayoría de las veces, el circuito debe estar apagado y consumir la menor cantidad de energía posible. De acuerdo con la hoja de datos, en el modo de apagado, el microcontrolador consume 0.1 μA a 1.8V. Estoy energizando el circuito usando dos baterías AAA en serie, lo que da alrededor de 3V, por lo que espero un mayor consumo de energía, pero aún en el mismo orden, pero hasta ahora estoy obteniendo 300 μA en modo de apagado.

He eliminado todo de mi código, excepto el código de administración de energía para tratar de aislar el problema:

#include "Arduino.h"
#include <avr/sleep.h>
#include <avr/power.h>

void setup()
{
  cli();  // Disable interrupts

  // Reduce the clock frequency to conserve power
  clock_prescale_set(clock_div_128);

  // Disable all modules
  power_all_disable();
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);

  // Configure all ports as output
  // (does not seem to make any difference)
  DDRB = 0b0011111;
  PORTB = 0;
}    

void loop()
{
  sleep_enable();
  sleep_bod_disable();
  sleep_cpu();
}

Como se puede deducir del código, estoy usando la biblioteca Arduino para programar porque fue más rápido de configurar, pero no creo que esto haga ninguna diferencia. ¿Estoy equivocado?

Los fusibles son E:FF, H:DF, L:62 , así que estoy usando el oscilador interno de 8 MHz, dividido por 8. Además, uso el prescaler de reloj para dividirlo por 128, porque parece que debería reducir el consumo de energía.

Mi circuito es el siguiente:

Este diagrama no lo muestra, pero las resistencias están conectadas a los ánodos de cuatro LEDS, cuyos cátodos están conectados a tierra (por lo que los leds se encienden cuando los pines están altos).

Estoy midiendo la corriente con un multímetro cuya configuración de escala más baja es de 200 μA, por lo que creo que debería poder medir esta corriente con una precisión razonable.

¿Qué me estoy perdiendo aquí? ¿Por qué mi consumo actual es más alto de lo esperado?

    
pregunta Antoine Aubry

2 respuestas

5

Lo que faltaba era que el ADC debe estar deshabilitado antes de apagarlo:

ADCSRA &= ~ bit(ADEN); // disable the ADC
power_all_disable();

Esto redujo el consumo de energía a ~ 16 μA. Dado que hay otros componentes en el circuito, no espero alcanzar los 1 μA anunciados en la hoja de datos.

    
respondido por el Antoine Aubry
1

Para lograr los números de baja potencia de Microchip, necesita configurar todos los pines como entradas y tener el voltaje de cada pin en tierra o VCC (no permitiéndoles flotar entre VCC y GND). Agregue desplegables o desplegables en los pines, e incluso agregue desplegables en paralelo con sus LED.

    
respondido por el John Birckhead

Lea otras preguntas en las etiquetas