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

25

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

He investigado el lado del software, y mi código está controlado por un temporizador de vigilancia, los convertidores analógicos y digitales no utilizados están apagados, el chip funciona a 1MHz, etc. Por supuesto, como estoy ocupado y nuevo en esto, estoy No estoy seguro exactamente de cuánta corriente está consumiendo, pero espero que básicamente lo haya minimizado.

Cada pocos segundos se despierta, verifica su nivel de voltaje en los ADC, los registra en RAM y vuelve a dormir. Si detecta que una línea serie está conectada, expulsa los datos.

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

  

¿Cuáles son las funciones básicas que se deben y no se deben hacer cuando se trata de diseñar un circuito de larga duración (simple) en el que un componente (el microcontrolador) tiene un consumo de corriente repetitivo pero variable?

Por ejemplo:

  • ¿Es un indicador LED una gran cosa? ¿Está gastando la batería cuando está brillante? ¿Debo colocar una resistencia gigante en ella para atenuarla, o eso solo hace que la resistencia use la batería?
  • ¿Debo usar condensadores de desvío / desacoplamiento para nivelar el consumo de corriente de la batería, o el condensador simplemente perderá la energía de la batería?
  • El microcontrolador solo necesita 1.8V, pero no tengo ninguna batería de 1.8V. ¿Debo usar dos baterías 1.x y enviarlas demasiado voltaje? ¿Puedo prolongar la vida útil de la batería al "no usar tantos voltios"? ¿Cómo hago eso?
  • ¿Se necesita energía adicional para verificar si un pin está ALTO o BAJO? Al igual que en una operación sin aritmética o no operativa, ¿hay un uso de energía adicional en la comprobación de 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 realmente seguro de cuál de estas cosas equivale a la vida útil de la batería. ¿Es la medida importante de la duración de la batería en Coulombs?

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

  • carga, como en amp-horas
  • 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 EE101 y libros de texto de física, pero realmente no tengo ninguna experiencia de laboratorio. En otras palabras, he leído un montón sobre baterías, pero no estoy realmente seguro de lo que significa la mayoría en la práctica.

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

¿Hay alguna forma de disminuir el voltaje sin perder la batería? ¿Hay alguna forma de reducir el voltaje al mismo tiempo que aumenta la vida útil de la batería?

    
pregunta Jack Schmidt

5 respuestas

20

Solo una lista aleatoria, si publicas tu esquema, probablemente sea más fácil:

¿Las celdas de la moneda de litio de 1.8V son muy fáciles de encontrar, pero es más probable que su interfaz serial necesite 3.3v? A menos que su extremo receptor se ocupe de 1.8V.

La corriente de fuga generalmente aumenta a medida que aumenta el voltaje, por lo que generalmente es mejor bajar. Considere también el punto de reducción de tensión del sistema frente a las características de la batería. Las características de "muerte" de la batería serán determinadas por la química de la batería que utilice. Por ejemplo, si su temperatura ambiente se descompone 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.3V, ya que cuando comience a morir, su salida disminuirá lentamente y podrá operar hasta 1.8V. Si usa una batería de 1.8V, se apagará bastante rápido cuando la batería se agote. Todo esto supone que su interfaz serial u otros componentes pueden lidiar con un amplio rango de voltaje (Sé que el AVR puede).

Los LED

usan mucha energía, a menos que use un LED de muy baja potencia y esté controlando su consumo de corriente, es probable que consuma mucha más corriente que el AVR. Si solo está ahí para la depuración, no la coloques para la producción o haz que parpadee de vez en cuando o algo para minimizar su tiempo y definitivamente controle su dibujo actual.

Si puede, elija el estado de polaridad / reposo de su interfaz en serie para obtener la menor cantidad de energía posible, su estado de reposo no debería ser la potencia. Si se requieren extensiones, use la resistencia más grande posible para mantener la integridad de la señal, pero minimice el uso actual. Si el poder 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 dé como resultado una gran cantidad de 1 en la señal dejará a la interfaz serial en un estado que no consumirá tanta energía la mayor parte del tiempo. Dichas optimizaciones solo valen la pena si hace un uso intensivo del bus serie. Si se usa muy a la ligera, simplemente asegúrese de que su estado de reposo no es poder de dibujo.

En general, puede asumir que todas las instrucciones (leer GPIO, etc.) requieren la misma cantidad de energía. No es realmente cierto, pero la diferencia de poder es mínima.

El uso de energía depende mucho más del número / tipo de periféricos que haya encendido, y de la cantidad de tiempo que el micro pasa activo frente a dormir. Así que el ADC usa más poder, las escrituras de EEPROM usan una cantidad justa de poder. Específicamente, algo como las escrituras de EEPROM se hace generalmente en 'trozos' bastante grandes, por lo que debería acumular la mayor cantidad de información posible antes de escribir sobre la EEPROM (si es que lo está usando, por supuesto). Para el ADC que micro es compatible con la lectura de ADC durante 2 de sus estados de suspensión, dado que la conversión de ADC toma un tiempo relativamente largo, es un buen momento para dormir.

Probablemente debería leer las secciones sobre administración de energía, estados de reposo y minimizar la energía utilizando la hoja de datos del microcontrolador: linky página 35 en. Mantenga el AVR en el estado de sueño más profundo posible el mayor tiempo posible. La única excepción a esto es que debe considerar el tiempo de inicio y apagado. No vale la pena dormir durante 10 ciclos si el despertar requiere 25, etc.

  

¿Las resistencias agotan la vida útil de la batería? ¿Condensadores? ¿Diodos?

Todos lo hacen hasta cierto punto. Los resistores 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 tensión en la resistencia)

Los diodos tienen una caída de voltaje (relativamente) fija, por lo que la disipación de energía está vinculada 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.7V, P = 0.7 * I si la corriente se está moviendo hacia adelante a través del diodo. Esto es una simplificación, por supuesto, y debe verificar el modo de operación basado en las características I-V del diodo.

Teóricamente, los condensadores no deberían disipar ninguna potencia, pero en realidad tienen una resistencia en serie finita y una corriente de fuga que no es cero, lo que significa que sí disipan algo de potencia, por lo general no es algo que deba preocuparse con tan bajos voltajes. Dicho esto, la elección de los condensadores con una corriente de fuga mínima y ESR es una ganancia de energía.

En cuanto a su uso para suavizar el uso de la batería, esto no ayuda realmente para el uso de la energía, es más para el filtrado. También la química de la batería entra en juego aquí, algunas químicas serán más felices con un sorteo constante, algunas se ocupan mejor de los sorteos de corriente de punta.

    
respondido por el Mark
12

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

Use 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 demasiado lentos para darle una buena idea de lo que está pasando. Lo que significa "low-ohm" significa depende del consumo de corriente esperado. una resistencia de 1 ohmio desarrollará 100 mV por cada 100 mA extraído, y probablemente sea demasiado para usted. Probaría una resistencia de 10 ohmios al 1% o 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 va por una potencia baja, es posible que pueda salirse con 1k; I = V / R: verás 100mV por cada 100uA de corriente extraída. Aunque cuidado si consume suficiente corriente, terminará cayendo demasiado a través de la derivación y las mediciones se desactivarán, por no mencionar que el circuito probablemente no funcionará. :-)

Con el 'ámbito conectado, intente unas pocas frecuencias de funcionamiento diferentes para el microcontrolador. Es posible que se sorprenda al saber que consume menos energía con una mayor velocidad de reloj 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 en la mayoría de los casos puede llevarlos a un estado inactivo. Las entradas deben estar vinculadas a lo que tenga sentido, utilizando el valor 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 condúzcalos 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 flash de SPI, por ejemplo, a menudo tienen un comando de "apagado" que tomará el ya reducido consumo de energía y lo hará aún más bajo.

Otros han tocado el aspecto del voltaje, y me gustaría comentarlo también. Es probable que el uso de la batería sea MUCHO mejor si utiliza un regulador de aumento / aceleración 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 más alto que los 1.8V que necesita, y cambie al modo de impulso (aumento de voltaje) cuando el nivel de la batería caiga por debajo de 1.8V. Esto le permitirá ejecutar el circuito hasta que la batería esté bien y realmente agotada, lo que 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 desea usar y del tamaño del regulador adecuado; un regulador que puede entregar 1A con una eficiencia del 98% probablemente tenga una eficiencia del 60% al entregar 50mA. Lea las hojas de datos con cuidado.

    
respondido por el akohlsmith
4

Con su circuito, recomendaría usar un multímetro en el rango de microamperios para medir el consumo de corriente. Entonces, dadas las características de la batería puedes calcular la longevidad. No es necesariamente un amperio-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 estarás chupando un poco de energía, al menos 100 µA, si los micros PIC son algo para comparar. Pero esto va a ser abrumado por los 5 mA a 20 mA que atraviesan su LED, por lo que debe deshacerse de eso primero.

    
respondido por el Thomas O
1

En estos días, hay kits de desarrollo y tablas de ruptura disponibles que son extremadamente útiles para realizar mediciones actuales precisas, en algunos casos hasta el rango nA. Si aún no has comprobado definitivamente el µCurrent Gold . Esto es bueno para mediciones estáticas, pero menos para registrar mediciones a lo largo del tiempo.

Una forma en la que aún puede usar el µ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 sobre tuercas y tornillos en él, me parece al igual que puede ayudar a las personas con un presupuesto que no tienen las herramientas adecuadas.

Es sorprendente lo que puedes aprender no solo de lo que el voltaje está haciendo dentro de tu circuito, sino también de cómo reacciona a cada pequeño pico en la corriente. Me salvó el trasero un par de veces al elegir las tecnologías de batería y las pruebas de validación.

respondido por el jaredwolff
0

Todas las respuestas ya tienen puntos importantes. Agregaré uno de mi experiencia.

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

Y, finalmente, estime el consumo esperado / dirigido revisando las hojas de datos de todos sus elementos. Si los manejas bien, alcanzarás tu estimación. Esto incluye todos los pines no utilizados en el microcontrolador. Incluso si apagas el ADC, asegúrate de que la configuración del pin sea la mejor dependiendo de tu conexión externa.

    
respondido por el gustavovelascoh

Lea otras preguntas en las etiquetas