despertarse periódicamente del sueño profundo

0

¿Cuáles son las principales formas utilizadas de cómo manejar el sueño profundo de algunos microcontroladores (atmega o una corteza m0 / m0 +) con despertarse periódicamente? En este momento, estoy construyendo un rastreador GPS Sigfox que debería enviar la posición GPS cada ~ 10 minutos y este intervalo debería ser configurable. Resolví este problema en proyectos anteriores mediante el uso de RTC IC externo (temperatura compensada por gran precisión) o contando intervalos de 8 segundos (veamos enlace ). ¿Cuáles son las otras formas y sus ventajas? Mi plan es seguir el ecosistema de Arduino o cambiar al mundo STM32 (quizás con un poco de ayuda de la plataforma mbed). Realmente aprecio todos tus comentarios.

    
pregunta Jaryn6909

2 respuestas

2

En general, una interrupción de RTC es la mejor manera de ir durante un largo período de sueño profundo. Si puede usar el RTC integrado en el micro, esto generalmente le dará una implementación más simple pero puede que no sea la potencia más baja posible o más precisa.

Si sigue la ruta de mbed, esta biblioteca probablemente será de utilidad. Sin embargo, tenga cuidado, algunas de las placas no están realmente bien diseñadas para una potencia más baja, mientras que el procesador entra en un estado de suspensión profunda en casi todas ellas, algunas de las placas no pueden cerrar el resto de los circuitos a los modos de baja potencia, por lo que El consumo total de energía del sueño profundo del sistema puede ser mucho mayor de lo que esperaría. Otras placas son más capaces de lidiar con esto y pueden llegar a consumir energía minúscula.

    
respondido por el Andrew
0

Su problema aquí es su marca de 10 minutos, porque (como ya sabe) el intervalo máximo del temporizador de vigilancia de ATmega MCU es de solo 8 segundos.

Una opción sería utilizar un temporizador externo programable de bajo consumo, como TPL5110 . Puede establecer un intervalo de hasta 120 minutos seleccionando el valor apropiado de la resistencia de programación.

Este tipo de temporizadores se pueden usar para controlar la puerta de un MOSFET de canal P de nivel lógico que actúa como un interruptor para la línea de alimentación del Arduino (y para otras partes del circuito, si desea reducir el consumo). consumo de energía), como este:

Entonces,simplementehacestodastuscosasenlafunciónsetup()ydejasloop()vacío.PuedesapagarelArduinodevolviendounaseñalDONEalTPL5110alfinaldetusetup().

    
respondido por el Enric Blanco

Lea otras preguntas en las etiquetas