Mando a distancia con baja corriente de reposo en el ATmega328P


Según el KDPV, está claro que el autor no es indiferente al equipo de audio vintage de Sony. Aquí y MD Walkman, y la reciente adquisición - un centro de música compacto con un CD vertical - "transporte". Se vendió sin un control remoto, al análogo casero del cual el autor hizo una demanda: la misma baja corriente de reposo que la de los controles remotos terminados en microcircuitos especializados.

Al principio, el autor quería escribir el firmware desde cero, ya que anteriormente ya había implementado el protocolo de software utilizado en los controles remotos de Sony. Pero luego decidí usar la biblioteca existente . Es compatible con varios protocolos, dispositivos y también tiene funciones adicionales. características que facilitan el desarrollo y la depuración.

Con esta biblioteca, simplemente conecte el diodo IR al pie del microcontrolador y comience a buscar códigos de control remoto de Sony. Se las arreglaron para ganar un control remoto casero muy rápidamente. Pero, ¿qué sentido tiene si la batería se agota en uno o dos días, incluso si no la usa en absoluto?

En general, la tarea consistía en poner el ATmega328P en modo de suspensión para que prácticamente no consumiera corriente hasta que se presionase una tecla. También existen bibliotecas para el control de la hibernación, pero el autor decidió que, dado que había tomado una biblioteca preparada para enviar comandos, dejar que al menos esta parte del firmware se escribiera de forma independiente. Según la hoja de datos, poner el microcontrolador en modo de suspensión fue un proceso de varios pasos.

Por lo tanto, en el boceto, todo se comenta con suficiente detalle para que al leer el código y el conjunto de datos al mismo tiempo, pueda comprender qué sucede cuando se ejecuta cada línea. El microcontrolador "duerme" casi todo el tiempo, y cuando el estado de una de las entradas cambia, "se despierta", determina qué botón se presiona, envía un comando y de nuevo "se queda dormido".

Con cuarzo de 16 MHz, el microcontrolador, cuando no "duerme", consumirá más corriente que cuando usa el reloj incorporado de 8 MHz. Para reconfigurar los "fusibles" correspondientes, tuve que usar el programador en circuito. El modo de suspensión se selecciona para que todo esté apagado, excepto las interrupciones. El autor no entendió de inmediato que era necesario apagar el ADC, por lo que no pudo encontrar la razón por la cual el microcontrolador consumió casi un miliamperio en modo de suspensión. El temporizador de vigilancia también tuvo que apagarse, y aquí está el resultado: aproximadamente 2 μA en modo de reposo y 3,5 mA al transmitir un comando. Esta calculadora mostró que, en condiciones ideales, si presiona los botones 5 veces por hora, el elemento en este modo durará 4.82 años. Incluso uno o dos años ya es genial, y aún más.

El autor desarrolló la placa de circuito en Eagle. Archivos para la repetición: boceto , diagrama , gerbera , placa fuente .





Video, donde se muestra medida actual:



El proceso de mejora del diseño continúa, en primer lugar, es necesario hacer un par de botones para los cuales los códigos encontrados en la red resultaron ser incorrectos. Además, el autor ofrece un análogo simplificado de CC-BY de una frase: "Si lo desea, use el código y la pizarra en otros productos caseros, solo recuerde indicar quién desarrolló todo esto para usted". Como la biblioteca de origen no está bajo la GPL, sino bajo la LGPL, puede hacer esto.

Source: https://habr.com/ru/post/452046/


All Articles