Funktionen zum Programmieren von Mikrocontrollern über die Tastatur


Der Hauptzweck der Tastatur ist das Tippen. Es kann aber auch verwendet werden, um Code in den Mikrocontroller zu schreiben. Die Methode ist unkonventionell, kann aber nützlich sein, wenn nichts anderes zur Hand ist. Oder als Unterhaltung mit einer Tastatur, die nicht mehr für normale Arbeit geeignet ist. Unten erfahren Sie, wie es geht.


Beispielprogrammierschaltung:



ScrollLock setzt den Pegel am RESET-Eingang, CapsLock - am SCK-Eingang, NumLock - am MOSI-Eingang. Die LED (VD4) am MISO-Ausgang dient zur Steuerung des Einstiegs in den Programmiermodus. Mit einem Sternchen (*) gekennzeichnete Details sind optional.


Programmieralgorithmus (für Mikrocontroller AT90 oder ATmega):


1) Setzen Sie 0 auf SCK und MOSI (aktivieren Sie CapsLock und NumLock). SCK muss auf 0 stehen, bevor RESET auf 0 geht.
2) Setzen Sie 0 auf RESET (aktivieren Sie ScrollLock).
3) Bilden Sie durch Ändern des Status von SCK und MOSI (ScrollLock und NumLock) die Reihenfolge der Übertragung der Steuerung in den Programmiermodus.
4) Wenn die LED am MISO-Ausgang nicht leuchtet, muss ein einzelner Impuls auf der SCK-Leitung erzeugt und die Sequenz wiederholt werden (Punkt 3).


Wenn nach 32 Versuchen der Übergang in den Programmiermodus nicht stattgefunden hat, scheint etwas schief gelaufen zu sein. Bei Erfolg erfolgt die weitere Programmierung über ScrollLock und NumLock (SCK und MOSI). Ein aufmerksamer und anhaltender Boom kann den Mikrocontroller manuell programmieren.


Warum funktioniert das nicht?


Das Hauptproblem bei der Implementierung eines solchen Programmiergeräts ist die eigene Logik der Tastatur. Das Einstellen des Status der LEDs durch ein externes Programm entspricht dem Ergebnis auf der Tastatur, aber der Übergangsprozess zum Ein- und Ausschalten der LEDs ist ihre eigene Sache. Nachfolgend sind die Oszillogramme des realen Schaltens aufgeführt:



Aktivieren von NumLock (einschließlich CapsLock und ScrollLock).



ScrollLock ausschalten (CapsLock und NumLock sind aktiviert).


Wir können sagen, dass nicht alle Tastaturen für die Programmierung von Mikrocontrollern gleichermaßen nützlich sind. Von den drei, die ich hatte, hatte nur eine die LEDs unabhängig geschaltet.


Was tun, wenn Sie mit der Tastatur so viel Pech haben?


Alle „Transienten“ werden in wenigen Mikrosekunden zeitlich gestapelt, und ein bestimmter Pegel wird mit einer Verzögerung von mehr als 1 ms auf SCK, MOSI und RESET eingestellt. In diesem Fall können die Programmiersignale mit einem Tiefpassfilter extrahiert werden. Hier ist ein Beispielfilter:



74HC14 - Schmitt-Trigger, dient zur Bildung von Ausgangspegeln. Es kann durch einen analogen Komparator (z. B. LM2901) ersetzt werden. In Mikrocontrollern verfügen die AVR-Eingänge über einen integrierten Schmitt-Trigger, mit dem Sie die RC-Kette umgehen können, wenn die Ausgangspegel 1 und 0 den erforderlichen entsprechen.


Als Beispiel. Tastatur, die zum Programmierer geworden ist:



Sanfte Implementierung des Programmierers

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


All Articles