26 votos

Cómo hacer que una batería dure mucho tiempo en un circuito de microcontrolador

Espero poder alimentar un ATtiny85V durante mucho tiempo con alguna batería pequeña, probablemente una pila de botón.

He mirado en el lado del software, y mi código es controlado por el temporizador de vigilancia, tiene convertidores analógicos y digitales no utilizados apagados, el chip está funcionando a 1MHz, etc. Por supuesto, al estar ocupado y ser nuevo en esto, no estoy seguro de la cantidad exacta de corriente que está dibujando, pero espero haber minimizado básicamente.

Cada pocos segundos se despierta, hace sus comprobaciones de nivel de voltaje en los ADCs, lo graba en la memoria RAM, y vuelve a dormir. Si detecta que hay una línea serie conectada, arroja los datos.

Sin embargo, ahora estoy mirando el circuito en su conjunto y me pregunto si hay cosas que debería hacer para que el circuito en su conjunto sea más amigable con la batería.

¿Qué hay que hacer y qué no hay que hacer a la hora de diseñar un circuito (sencillo) de larga duración en el que un componente (el microcontrolador) tiene un consumo de corriente repetitivo pero variable?

Por ejemplo:

  • ¿Es un LED indicador un gran problema? ¿Consume la batería cuando está iluminado? ¿Debería ponerle una resistencia gigante para que se atenúe, o eso sólo hace que la resistencia utilice la batería?
  • ¿Debo utilizar condensadores de derivación/desacople para igualar el consumo de corriente de la batería, o el condensador sólo desperdiciará la energía de la batería?
  • El microcontrolador sólo necesita 1,8V, pero no tengo pilas de 1,8V. ¿Debo usar dos pilas de 1.x y enviarle demasiado voltaje? ¿Puedo prolongar la vida de la batería "no usando tantos voltios"? ¿Cómo lo hago?
  • ¿Se necesita energía adicional para comprobar si un pin está ALTO o BAJO? Como en comparación con un no-op o alguna aritmética, ¿hay mucho uso de energía adicional en la comprobación de uno de los pines GP I/O para su estado?

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

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

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

pero no tengo muy claro qué es lo que "come" mi circuito cuando funciona. He leído una buena cantidad de libros de texto de EE101 y de física, pero realmente no tengo ninguna experiencia de laboratorio. En otras palabras, he leído una tonelada sobre baterías, pero no estoy realmente seguro de lo que la mayoría de ellos significa en la práctica.

¿Las resistencias consumen la batería? ¿Los condensadores? ¿Los diodos? Sospecho que todos lo hacen, pero ¿cuáles son los números que importan? ¿La impedancia? ¿La disipación de energía? ¿La corriente? ¿La tensión?

¿Hay alguna forma de bajar el voltaje sin gastar batería? ¿Existe una manera de bajar el voltaje mientras se aumenta la vida de la batería?

20voto

Jon Ericson Puntos 9703

Sólo una lista al azar, si usted publica su esquema probablemente sería más fácil:

Las pilas de litio de 1,8V son muy fáciles de encontrar, pero lo más probable es que su interfaz en serie necesite 3,3V. A menos que su extremo de recepción se ocupará de 1,8V.

La corriente de fuga suele aumentar a medida que se incrementa el voltaje, por lo que es mejor reducirla. También hay que tener en cuenta el punto de desconexión 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 utilices. Por ejemplo, si tu uC se apaga a 1,7V, es posible que quieras usar una batería de mayor voltaje, ya que con algunas baterías el voltaje de salida bajará lentamente a medida que la batería muera. Una pila de 3,3V te dará más vida, ya que cuando empiece a morir su salida bajará lentamente y podrás funcionar hasta 1,8V. Si usas una batería de 1.8V te vas a apagar bastante rápido cuando la batería se muera. Todo esto asume que tu interfaz serial u otros componentes pueden manejar un amplio rango de voltaje (sé que el AVR puede).

Los LEDs utilizan mucha energía, a menos que utilices un LED de muy baja potencia y estés controlando su consumo de corriente, probablemente esté consumiendo mucha más corriente que el regulador. Si sólo está ahí para la depuración, no lo llene para la producción o sólo lo haga parpadear de vez en cuando o algo para minimizar su tiempo de encendido, y definitivamente controlar su consumo de corriente.

Si puedes, elige la polaridad / estado de reposo de tu interfaz serie para que consuma la menor cantidad de energía posible, su estado de reposo no debería consumir energía. Si se requieren pull ups, utilice la mayor resistencia posible para mantener la integridad de la señal pero minimizar el uso de la corriente. Si la energía es una gran preocupación, utilice un esquema de señalización que favorezca los bits que no consumen energía. Por ejemplo, si tienes pull ups, usar un protocolo que resulte en muchos 1's en la señal dejará la interfaz serial en un estado que no consume tanta energía la mayor parte del tiempo. Tales optimizaciones sólo valen la pena si se hace un uso intensivo del bus serie. Si se usa muy poco, asegúrate de que su estado de reposo no consume energía.

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

El uso de la energía depende mucho más del número/tipo de periféricos que tengas encendidos, y de la cantidad de tiempo que el micro pasa activo frente a la suspensión. Así que el ADC utiliza más energía, las escrituras de la EEPROM utilizan una buena cantidad de energía. Específicamente algo como las escrituras de la EEPROM se hacen generalmente en "pedazos" bastante grandes así que usted debe acumular tanta información como usted puede antes de hacer la escritura a la EEPROM (si usted incluso la utiliza por supuesto). Para el ADC ese micro soporta hacer la lectura del ADC durante 2 de sus estados de sueño, como la conversión del ADC toma un tiempo relativamente largo este es un buen momento para dormir.

Probablemente deberías leer las secciones sobre la gestión de la energía, los estados de reposo y la minimización del consumo de energía en la hoja de datos del microcontrolador: enlace página 35 en. Mantenga el regulador en el estado de reposo más profundo posible el mayor tiempo posible. La única excepción es que hay que tener en cuenta el tiempo de arranque y apagado. No vale la pena dormir durante 10 ciclos si el despertar tarda 25, etc.

¿Las resistencias consumen la batería? ¿Los condensadores? ¿Los diodos?

Todos lo hacen en cierta medida. Las resistencias son las que más disipan 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 tensión (relativamente) fija, por lo que la disipación de energía está ligada casi exclusivamente a la corriente que pasa por el diodo. Por ejemplo, un diodo con una caída de tensión hacia delante de 0,7 V, P = 0,7 * I si la corriente se mueve hacia delante a través del diodo. Esto es una simplificación, por supuesto, y debería comprobar el modo de funcionamiento en función de las características I-V del diodo.

En teoría, los condensadores no deberían disipar ninguna energía, pero en realidad tienen una resistencia en serie finita y una corriente de fuga distinta de cero, lo que significa que disipan algo de energía, aunque por lo general no es algo que deba preocupar con voltajes tan bajos. Dicho esto, la elección de condensadores con una corriente de fuga y una ESR mínimas es una ventaja para la energía.

En cuanto a su uso para suavizar el consumo 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í, algunos químicos serán más felices con un sorteo constante, algunos tratan mejor con los picos de corriente.

12voto

Mark Puntos 1998

Mark ha dado una respuesta excelente y ha tocado muchos de los puntos que yo iba a plantear. Hay algunos que me gustaría aportar también.

Utiliza un osciloscopio con una resistencia de bajo ohmio en serie con el retorno a la batería común para hacer 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. Una resistencia de 1 ohmio desarrollará 100mV por cada 100mA consumidos, y eso es probablemente demasiado para ti. Yo probaría con una resistencia de 10 ohmios al 1% o al 0,5%; verás 100mV por cada 10mA de consumo de corriente. 18 ohmios te darían 100mV por cada 5,5mA. Si realmente quieres una potencia baja, puedes usar 1k; I=V/R: verás 100mV por cada 100uA de corriente. Pero cuidado, si consumes suficiente corriente acabarás cayendo demasiado a través de la derivación y tus mediciones serán erróneas, por no mencionar que el circuito probablemente no funcionará. :-)

Con el 'scope' conectado, prueba algunas frecuencias de funcionamiento diferentes para el microcontrolador. Puede 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 las subidas/bajadas en la medida de lo posible. No deberías tener ninguno en ninguna salida, ya que puedes llevarlos a un estado de reposo en la mayoría de los casos. Las entradas deben estar atadas a lo que tiene sentido, utilizando un valor tan alto como sea posible, como dijo Mark.

Asegúrese de que su microcontrolador tiene la mayor capacidad de cierre posible. Convierte los pines no utilizados en salidas y llévalos a un estado (alto o bajo, no importa). No dejes los LEDs encendidos. Si puedes apagar otros componentes o detener sus relojes, hazlo. Las memorias SPI Flash, por ejemplo, a menudo tienen un comando de "apagado" que tomará el ya bajo 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 acabes con un uso MUCHO mejor de la batería si utilizas un regulador buck/boost de alta eficiencia entre la batería y tu circuito. El regulador estará en modo buck (reducción de voltaje) cuando el nivel de la batería sea superior a los 1,8V que necesitas, y cambiará a modo boost (aumento de voltaje) cuando el nivel de la batería caiga por debajo de 1,8V. Esto le permitirá hacer funcionar el circuito hasta que la batería esté realmente agotada, lo que bien vale la pena por la escasa pérdida de eficiencia que tendrá al utilizarlos. 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 suministrar 1A con una eficiencia del 98% probablemente tenga una eficiencia del 60% suministrando 50mA. Lee atentamente las hojas de datos.

4voto

hromanko Puntos 548

Con tu circuito, te recomendaría usar un multímetro en el rango de los microamperios para medir el consumo de corriente. Luego, dadas las características de la batería puedes calcular la longevidad. No se trata necesariamente de 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 va a chupar 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 5mA a 20mA que van a través de su LED, por lo que debe deshacerse de eso primero.

1voto

jaredwolff Puntos 145

Hoy en día existen kits de desarrollo y placas de conexión muy útiles para realizar mediciones precisas de la corriente, en algunos casos hasta el rango de nA. Si aún no lo has hecho, echa un vistazo al µCorriente de oro . Esto es bueno para las mediciones estáticas, pero no lo es tanto para el registro de mediciones en el tiempo.

Una forma de seguir utilizando el µCurrent es conectar un amplificador diferencial a la salida. Luego puedes alimentar un osciloscopio o un analizador lógico con entradas analógicas. He escrito un tutorial completo de tuercas y tornillos en él siento que puede ayudar a la gente con un presupuesto que no tiene las herramientas adecuadas.

Es increíble lo que puedes aprender no sólo de lo que hace el voltaje dentro de tu circuito sino también de cómo reacciona a cada pequeño pico de corriente. Me ha salvado el culo un par de veces a la hora de elegir tecnologías de baterías y pruebas de validación.

0voto

Elfudge Puntos 141

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

Cuando desarrollaba dispositivos con un consumo inferior a 10uA, incluso inferior a 1uA en modo deep sleep, la limpieza de la placa marcaba la diferencia. Una vez tuve 7 de 10 placas con el consumo de corriente esperado. Todas eran iguales y todas funcionaban bien. Después de limpiarlas en un limpiador ultrasónico, todas las placas pasaron al resultado esperado.

Y por último, calcula tu consumo previsto/objetivo comprobando las fichas técnicas de todos tus elementos. Si los manejas bien, alcanzarás tu estimación. Esto incluye todos los pines no utilizados en el microcontrolador. Incluso si apagas tu ADC, asegúrate de que la configuración de pines mientras está apagado es la mejor dependiendo de tu conexión externa.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X