¿Qué microcontrolador de baja potencia para cortos períodos activos a intervalos largos?

4

En relación con esta pregunta .

En la pregunta se solicitó una solución para controlar un voltaje durante mucho tiempo. La pregunta contiene sugerencias para una solución de microcontrolador, y un par de respuestas también cubrieron eso, pero la verdadera pregunta no necesitaba un microcontrolador en absoluto.

Ahora, si necesitara un microcontrolador, ¿cuáles son las mejores opciones para baja potencia? Concreto: necesito medir la temperatura una vez cada 5 minutos y transmitir el valor de forma inalámbrica y volver a dormir. La transmisión es de < 20m, no línea de visión. Cualquier protocolo / frecuencia. Sólo dos bytes de datos para enviar. Quiero que la batería, una CR2450 de 600mAh, dure el mayor tiempo posible. ¿La precisión del intervalo es mejor que el 0.5% posible (eso es 1.5 "en 5 minutos)?

editar (por stevenvh)
Federico menciona una estación meteorológica doméstica con termómetro inalámbrico al aire libre en un comentario. Creo que eso podría dar una buena idea del tipo de aplicación. El termómetro transmite sus datos cada 5 minutos y funciona durante más de un año con un juego de baterías.

Si hay alguna diferencia: ¿qué hay de muestrear una vez cada hora?

    
pregunta Federico Russo

6 respuestas

8

Los nuevos PIC de Microchip con la designación "XLP" son de muy bajo consumo. Escuché que las TI MSP430 también son bastante bajas, pero no lo he investigado yo mismo.

0.5% de precisión descarta el uso de un oscilador R-C interno para la activación. La mejor solución accesible para eso será una micro que está diseñada para funcionar con un cristal de 32768 Hz, como los relojes de pulsera. En la línea PIC, este es un micro con un oscilador con temporizador 1, que es la mayoría de ellos. El oscilador principal y la CPU se pueden apagar, pero el cristal del reloj y el temporizador 1 siguen funcionando y se pueden usar para activar el procesador periódicamente. Sin hacer nada especial, esto sucederá cada 2 segundos. Luego, el firmware cuenta con activaciones de 2 segundos para alcanzar el tiempo que desee. Si sus requisitos de procesamiento son pequeños, uno de los PIC 16LFxxxx de cuatro dígitos más recientes debería funcionar bien. Tienen un oscilador interno para ejecutar la CPU desde el momento en que se activa y, por lo demás, son pequeños, baratos y de baja potencia.

En cuanto a la transmisión de radio, no es tan simple como enviar solo un par de bytes. El otro extremo tiene que identificar que está transmitiendo, averiguar el nivel para detectar 1 de 0, etc. En la práctica, esto usualmente significa codificación de Manchester con quizás 10 bits de preámbulo, un bit de inicio, los 16 bits de datos y luego una suma de comprobación.

La posibilidad de que alguna parte de la transmisión de RF se estropee es lo suficientemente alta como para que usted pueda planificar para que eso suceda. Con la suma de comprobación CRC, al menos tiene una buena posibilidad de determinar que sucedió. Luego tiene que decidir qué tan probable es eso y cuáles son las consecuencias de los datos que no se están obteniendo. Puede enviar dos paquetes cada vez con la esperanza de que al menos uno llegue a su destino. Pero si va a gastar la energía en eso, podría enviar a la mitad del intervalo para que, cuando las cosas funcionen correctamente, obtenga mejores datos. No hay una respuesta fácil. La fiabilidad no se puede garantizar sin comunicación bidireccional. Es un juego de probabilidad y costo versus riesgo.

Si realmente desea reducir la potencia general, entonces debe mirar en los esquemas de codificación de corrección de errores de lujo. Algunos de estos no serán fáciles de hacer en un pequeño micro. Algunos ponen la mayor parte de la carga en el receptor. Hay muchos esquemas. Por ejemplo, una de las sondas de Venus de la década de 1970 envió los datos hacia adelante y hacia atrás (y probablemente algunos trucos más). Tomó más de un día en un mainframe de gama alta en el momento de decodificar el último fotograma antes de que la sonda se convirtiera en nubes y no se pudiera escuchar nada. Nuevamente, hay muchos esquemas con diferentes compromisos, pero considérelos frente al costo de una batería más grande.

Añadido:

Originalmente pensé que el transmisor de RF dominaría el poder, pero realmente no había trabajado con los números. Vi la respuesta de Clabacchio donde dice lo contrario, así que vamos a hacer los cálculos.

Digamos que el transmisor dibuja un promedio de 20 mA cuando está encendido. Esto es plausible para un transmisor OOK de la banda ISM de 434 MHz. Digamos que los datos se envían utilizando codificación Manchester a una velocidad de bits de 10 kHz. Esto es fácilmente factible con un PIC pequeño. 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 control, para un total de 43 bits. Se tarda 4.3 ms para enviar esos bits. El transmisor necesitará un milisegundo o dos veces de arranque durante el cual consume algo de energía pero menos que cuando está transmitiendo. Entonces redondeamos y digamos que el consumo de energía es equivalente a 5 ms a 20 mA cada 5 minutos. Eso sale a 333 nA promedio. Eso significa que la corriente de reposo del procesador es un factor importante en la vida útil general de la batería, especialmente porque ejecutará un cristal de reloj de 32768 Hz durante ese tiempo. De hecho, parece que la corriente de cristal de reloj de reposo más será más que la corriente de transmisión de RF promedio.

    
respondido por el Olin Lathrop
5

Puedo contarte acerca de mi experiencia con Jennic JN5148 , que ahora estoy usando para mi tesis. Es un módulo que incorpora un microcontrolador y un transceptor de 2.4 GHz, que trabaja con ZigBee y JenNet, un protocolo propietario muy simple. Además, incorpora la comprobación de errores en el protocolo 802.15 y, si lo desea, el cifrado.

Con una administración de energía adecuada, puede bajar a 2 uA en modo de suspensión, o incluso bajar, pero luego necesita un evento externo para activar su microcontrolador. Utiliza un oscilador de 32 kHz para el tiempo de reposo, por lo que puede verificar si es lo suficientemente estable para su aplicación. La corriente al transmitir / recibir es de 15-17.5 mA. El rango es nominal de 100-500 m de espacio libre, que he probado (muy aproximadamente) alrededor de 30 m con paredes y puertas.

Ya que uso poca potencia baja, estoy recopilando algunas estadísticas sobre el consumo, y para su aplicación (solo para medir el voltaje), debe permanecer por debajo de 3 uA de corriente durante el tiempo de sueño (considerando algunas fugas de la placa ), y alrededor de 50-100 uC (A * s), que en su ciclo de trabajo (una vez cada 5 minutos) proporciona una corriente promedio de 3.5 uA . Verá que esta corriente es mucho más baja que la fuga de la batería, y para el caso de 600 mAh debe correr durante 171'000 horas (¿es justo?) en teoría .

Sobre la potencia promedio, no estoy de acuerdo con Olin :). En mi experiencia, en ese ciclo de trabajo bajo, el consumo de energía estará dominado en gran medida por la corriente de reserva (no importa cuán pequeña), que debe ser inferior a 1 uA (muy, muy pequeña para un circuito real, no solo las especificaciones) para ser comparable . Y tiene que CAREFULY diseñar y programar su tarjeta ( prestar atención a los pines de E / S) para alcanzar esos valores bajos.

Eliminación de energía

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

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

    
respondido por el clabacchio
2

Para los procesadores de bajo consumo que puede comprar en los Estados Unidos, la batalla es MSP430 v. PIC XLP. Ambos fabricantes reclamarán menor potencia. Tienes que comparar con tus especificaciones para asegurarte.

Si desea medir la temperatura, puede usar el microcontrolador solo. El sensor de temperatura MSP430 necesitará una calibración de un solo punto, o el PIC necesitará una calibración de dos puntos para obtener una buena medición de la temperatura.

Usted puede hacer su propio cálculo basado en las corrientes de la hoja de datos, pero en mi experiencia, el MSP430 tiene una corriente más baja que Microchip XLP. La corriente que le interesa será la corriente inactiva con un reloj de 32.768 kHz en funcionamiento. Para MSP430G2231 esto es 0.65 μA típico a 3V, 25C. (El 2231 es el chip incluido en Launchpad, al igual que un cristal de 32.768). El PIC XLP equivalente sería PIC16LF1823, que ejecuta el reloj a 2,3 μA típico a 3V, 25C. Tenga cuidado, estos valores aumentan con la temperatura en ambas partes:

Supongo (basado en el ciclo de trabajo muy bajo) que la corriente de 32.768 kHz dominará la duración de la batería, pero definitivamente debe hacer el cálculo.

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

    
respondido por el markrages
1

"Técnicas innovadoras para un consumo de energía extremadamente bajo con microcontroladores de 8 bits" por Arne Martin Holberg y Asmund Saetre tiene un (posiblemente ligeramente parcial) comparación de dos chips TI MSP430, un Atmel ATmega165P, y un par de otros microcontroladores.

Mientras que durante años la serie TI MSP430 fue, con mucho, el microcontrolador de menor potencia disponible, La serie "Picopower" de Atmel y la serie "XLP" de Microchip están ahora muy cerca y mejor en algunas aplicaciones.

    
respondido por el davidcary
0

Personalmente he hecho algo muy similar a lo que describiste. Descubrí que el módulo de transceptor PIC24FJ64GB002 y MRF24J40MA 2.4GHz encajaba bien (hay una pila de 802.15.4 RF gratis de Microchip si no quieres escribirlo tú mismo). En este caso tengo reintentos automáticos y confirmación de entrega.

Descubrí que era mejor tener 2 baterías en serie para extraer hasta la última mAHr de las baterías. Utilicé un 1uA Iqq LDO para alimentar el micro, y un buck para alimentar la RF cuya alimentación fue desconectada en modo de suspensión por un MOSFET.

Mis resultados fueron aproximadamente 3.6uA de la corriente del sueño y varios años de duración de la batería en 2x 200mAHr CR2032s (depende, por supuesto, de su intervalo de actualización, el mío fue de 1 hora). Sus requisitos de tiempo precisos exigirán también un cristal de 32.768 kHz, y la fuente de reloj RTCC / TMR1 se ejecutará en suspensión, lo que agregará algunos microamperios más.

por cierto, no olvide atar todas las IO no utilizadas conectándolas al plano de tierra o, si eso no es posible, guiándolas en software.

    
respondido por el Nathan Wiebe
-1

el msp430 era conocido por ser de baja potencia pero supuestamente el córtex-m0 es menor potencia que todos los demás. He usado estos, pero no la potencia medida, sin que se agote la batería ...

    
respondido por el old_timer

Lea otras preguntas en las etiquetas