Hacer que una batería dure mucho tiempo en un circuito de microcontrolador

Espero alimentar un ATtiny85V durante mucho tiempo con una batería pequeña, probablemente una celda de moneda.

Investigué el lado del software, y mi código está controlado por un temporizador de vigilancia, tiene convertidores analógicos y digitales sin usar apagados, el chip funciona a 1 MHz, etc. Por supuesto, al estar ocupado y ser nuevo en esto, no estoy exactamente seguro. cuánta corriente está consumiendo, pero espero haberla minimizado básicamente.

Cada pocos segundos se despierta, verifica su nivel de voltaje en los ADC, lo graba en ram y vuelve a dormir. Si detecta que hay una línea serial conectada, arroja los datos.

Sin embargo, ahora estoy mirando el circuito como un todo y me pregunto si hay cosas que debo hacer para que el circuito como un todo sea más amigable con la batería.

¿Cuáles son los pros y los contras básicos cuando se trata de diseñar un circuito de larga duración (simple) donde un componente (el microcontrolador) tiene un consumo de corriente repetitivo pero variable?

Por ejemplo:

  • ¿Es un indicador LED un gran problema? ¿Está consumiendo la batería cuando está brillante? ¿Debo ponerle una resistencia gigante para atenuarlo, o eso solo hace que la resistencia use la batería?
  • ¿Debo usar condensadores de derivación/desacoplamiento para igualar el consumo de corriente de la batería, o el condensador simplemente desperdiciará la energía de la batería?
  • El microcontrolador solo necesita 1,8 V, pero no tengo baterías de 1,8 V. ¿Debo usar dos baterías 1.x y enviarle demasiado voltaje? ¿Puedo prolongar la vida útil de la batería al "no usar tantos voltios"? ¿Cómo puedo hacer eso?
  • ¿Se necesita energía adicional para verificar si un pin está ALTO o BAJO? Al igual que en comparación con un no-op o alguna aritmética, ¿hay mucho uso de energía adicional al verificar uno de los pines de E / S de GP para su estado?

Sé vagamente cómo calcular (y más vagamente cómo medir) la corriente, el voltaje, la potencia, pero no estoy seguro de cuál de esas cosas equivale a la duración de la batería. ¿La medida importante de la duración de la batería es en Coulombs?

Tengo esta vaga idea de que las baterías están llenas de cosas como:

  • carga, como en amperios-hora
  • energía, como en vatios-hora
  • potencia, como en vatios

pero no tengo muy claro qué "come" mi circuito cuando se ejecuta. He leído una buena cantidad de libros de texto de física y EE101, pero en realidad no tengo ninguna experiencia de laboratorio. En otras palabras, he leído mucho sobre baterías, pero no estoy muy seguro de qué significa la mayor parte en la práctica.

¿Las resistencias agotan la vida de la batería? ¿Los condensadores? ¿Los diodos? Sospecho que todos lo hacen, pero ¿cuáles de los números son los que importan? ¿Impedancia? ¿Disipación de potencia? ¿Actual? ¿Voltaje?

¿Hay alguna manera de bajar el voltaje sin gastar batería? ¿Hay alguna manera de reducir el voltaje y aumentar la vida útil de la batería?

Esta es una pregunta muy muy amplia. Casi necesitas hacer varias preguntas. Podría dar una pregunta completa para la pregunta de potencia del LED.
Genial, lo dividiré después del horario de oficina. Tal vez este sea solo lo que se debe y lo que no se debe hacer. Creo que tales respuestas serían útiles para las personas que solo intentan sacar más provecho de una batería, pero supongo que dar cualquier tipo de respuesta autorizada o educativa requiere una pregunta más específica.
Sí, me di cuenta de que iba a tener que dividir mi respuesta por tu pregunta y me tomaría una hora.
Por cierto, mi esposa encontró makezine.com/makeitlast que eventualmente podría ser útil, ya que es básicamente un concurso para hacer este tipo de cosas. Creo que comienza hoy, por lo que no tienen ninguna pista publicada sobre cómo hacerlo. En cualquier caso, mi proyecto es independiente, y dudo que tenga tiempo de participar de todos modos :) Siéntase libre de esperar hasta que termine el concurso si no le gustan esas cosas.

Respuestas (5)

Solo una lista aleatoria, si publica su esquema probablemente sería más fácil:

Las celdas tipo moneda de litio de 1,8 V son muy fáciles de encontrar, pero es más probable que su interfaz serie necesite 3,3 V. A menos que su extremo receptor trate con 1.8V.

La corriente de fuga generalmente aumenta a medida que aumenta el voltaje, por lo que, por lo general, cuanto más bajo, mejor. Considere también el punto de caída del sistema frente a las características de la batería. Las características de 'muerte' de la batería estarán determinadas por la química de la batería que utilice. Por ejemplo, si su uC se oscurece a 1,7 V, es posible que desee utilizar una batería de mayor voltaje, ya que con algunas baterías, el voltaje de salida disminuirá lentamente a medida que la batería se agota. Obtendrá más vida útil de una batería de 3,3 V, ya que cuando comienza a agotarse, su salida disminuirá lentamente y podrá operar hasta 1,8 V. Si usa una batería de 1.8V, se apagará bastante rápido a medida que la batería se agote. Todo esto supone que su interfaz en serie u otros componentes pueden manejar un amplio rango de voltaje (sé que el AVR puede hacerlo).

Los LED usan mucha energía, a menos que use un LED de muy baja potencia y esté controlando su consumo de corriente, probablemente esté consumiendo mucha más corriente que el AVR. Si solo está ahí para la depuración, no lo rellene para la producción o solo haga que parpadee de vez en cuando o algo así para minimizar su tiempo, y definitivamente controle su consumo actual.

Si puede, elija la polaridad / estado de reposo de su interfaz serial para consumir la menor cantidad de energía posible, su estado de reposo no debería consumir energía. Si se requieren pull ups, use la resistencia más grande posible para mantener la integridad de la señal pero minimice el uso de corriente. Si la energía es una gran preocupación, use un esquema de señal que favorezca los bits que no consumen energía. Por ejemplo, si tiene pull-ups, el uso de un protocolo que da como resultado muchos 1 en la señal dejará la interfaz serial en un estado que no consume tanta energía la mayor parte del tiempo. Tales optimizaciones solo valen la pena si hace un uso intensivo del bus serie. Si se usa muy poco, solo asegúrese de que su estado de reposo no esté consumiendo energía.

En términos generales, puede suponer que todas las instrucciones (leer GPIO, etc.) requieren la misma cantidad de energía. No es realmente cierto, pero la diferencia de potencia es mínima.

El uso de energía depende mucho más de la cantidad/tipo de periféricos que haya encendido y de la cantidad de tiempo que el micro pasa activo frente a dormido. Entonces, el ADC usa más energía, las escrituras EEPROM usan una buena cantidad de energía. Específicamente, algo como las escrituras en la EEPROM generalmente se realizan en "fragmentos" bastante grandes, por lo que debe acumular tanta información como pueda antes de escribir en la EEPROM (si es que la está usando, por supuesto). Para el ADC que micro admite hacer la lectura de ADC durante 2 de sus estados de suspensión, ya que la conversión de ADC lleva un tiempo relativamente largo, este es un buen momento para dormir.

Probablemente debería leer las secciones sobre administración de energía, estados de suspensión y minimización del uso de energía en la hoja de datos del microcontrolador: enlace en la página 35 en adelante. Mantenga el AVR en el estado de suspensión más profundo posible durante el mayor tiempo posible. La única excepción a esto es que debe considerar el tiempo de encendido y apagado. No vale la pena dormir 10 ciclos si despertar toma 25, etc.

¿Las resistencias agotan la vida de la batería? ¿Los condensadores? ¿Los diodos?

Todos lo hacen hasta cierto punto. Las resistencias se disipan más en la mayoría de las aplicaciones:

P = V*I

P = V ^ 2 / R o P = I ^ 2 * R (donde V es la caída de voltaje en la resistencia)

Los diodos tienen una caída de voltaje (relativamente) fija, por lo que la disipación de energía está ligada casi exclusivamente a la corriente que pasa a través del diodo. Por ejemplo, un diodo con una caída de tensión directa de 0,7 V, P = 0,7 * I si la corriente avanza a través del diodo. Esta es una simplificación, por supuesto, y debe verificar el modo de operación según las características IV del diodo.

En teoría, los condensadores no deberían disipar ninguna potencia, pero en realidad tienen una resistencia en serie finita y una corriente de fuga distinta de cero, lo que significa que disipan algo de potencia, aunque generalmente no es algo de lo que deba preocuparse con voltajes tan bajos. Dicho esto, elegir condensadores con una corriente de fuga mínima y ESR es una ganancia de energía.

En cuanto a usarlos para suavizar el consumo de batería, esto realmente no ayuda para el uso de energía, es más para filtrar. También la química de la batería entra en juego aquí, algunas químicas serán más felices con un consumo constante, algunas lidian mejor con consumos de corriente puntiagudos.

la parte importante de P = V ^ 2 / R es que a medida que R aumenta con un voltaje fijo, el uso de energía disminuye.
Genial, así que para usar más batería, probablemente necesite un voltaje más alto (posiblemente usando el regulador sugerido por Andrew). Haré algunos experimentos para ver qué tan bajo de voltaje tomará la línea serial. También me aseguraré de configurar los pines no utilizados para la salida. La serie solo se usa ocasionalmente, así que solo verificaré el estado del resto. Definitivamente he intentado apagar todos los periféricos que puedo.
Para condensadores: probablemente no necesite ningún condensador para ayudar a la batería. Verifique la química de la batería, pero suponiendo que pueda manejar el patrón de drenaje de corriente que tengo, entonces no es necesario intentar ajustarlo, ¿verdad?
Gracias por lo de P. Creo que ahora entiendo. P = I*V donde V es la caída de voltaje, por lo que puedo medir el consumo de batería en P o I (o P-horas o I-horas) siempre que no se pueda cambiar el voltaje. Todavía no estoy seguro si puedo cambiar V "gratis".
El regulador buck-boost mencionado por Andrew es realmente la mejor solución. No lo mencioné porque el diseño de dichos circuitos suele ser crítico. Son difíciles de probar sin un rendimiento funky o irradiando toneladas de EMI. Lea atentamente la hoja de datos, generalmente se incluyen recomendaciones para el diseño y la identificación de rutas críticas. También habrá restricciones más estrictas en algunas de las partes utilizadas. Condensadores ESR bajos y tal.
Errar otra cosa en el regulador: intente encontrar una pieza con un interruptor interno y voltaje fijo si es posible, eliminará un montón de rutas críticas de las que debería preocuparse en el diseño.
El litio es 3V, no 1.8V
@stevenvh dependiendo de la química que elija, las celdas de litio vienen en 1.5 a 3.7V ish.
@ Mark: lo siento, estaba pensando en los litios clásicos no recargables, esa es la designación común si no especifica la amalgama. Esos existen solo en 3V.

Mark dio una respuesta excelente y acertó en muchos de los puntos que iba a presentar. Hay algunos que me gustaría contribuir también.

Utilice un osciloscopio con una resistencia de bajo ohmio en serie con el retorno a la batería común para realizar mediciones de corriente. El consumo de corriente con un microcontrolador no es sencillo y, como regla general, los medidores son MUCHO demasiado lentos para darle una buena idea de lo que está sucediendo. Lo que significa "bajo ohmio" depende del consumo de corriente esperado. una resistencia de 1 ohm desarrollará 100 mV por cada 100 mA consumidos, y eso probablemente sea demasiado para usted. Probaría con una resistencia de 10 ohmios al 1% o al 0,5%; verá 100 mV por cada 10 mA de consumo actual. 18 ohmios le darían 100 mV por cada 5,5 mA. Si REALMENTE busca poca potencia, es posible que pueda salirse con la suya con 1k; I=V/R: verá 100mV por cada 100uA de corriente consumida. Aunque con cuidado; si consume suficiente corriente, terminará cayendo demasiado a través de la derivación y sus mediciones estarán mal, sin mencionar que el circuito probablemente no funcionará. :-)

Con el osciloscopio conectado, pruebe algunas frecuencias operativas diferentes para el microcontrolador. Es posible que se sorprenda al saber que consume menos energía con una velocidad de reloj más alta porque pasa mucho menos tiempo "despierto".

Elimine los pull-ups/downs tanto como sea posible. No debería tener ninguno en ninguna salida, ya que puede llevarlos a un estado inactivo en la mayoría de los casos. Las entradas deben vincularse a lo que tiene sentido, utilizando un valor lo más alto posible, como dijo Mark.

Asegúrese de que su microcontrolador esté lo más apagado posible. Convierta los pines no utilizados en salidas y llévelos a un estado (alto o bajo, no importa). No deje los LED encendidos. Si puede apagar otros componentes o detener sus relojes, hágalo. Las memorias SPI Flash, por ejemplo, a menudo tienen un comando de 'apagado' que tomará el ya bajo consumo de energía y lo reducirá aún más.

Otros han tocado el aspecto del voltaje, y me gustaría comentarlo también. Es probable que acabe con un uso MUCHO mejor de la batería si utiliza un regulador reductor/elevador de alta eficiencia entre la batería y su circuito. El regulador estará en modo buck (reducción de voltaje) cuando el nivel de la batería sea superior a los 1,8 V que necesita, y cambiará al modo boost (aumento de voltaje) cuando el nivel de la batería caiga por debajo de 1,8 V. Esto le permitirá hacer funcionar el circuito hasta que la batería esté completamente agotada, lo que bien vale la pena por el pequeño porcentaje de pérdida de eficiencia que obtendrá al usarlos. Asegúrese de seleccionar el regulador en función de su eficiencia en todo el rango que desee utilizar y dimensione el regulador de forma adecuada; un regulador que puede entregar 1A al 98% de eficiencia probablemente tenga una eficiencia del 60% entregando 50mA. Lea atentamente las hojas de datos.

Frio. No he usado un osciloscopio antes, pero sospecho que nuestro laboratorio local estará feliz de mostrarme esto (ahora mismo estoy usando el multímetro en serie para medir la corriente; no muy bien). – Además, ¿recomendaría el regulador incluso si solo estoy usando 1-10 mA, suponiendo que pueda encontrar una pieza adecuada? ¿Es suficiente una eficiencia del 90% (recuerdo haber encontrado uno barato en ese rango), o está usando más corriente de la que me ahorra?
muy buen punto sobre jugar con la frecuencia, me recuerda cómo la radio wifi en mi teléfono celular usa más energía que el módem celular, pero wifi es mucho más rápido que puede dormir más y termina siendo mejor en general debido a eso.
Otro truco para estimar el uso de corriente promedio del microcontrolador en el tiempo en escenarios donde el consumo de corriente será "ráfaga" es cargar un capacitor realmente grande y hacer que alimente un regulador de corriente de reposo bajo para simular el voltaje de la batería. Un condensador de 100.000 uF caerá 0,01 voltios por miliamperio-segundo. Si cae 0,3 voltios en cinco minutos (300 segundos), su consumo de corriente promedio es de 100 uA.
El punto de la eficiencia de los reguladores es muy importante. Entonces, debe estimar su rango de consumo de corriente para seleccionar un regulador apropiado dentro de ese rango

Con su circuito, recomendaría usar un multímetro en el rango de microamperios para medir el consumo de corriente. Luego, dadas las características de la batería, puede calcular la duración. No es necesariamente amperios-hora/corriente, ya que la batería tendrá diferentes características de descarga para diferentes cargas. Pero, puede ser útil como una aproximación.

A 1 MHz, creo que consumirá un poco de energía, al menos 100 µA, si los micros PIC son algo con lo que comparar. Pero esto se verá abrumado por los 5 mA a 20 mA que atraviesan su LED, por lo que debe deshacerse de eso primero.

Genial, LED borrado. Tener dificultades para obtener una medición precisa. Parece 0,9 mA en este momento, por lo que tal vez mi software no se está apagando tanto como pensaba. Con Arduino (y el LED de latidos del corazón) involucrados, es más como 8-9 mA, por lo que al menos lo pequeño está ayudando.

En estos días, existen kits de desarrollo y placas de conexión fácilmente disponibles que son extremadamente útiles para realizar mediciones precisas de corriente, en algunos casos hasta el rango de nA. Si aún no lo ha hecho, consulte µCurrent Gold . Esto es bueno para mediciones estáticas pero menos para registrar mediciones a lo largo del tiempo.

Una forma en que aún puede usar la µCurrent es conectar un amplificador de diferencia a la salida. Luego puede alimentar eso a un osciloscopio o un analizador lógico con entradas analógicas. Escribí un tutorial completo de tuercas y tornillos . Siento que puede ayudar a las personas con un presupuesto limitado que no tienen las herramientas adecuadas.

Es sorprendente lo que puede aprender no solo de lo que hace el voltaje dentro de su circuito, sino también de cómo reacciona a cada pequeño pico de corriente. Me salvó el trasero un par de veces al elegir tecnologías de batería y pruebas de validación. 😎

Todas las respuestas ya tienen puntos importantes. Voy a añadir uno de mi experiencia.

Cuando estaba desarrollando dispositivos con un consumo de menos de 10uA, incluso menos de 1uA en modo de suspensión profunda, la limpieza de la placa marcó la diferencia. Una vez tuve 7 de 10 tableros con el consumo de corriente esperado. Todos eran iguales y todos funcionaban bien. Después de limpiarlos en un limpiador ultrasónico, todos los tableros obtuvieron el resultado esperado.

Y por último, estima tu consumo esperado/objetivo consultando las fichas técnicas de todos tus elementos. Si los maneja bien, llegará a su estimación. Esto incluye todos los pines no utilizados en el microcontrolador. Incluso si apaga su ADC, asegúrese de que la configuración de pines mientras está apagado sea la mejor dependiendo de su conexión externa.