4 votos

¿Qué microcontrolador de bajo consumo para periodos activos cortos a intervalos largos?

En cuanto a esta pregunta .

En la pregunta se pedía una solución para monitorizar una tensión durante un tiempo prolongado. La pregunta contiene indicios de una solución de microcontrolador, y un par de respuestas también lo cubrieron, pero la pregunta real no necesitaba un microcontrolador en absoluto.

Ahora bien, si sería requieren un microcontrolador, ¿cuáles son las mejores opciones de bajo consumo? Concreto: Necesito medir la temperatura una vez cada 5 minutos y transmitir inalámbricamente el valor y volver a dormir. La transmisión es de <20m, no hay línea de visión. Cualquier protocolo/frecuencia. Sólo dos bytes de datos a enviar. Quiero que la batería, una CR2450 de 600mAh, dure lo máximo posible. ¿Precisión de intervalo mejor que el 0,5% posible (es decir, 1,5" en 5 minutos)?

editar (por stevenvh)
Federico menciona una estación meteorológica casera con termómetro inalámbrico para exteriores en un comentario. Creo que eso podría dar una buena idea del tipo de aplicación. En efecto, el termómetro transmite sus datos cada 5 minutos y funciona durante más de un año con un juego de pilas.

Si sirve de algo: ¿qué tal si se toma una muestra cada hora?

17voto

RelaXNow Puntos 1164

Los nuevos PICs de Microchip con la designación "XLP" son de muy bajo consumo. He oído que los MSP430 de TI también son de muy bajo consumo, pero no lo he investigado.

La precisión del 0,5% descarta el uso de un oscilador R-C interno para el despertar. La mejor solución accesible para eso será un micro que está destinado a ejecutar un cristal de 32768 Hz como se utiliza en los relojes de pulsera. En la línea PIC, esto es un micro con un oscilador de temporizador 1, que es la mayoría de ellos. El oscilador principal y la CPU pueden apagarse, pero el cristal del reloj y el temporizador 1 siguen funcionando y pueden usarse para despertar al procesador periódicamente. Sin hacer nada especial, esto ocurrirá cada 2 segundos. El firmware entonces cuenta los despertares de 2 segundos para llegar a cualquier tiempo más largo que quieras. Si tus requerimientos de procesamiento son pequeños, uno de los nuevos PIC 16LFxxxx de cuatro dígitos debería funcionar bien. Tienen un oscilador interno para hacer funcionar la CPU cuando se despierta y por lo demás son pequeños, baratos y de bajo consumo.

En cuanto a la transmisión por radio, no es tan sencillo como enviar un par de bytes. El otro extremo tiene que identificar que estás transmitiendo, averiguar el nivel para detectar el 1 del 0, etc. En la práctica, esto suele significar una codificación manchester con unos 10 bits de preámbulo, un bit de inicio, los 16 bits de datos y una suma de comprobación.

La posibilidad de que cualquier bit de una transmisión de RF se estropee es lo suficientemente alta como para tener que planificar que eso ocurra. Con la suma de comprobación CRC, al menos tienes una buena oportunidad de determinar que ha ocurrido. Entonces tienes que decidir qué probabilidad hay y cuáles son las consecuencias de que los datos no pasen. Podrías enviar dos paquetes cada vez con la esperanza de que al menos uno pase. Pero si vas a gastar la energía en eso, también podrías enviar a la mitad del intervalo para que cuando las cosas funcionen bien obtengas mejores datos. No hay una respuesta fácil. No se puede garantizar la fiabilidad sin una comunicación bidireccional. Es un juego de probabilidades y costes frente a riesgos.

Si realmente se quiere reducir la potencia total, hay que buscar esquemas de codificación de corrección de errores de lujo. Algunos de ellos no serán fáciles de realizar en un micro pequeño. Algunos ponen la mayor parte de la carga en el receptor. Hay muchos esquemas. Por ejemplo, una de las sondas de Venus de los años 70 enviaba los datos hacia delante y hacia atrás (y probablemente algunos trucos más). Se tardó más de un día en decodificar el último fotograma antes de que la sonda se adentrara en las nubes y no se pudiera saber nada de ella en un ordenador central de gama alta de la época. De nuevo, hay muchos esquemas con diferentes compensaciones, pero considérelos frente al coste de una batería más grande.

Añadido:

Originalmente había pensado que la potencia sería dominada por el transmisor de RF, pero no había trabajado realmente a través de los números. He visto la respuesta de Clabacchio donde afirma lo contrario, así que vamos a hacer los cálculos.

Digamos que el transmisor consume 20 mA de media cuando está encendido. Esto es plausible para un transmisor OOK de 434 MHz en banda ISM. Digamos que los datos se envían utilizando la codificación manchester a una velocidad de bits de 10 kHz. Esto es fácilmente realizable con un pequeño PIC. He hecho exactamente esto con un PIC 10F202 en algunas pequeñas etiquetas RFID activas. Digamos que el flujo total transmitido es de 10 bits de preámbulo, 1 bit de inicio, 16 bits de datos y 16 bits de suma de comprobación, para un total de 43 bits. Se necesitan 4,3 ms para enviar esos bits. El transmisor necesitará uno o dos milisegundos de tiempo de arranque, durante los cuales consume algo de energía, pero menos que cuando está transmitiendo. Así que redondeemos y digamos que el consumo de energía es equivalente a 5 ms a 20 mA cada 5 minutos. Esto supone una media de 333 nA. Eso significa que la corriente de reposo del procesador es un factor significativo en la vida total de la batería, particularmente porque estará ejecutando un cristal de reloj de 32768 Hz durante ese tiempo. De hecho, parece que la corriente de reposo más la del cristal del reloj será mayor que la corriente media de transmisión de RF.

6voto

Baxissimo Puntos 1822

Personalmente he hecho algo muy parecido a lo que describes. Encontré que el PIC24FJ64GB002 y el módulo transceptor MRF24J40MA de 2,4GHz eran una buena opción (hay una pila de RF 802.15.4 gratuita de Microchip si no quieres escribirla tú mismo). En este caso tengo reintentos automáticos y confirmación de entrega.

Descubrí que lo mejor era tener 2 baterías en serie para exprimir hasta el último mAHr de las baterías. Utilicé un LDO de 1uA Iqq para alimentar el micro, y un buck para alimentar la RF cuya energía se desconectaba en modo de reposo mediante un MOSFET.

Mis resultados fueron alrededor de 3,6uA de corriente de reposo, y varios años de vida de la batería en 2x 200mAHr CR2032s (depende, por supuesto, de su intervalo de actualización - la mía fue de 1 hora). Tus requisitos de sincronización precisos exigirán un cristal de 32,768kHz también, y la fuente de reloj RTCC/TMR1 funcionando en reposo, lo que añadirá unos cuantos microamperios más.

btw, No te olvides de atar todas las IO no utilizadas conectándolas al plano de tierra o, si eso no es posible, conduciéndolas en el software.

5voto

Jonah Katz Puntos 128

Puedo contar mi experiencia con Jennic JN5148 que ahora estoy utilizando para mi tesis. Es un módulo que incorpora un microcontrolador y un transceptor de 2,4 GHz, que funciona con ZigBee y JenNet, un protocolo propietario muy sencillo. Además, incorpora la comprobación de errores en el protocolo 802.15 y, si se quiere, la encriptación.

Con una gestión adecuada de la energía, puedes bajar a 2 uA en modo de reposo, o incluso menos, pero entonces necesitas un evento externo para despertar tu microcontrolador. Utiliza un oscilador de 32 kHz para el tiempo de reposo, así que puedes comprobar si es lo suficientemente estable para tu aplicación. La corriente al transmitir-recibir es de 15-17,5 mA. El rango es nominal 100-500 m de espacio libre, probado por mí para ser (muy aproximadamente) alrededor de 30 m con las paredes y puertas.

Ya que voy a bajar la potencia, estoy recopilando algunas estadísticas sobre el consumo, y para tu aplicación (sólo midiendo el voltaje), deberías mantenerte por debajo de 3 uA de corriente durante el tiempo de reposo (considerando algunas fugas de la placa), y alrededor de 50-100 uC (A*s), lo que a tu ciclo de trabajo (una vez cada 5 minutos) da un corriente media de 3,5 uA . Verás que esta corriente es mucho menor que la fuga de la batería, y para el caso de 600 mAh deberías correr por 171.000 horas (¿es justo?) en teoría .

Sobre la potencia media, no estoy de acuerdo con Olin :). En mi experiencia, a ese bajo ciclo de trabajo el consumo de energía estará dominado en gran medida por la corriente de espera (por pequeña que sea), que debería estar por debajo de 1 uA (muy muy pequeña para un circuito real, no sólo las especificaciones) para ser comparable. Y hay que CUIDADOSAMENTE diseñe y programe su placa ( prestar atención a los pines de E/S) para conseguir esos valores bajos.

Depuración de energía

Si se trata de una aplicación para exteriores, y tiene que funcionar durante mucho tiempo, ¿por qué no se le dota de un pequeño panel solar (alrededor de 5-10$) que puede dar a su termómetro una vida prácticamente infinita?

Lo estamos haciendo, y el panel proporciona -en interiores- suficiente corriente para que el circuito sobreviva, en exteriores será realmente una brisa, y una batería LiPo de 50 mAh (de nuevo, pocos dólares) será suficiente.

3voto

El msp430 era conocido por ser de baja potencia pero supuestamente el cortex-m0 es de menor potencia que todos los demás. He utilizado estos pero no medido la potencia no se ejecuta fuera de una batería...

2voto

AnonJr Puntos 111

En el caso de los procesadores de bajo consumo que se pueden comprar en Estados Unidos, la batalla es MSP430 contra PIC XLP. Ambos fabricantes afirman que el consumo es menor. Tienes que comparar con tus especificaciones para asegurarte.

Si quieres medir la temperatura, puedes utilizar el microcontrolador por sí mismo. El sensor de temperatura MSP430 necesitará una calibración de un punto, o el PIC necesitará una calibración de dos puntos para obtener una buena medición de la temperatura.

Puedes hacer tu propio cálculo basado en las corrientes de la hoja de datos, pero en mi experiencia el MSP430 tiene una corriente menor que el Microchip XLP. La corriente que te interesa será la corriente de reposo con un reloj de 32,768 kHz en funcionamiento. En el caso del MSP430G2231 es de 0,65 μA típicos a 3V, 25C. (El 2231 es el chip incluido en Launchpad, al igual que un cristal de 32,768). El equivalente del PIC XLP sería el PIC16LF1823, que hace funcionar el reloj a 2,3 μA típicos a 3V, 25C. Hay que tener en cuenta que estos valores suben con la temperatura en ambas partes:

enter image description here

Supongo (basándome en el ciclo de trabajo tan bajo) que la corriente de 32,768 kHz dominará la vida de tu batería, pero definitivamente deberías hacer el cálculo.

También supongo que la radio se puede elegir independientemente del procesador. Pero la corriente de la radio será una parte importante del presupuesto de energía.

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