Estoy creando un proyecto que usa un ATTINY85. La mayor parte del tiempo, el circuito debe estar apagado y consumir la menor cantidad de energía posible. Según la hoja de datos, en el modo de apagado, el microcontrolador consume 0,1 μA a 1,8 V. Estoy alimentando el circuito con dos baterías AAA en serie, lo que da alrededor de 3 V, por lo que espero un mayor consumo de energía, pero aún en el mismo orden, pero hasta ahora obtengo 300 μA en modo de apagado.
Eliminé 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 inferir 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. ¿Me equivoco?
Los fusibles son E:FF, H:DF, L:62
, así que estoy usando el oscilador interno de 8 MHz, dividido por 8. También uso el preescalador 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 200 μA, por lo que creo que debería poder medir esta corriente con una precisión razonable.
¿Que me estoy perdiendo aqui? ¿Por qué mi consumo actual es más alto de lo esperado?
Lo que faltaba era que el ADC debe desactivarse 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 el 1 μA anunciado en la hoja de datos.
Para lograr los números de baja potencia de Microchip, debe configurar todos los pines como entradas y tener el voltaje de cada pin a tierra o VCC (sin permitir que floten entre VCC y GND). Agregue pull-downs o pull-ups en los pines, e incluso agregue pull-downs en paralelo con sus LED.
Andy alias
broma
broma
antoine aubry
antoine aubry
usuario16222
antoine aubry
broma
broma
antoine aubry
antoine aubry
broma
antoine aubry
broma
broma
broma
servidor local