Características de la programación de microcontroladores usando el teclado


El objetivo principal del teclado es escribir. Pero también se puede usar para escribir código en el microcontrolador. El método no es convencional, pero puede ser útil cuando no hay nada más a la mano. O como entretenimiento con un teclado que ya no es adecuado para el trabajo normal. A continuación se muestra cómo hacerlo.


Ejemplo de circuito programador:



ScrollLock establece el nivel en la entrada RESET, CapsLock - en la entrada SCK, NumLock - en la entrada MOSI. El LED (VD4) en la salida MISO se usa para controlar la entrada al modo de programación. Los detalles marcados con un asterisco (*) son opcionales.


Algoritmo de programación (para microcontroladores AT90 o ATmega):


1) Establezca 0 en SCK y MOSI (habilite CapsLock y NumLock). SCK debe estar en 0 antes de que RESET vaya a 0.
2) Establezca 0 en RESET (habilite ScrollLock).
3) Forme, cambiando el estado de SCK y MOSI (ScrollLock y NumLock), la secuencia de transferencia del controlador al modo de programación.
4) Si el LED en la salida MISO no se ilumina, es necesario generar un solo pulso en la línea SCK y repetir la secuencia (punto 3).


Si después de 32 intentos no se produjo la transición al modo de programación, parece que algo salió mal. Si tiene éxito, se lleva a cabo una programación adicional a través de ScrollLock y NumLock (SCK y MOSI). Un boom atento y persistente puede programar el microcontrolador manualmente.


¿Por qué esto no funciona?


El principal problema al implementar dicho programador es la propia lógica del teclado. Establecer el estado de los LED mediante un programa externo corresponde al resultado en el teclado, pero el proceso de transición de encender / apagar los LED es asunto suyo. A continuación se muestran los oscilogramas de conmutación real:



Habilitar NumLock (CapsLock y ScrollLock incluidos).



Desactivar ScrollLock (CapsLock y NumLock están activados).


Podemos decir que no todos los teclados son igualmente útiles para programar microcontroladores. De los tres que tenía, solo uno tenía los LED conmutados de forma independiente.


¿Qué hacer si tienes tanta mala suerte con el teclado?


Todos los "transitorios" se apilan en el tiempo en unos pocos microsegundos, y un cierto nivel se establece en SCK, MOSI y RESET con un retraso de más de 1 ms. En este caso, las señales de programación se pueden extraer utilizando un filtro de paso bajo. Aquí hay un filtro de ejemplo:



74HC14 - Gatillo Schmitt, está destinado a la formación de niveles de salida. Se puede reemplazar por un comparador analógico (por ejemplo, LM2901). En los microcontroladores, las entradas AVR tienen un disparador Schmitt incorporado, que le permite moverse por la cadena RC si los niveles de salida 1 y 0 corresponden a los necesarios.


Como un ejemplo Teclado que se ha convertido en programador:



Implementación suave del programador

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


All Articles