Ahorro de energía entre las transmisiones UART

0

Uso PIC16F1825 para comunicarme a través de UART (async) con un dispositivo externo. Funcionando con baterías, tengo que gastar la menor cantidad de energía posible.

Como mi dispositivo externo puede no transmitir datos durante minutos, pensé en poner el microcontrolador PIC en modo SLEEP mientras esperaba datos.

Lamentablemente no es sencillo, porque el UART asíncrono requiere un oscilador principal (manual PIC). Implementar UART manualmente puede resolver el problema, si el PIC pudiera recuperarse de SLEEP rápidamente. Mi dispositivo PIC16F1825 requiere 1024 x Tosc para comenzar a trabajar después de SLEEP. Es una manera de reducir la velocidad :(

UART: 115200N8

Mi pregunta es: ¿Cómo puedo ahorrar una cantidad considerable de energía durante el tiempo entre transmisiones?

PS Puedo cambiarme a algún otro microcontrolador dentro de la misma región de precio y tamaño de empaque (4 mm x 4 mm).

    
pregunta Boris Brodski

1 respuesta

1

¿Qué hay de enviar una interrupción al PIC antes de la transmisión? El PIC puede activar el despertador de interrupción, por lo que si interrumpió el PIC antes de comenzar su transmisión de UART, eso le permitiría permanecer en el modo de suspensión hasta que sea el momento de transmitir.

    
respondido por el justinrjy

Lea otras preguntas en las etiquetas