Schemata und Materialien. Aktualisieren der „Firmware“ des Programmierers

So wie das Theater mit einem Kleiderbügel beginnt, so beginnt die Mikrocontroller-Programmierung mit der Wahl eines guten Programmierers. Seitdem fange ich an, die Mikrocontroller des Unternehmens zu beherrschen ATMEL Dann musste ich mich gründlich mit dem Angebot der Hersteller vertraut machen. Sie bieten viele interessante und leckere Dinge an, allerdings zu sehr hohen Preisen. Beispielsweise kostet ein Schal mit einem zwanzigbeinigen Mikrocontroller mit einem Paar Widerständen und Dioden als Umreifung wie ein „Flugzeug“. Daher stellte sich die Frage nach der Selbstorganisation des Programmierers. Nach einer langen Untersuchung der Entwicklungen erfahrener Funkamateure wurde beschlossen, einen bewährten Programmierer zusammenzustellen USBASP Mikrocontroller ist das GehirnAtmega8 (Es gibt auch Firmware-Optionen für atmega88 und atmega48). Durch die minimale Bindung des Mikrocontrollers können Sie einen relativ kleinen Programmierer zusammenbauen, den Sie wie ein Flash-Laufwerk immer mitnehmen können.

Da beschlossen wurde, einen Miniaturprogrammierer zusammenzubauen, habe ich die Schaltung für den Atmega8-Mikrocontroller im Paket neu gezeichnet TQFP32(Die Pinbelegung des Mikrocontrollers unterscheidet sich von der Pinbelegung im DIP-Paket):

Jumper J1 wird verwendet, wenn ein Flashen des Mikrocontrollers mit einer Taktfrequenz unter 1,5 MHz erforderlich ist. Dieser Springer kann übrigens ganz eliminiert werden, indem man das 25. Bein des MK auf den Boden legt. Dann arbeitet der Programmierer immer mit einer reduzierten Frequenz. Ich persönlich habe selbst festgestellt, dass das Programmieren mit reduzierter Geschwindigkeit einen Bruchteil einer Sekunde länger dauert und ich daher jetzt nicht mehr am Pullover ziehe, sondern ständig damit nähe.
Die Zenerdioden D1 und D2 dienen dazu, die Pegel zwischen dem Programmiergerät und dem USB-Bus anzupassen. Ohne sie funktioniert es, jedoch nicht bei allen Computern.
Die blaue LED zeigt an, dass die Schaltung zum Programmieren bereit ist, die rote LED leuchtet während der Programmierung. Kontakte zum Programmieren werden auf den IDC-06-Stecker geführt, die Pinbelegung entspricht dem ATMEL-Standard für einen 6-poligen ISP-Stecker:


Dieser Anschluss verfügt über Kontakte zur Stromversorgung programmierbarer Geräte. Hier wird er direkt vom USB-Anschluss des Computers abgenommen. Sie müssen also darauf achten, keine Kurzschlüsse zuzulassen. Der gleiche Anschluss wird auch zum Programmieren des Steuermikrocontrollers verwendet. Dazu reicht es aus, die Reset-Pins am Anschluss und am MK zu verbinden (siehe die rot gestrichelte Linie im Diagramm). Im Schema des Autors geschieht dies durch einen Jumper, aber ich habe die Platine nicht überladen und entfernt. Für eine einzelne Firmware reicht eine einfache Drahtbrücke. Es stellte sich heraus, dass die Platte doppelseitig war und eine Größe von 45 x 18 mm hatte.


Der Programmieranschluss und ein Jumper zur Reduzierung der Geschwindigkeit des Programmiergeräts sind am Ende des Geräts angebracht, was sehr praktisch ist


Firmware des Steuermikrocontrollers

Nach dem Zusammenbau des Geräts bleibt also das Wichtigste, den Steuermikrocontroller zu flashen. Für diese Zwecke sind Freunde gut geeignet, die noch Computer mit LPT-Anschluss haben :)Der einfachste Fünf-Draht-Programmierer für AVR
Der Mikrocontroller kann über den Programmieranschluss geflasht werden, indem die Reset-Pins des Mikrocontrollers (29. Bein) und der Stecker verbunden werden. Firmware gibt es für die Modelle Atmega48, Atmega8 und Atmega88. Es empfiehlt sich, einen der letzten beiden Steine ​​zu verwenden, da der Support für die Atmega48-Version eingestellt wurde und die neueste Firmware-Version aus dem Jahr 2009 stammt. Und die Versionen für den 8. und 88. Stein werden ständig aktualisiert, und der Autor scheint zu planen, die Funktionalität um einen In-Circuit-Debugger zu erweitern. Die Firmware nehmen wir auf der deutschen Seite. Um das Steuerprogramm auf den Mikrocontroller hochzuladen, habe ich das Programm PonyProg verwendet. Beim Programmieren ist es notwendig, den Quarz von einer externen Taktquelle mit 12 MHz zum Laufen zu bringen. Screenshot des Programms mit Sicherungs-Jumper-Einstellungen in PonyProg:


Nach der Firmware sollte die mit dem 23. Bein des Mikrocontrollers verbundene LED aufleuchten. Dies ist ein sicheres Zeichen dafür, dass der Programmierer erfolgreich geflasht wurde und einsatzbereit ist.

Treiberinstallation

Die Installation wurde auf einem Rechner mit Windows 7 System durchgeführt und es traten keine Probleme auf. Wenn Sie zum ersten Mal eine Verbindung zu einem Computer herstellen, wird eine Meldung über die Entdeckung eines neuen Geräts angezeigt, die Sie zur Installation des Treibers auffordert. Wählen Sie die Installation vom angegebenen Speicherort aus:


Wählen Sie den Ordner aus, in dem sich das Brennholz befindet, und klicken Sie auf Weiter


Sofort erscheint ein Fenster mit der Warnung, dass der zu installierende Treiber keine digitale Signatur für kleine Soft-Treiber hat:


Wir punkten mit der Warnung und setzen die Installation fort. Nach einer kurzen Pause erscheint ein Fenster, das Sie über den erfolgreichen Abschluss des Treiberinstallationsvorgangs informiert


Alles, jetzt ist der Programmierer bereit zu arbeiten.

Khazama AVR-Programmierer

Um mit dem Programmierer zu arbeiten, habe ich mich für den Khazama AVR Programmer entschieden. Ein wunderbares Programm mit einer minimalistischen Oberfläche.


Es funktioniert mit allen gängigen AVR-Mikrocontrollern, ermöglicht das Flashen von Flash und EEPROM, das Anzeigen des Speicherinhalts, das Löschen des Chips und das Ändern der Konfiguration der Sicherungsbits. Im Allgemeinen ein ziemliches Standardset. Die Sicherungen werden durch Auswahl der Taktquelle aus der Dropdown-Liste konfiguriert, wodurch die Wahrscheinlichkeit einer versehentlichen Blockierung des Quarzes stark reduziert wird. Sicherungen können auch durch das Platzieren von Kontrollkästchen im unteren Feld geändert werden, während Sie keine Kontrollkästchen auf eine nicht vorhandene Konfiguration setzen können, was auch in puncto Sicherheit ein großes Plus darstellt.


Die Aufzeichnung der Sicherungen im Speicher des MK erfolgt, wie Sie sich vorstellen können, durch Drücken der Schaltfläche „Alle schreiben“. Die Schaltfläche „Speichern“ speichert die aktuelle Konfiguration und die Schaltfläche „Laden“ gibt die gespeicherte zurück. Allerdings konnte ich mir keine praktische Anwendung für diese Tasten vorstellen. Die Schaltfläche „Standard“ ist zum Schreiben einer Standard-Sicherungskonfiguration gedacht, wie sie z. B. bei Mikrocontrollern ab Werk vorliegt (normalerweise 1 MHz vom internen RC).
Im Allgemeinen zeigte sich dieser Programmierer während der gesamten Nutzungsdauer von der besten Seite in Bezug auf Stabilität und Geschwindigkeit. Es funktionierte sowohl auf einem alten stationären PC als auch auf einem neuen Laptop problemlos.

Laden Sie die PCB-Datei herunterIn SprintLayout können Sie diesem Link folgen

Welche ersten Schritte sollte ein Funkamateur unternehmen, wenn er sich entscheidet, eine Schaltung auf einem Mikrocontroller aufzubauen? Natürlich benötigen Sie ein Steuerungsprogramm – „Firmware“ sowie einen Programmierer.

Und wenn es mit dem ersten Punkt keine Probleme gibt – die vorgefertigte „Firmware“ wird in der Regel von den Autoren der Schemata ausgelegt, dann ist es beim Programmierer komplizierter.

Der Preis für fertige USB-Programmierer ist recht hoch und die beste Lösung besteht darin, sie selbst zusammenzubauen. Hier ist ein Diagramm des vorgeschlagenen Geräts (Bilder sind anklickbar).

Hauptteil.

MK-Installationspanel.

Das Originalschema wurde mit Genehmigung des Autors von der Website LabKit.ru übernommen, wofür ihm vielen Dank gilt. Dabei handelt es sich um den sogenannten Klon des proprietären Programmierers PICkit2. Da es sich bei der Version des Geräts um eine „Light“-Kopie des proprietären PICkit2 handelt, nannte der Autor seine Entwicklung PICkit-2 Lite, was die einfache Montage eines solchen Geräts für Anfänger im Funkamateur unterstreicht.

Was kann ein Programmierer tun? Mit Hilfe des Programmierers wird es möglich sein, die meisten leicht zugänglichen und beliebten MKs der PIC-Serie (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A usw.) sowie EEPROM-Speicherchips der 24LC-Serie zu flashen . Darüber hinaus kann der Programmierer im USB-UART-Konvertermodus arbeiten und verfügt über einige Funktionen eines Logikanalysators. Eine besonders wichtige Funktion, die dem Programmierer zur Verfügung steht, ist die Berechnung der Kalibrierungskonstante des eingebauten RC-Generators einiger MKs (z. B. PIC12F629 und PIC12F675).

Notwendige Änderungen.

Es sind einige Änderungen an der Schaltung erforderlich, damit der PICkit-2 Lite-Programmierer Daten aus EEPROM-Speicherchips der 24Cxx-Serie schreiben/löschen/lesen kann.

Von den Änderungen, die am Schema vorgenommen wurden. Verbindung von Pin 6 von DD1 (RA4) zu Pin 21 des ZIF-Panels hinzugefügt. Der AUX-Pin wird ausschließlich für die Arbeit mit 24LC EEPROM-Speicherchips (24C04, 24WC08 und Analoga) verwendet. Über ihn werden Daten übertragen, daher ist er im Diagramm des Programmierpanels mit dem Wort „Daten“ gekennzeichnet. Bei der Programmierung von Mikrocontrollern wird der AUX-Pin normalerweise nicht verwendet, obwohl er bei der Programmierung des MK im LVP-Modus benötigt wird.

Außerdem wird ein 2-kΩ-Pull-up-Widerstand hinzugefügt, der zwischen dem SDA-Pin und Vcc der Speicherchips angeschlossen ist.

Ich habe alle diese Verbesserungen bereits an der Leiterplatte vorgenommen, nachdem ich das PICkit-2 Lite nach dem ursprünglichen Schema des Autors zusammengebaut hatte.

24Cxx-Speicherchips (24C08 usw.) werden häufig in Haushaltsradiogeräten verwendet und müssen manchmal geflasht werden, beispielsweise bei der Reparatur von Röhrenfernsehern. Sie nutzen den 24Cxx-Speicher zum Speichern von Einstellungen.

LCD-Fernseher verwenden einen anderen Speichertyp (Flash-Speicher). Ich habe bereits darüber gesprochen, wie man den Speicher eines LCD-Fernsehers flasht. Wer Interesse hat, schaut mal vorbei.

Im Zusammenhang mit der Notwendigkeit, mit Mikroschaltungen der 24Cxx-Serie zu arbeiten, musste ich den Programmierer „fertigstellen“. Ich habe die neue Leiterplatte nicht geätzt, sondern nur die notwendigen Elemente auf der Leiterplatte hinzugefügt. Hier ist, was passiert ist.

Das Herzstück des Geräts ist ein Mikrocontroller PIC18F2550-I/SP.

Dies ist der einzige Chip im Gerät. MK PIC18F2550 muss „geflasht“ werden. Diese einfache Operation führt bei vielen zu Benommenheit, da das sogenannte „Henne-Ei“-Problem entsteht. Wie ich mich entschieden habe, erzähle ich etwas später.

Liste der Teile zum Zusammenbau des Programmiergeräts. Ziehen Sie in der mobilen Version die Tabelle nach links (wischen Sie von links nach rechts), um alle Spalten anzuzeigen.

Name Bezeichnung Stückelung/Parameter Marke oder Typ des Artikels
Für den Hauptteil des Programmierers
Mikrocontroller DD1 8-Bit-Mikrocontroller PIC18F2550-I/SP
Bipolartransistoren VT1, VT2, VT3 KT3102
VT4 KT361
Diode VD1 KD522, 1N4148
Schottky Diode VD2 1N5817
LEDs HL1, HL2 beliebig bei 3 Volt, Rot Und Grün leuchtende Farben
Widerstände R1, R2 300 Ohm
R3 22 kOhm
R4 1 kOhm
R5, R6, R12 10 kOhm
R7, R8, R14 100 Ohm
R9, R10, R15, R16 4,7 kOhm
R11 2,7 kOhm
R13 100 kOhm
Kondensatoren C2 0,1 Mikrometer K10-17 (Keramik), importierte Analoga
C3 0,47 Mikrometer
Elektrolytkondensator C1 100 UF * 6,3 V K50-6, importierte Analoga
C4 47UF * 16V
Induktor (Drossel) L1 680 uH einheitlicher Typ EC24, CECL oder selbst hergestellt
Quarzresonator ZQ1 20 MHz
USB-Buchse XS1 Typ USB-BF
Jumper XT1 jede Art von Pullover
Für Mikrocontroller (MK)-Einbauplatte
ZIF-Panel XS1 jedes 40-polige ZIF-Panel
Widerstände R1 2 kOhm MLT, MON (Leistung ab 0,125 W), importierte Analoga
R2, R3, R4, R5, R6 10 kOhm

Nun ein wenig zu den Details und ihrem Zweck.

Grün Die LED HL1 leuchtet auf, wenn der Programmierer mit Strom versorgt wird, und Rot Die LED HL2 leuchtet zum Zeitpunkt der Datenübertragung zwischen Computer und Programmiergerät.

Um dem Gerät Vielseitigkeit und Zuverlässigkeit zu verleihen, wird die USB-Buchse XS1 Typ „B“ (quadratisch) verwendet. Der Computer verwendet eine USB-Buchse vom Typ A. Eine Verwechslung der Buchsen des Anschlusskabels ist daher ausgeschlossen. Außerdem trägt diese Lösung zur Zuverlässigkeit des Geräts bei. Sollte das Kabel unbrauchbar werden, kann es ganz einfach durch ein neues ersetzt werden, ohne dass Löt- und Installationsarbeiten erforderlich sind.

Als 680 μH L1-Induktor ist es besser, einen fertigen Induktor zu verwenden (z. B. Typen EC24 oder CECL). Wenn das fertige Produkt jedoch nicht gefunden werden kann, kann die Drossel unabhängig hergestellt werden. Wickeln Sie dazu 250 - 300 Windungen PEL-0,1-Draht auf einen Ferritkern einer Drossel vom Typ CW68. Es ist zu bedenken, dass Sie sich aufgrund des Vorhandenseins von PWM mit Rückkopplung keine Sorgen um die Genauigkeit der Induktivitätsbewertung machen sollten.

Die Spannung für die Hochspannungsprogrammierung (Vpp) von +8,5 bis 14 Volt wird durch einen Schlüsselregler erzeugt. Es umfasst die Elemente VT1, VD1, L1, C4, R4, R10, R11. Von Pin 12 des PIC18F2550 werden PWM-Impulse an die VT1-Basis gesendet. Die Rückmeldung erfolgt über den Teiler R10, R11.

Um die Schaltungselemente vor Rückspannung aus den Programmierleitungen zu schützen, wird bei Verwendung eines USB-Programmierers im ICSP-Modus (In-Circuit Serial Programming) eine VD2-Diode verwendet. VD2 ist eine Schottky-Diode. Es sollte mit einem Spannungsabfall am P-N-Übergang von nicht mehr als 0,45 Volt gewählt werden. Außerdem schützt die VD2-Diode die Elemente vor Sperrspannung, wenn der Programmierer im USB-UART-Umwandlungs- und Logikanalysatormodus verwendet wird.

Wenn Sie den Programmierer ausschließlich zum Programmieren von Mikrocontrollern im Panel verwenden (ohne ICSP zu verwenden), können Sie die VD2-Diode komplett ausschließen (so habe ich es gemacht) und stattdessen einen Jumper installieren.

Durch das universelle ZIF-Panel (Zero Insertion Force – ohne Einsteckkraft) ist das Gerät kompakt.

Dank dessen können Sie den MK in fast jedes DIP-Paket „einnähen“.

Das Diagramm „Microcontroller (MK) Installation Panel“ zeigt, wie Mikrocontroller mit unterschiedlichen Gehäusen in das Panel eingebaut werden. Bei der Installation des MC sollte darauf geachtet werden, dass der Mikrocontroller im Panel so positioniert ist, dass sich der Schlüssel des Mikroschaltkreises auf der Seite des Befestigungshebels des ZIF-Panels befindet.

So müssen Sie 18-Pin-Mikrocontroller (PIC16F84A, PIC16F628A usw.) installieren.

Und so funktionieren 8-Pin-Mikrocontroller (PIC12F675, PIC12F629 usw.).

Wenn ein Mikrocontroller in einem oberflächenmontierten Gehäuse (SOIC) geflasht werden muss, können Sie einen Adapter verwenden oder einfach die 5 Pins an den Mikrocontroller löten, die normalerweise für die Programmierung benötigt werden (Vpp, Clock, Data, Vcc, GND). .

Die fertige Platinenzeichnung mit allen Änderungen finden Sie unter dem Link am Ende des Artikels. Durch Öffnen der Datei im Programm Sprint Layout 5.0 im Modus „Drucken“ können Sie nicht nur eine Ebene mit einem Muster aus Leiterbahnen drucken, sondern auch die Positionierung von Elementen auf einer Leiterplatte anzeigen. Achten Sie auf den isolierten Jumper, der Pin 6 von DD1 und Pin 21 des ZIF-Panels verbindet. Es ist notwendig, die Platinenzeichnung auszudrucken im Spiegelbild.

Sie können eine Leiterplatte mit der LUT-Methode sowie einen Marker für Leiterplatten mit Zaponlak (das habe ich gemacht) oder der „Bleistift“-Methode herstellen.

Hier ist ein Bild der Positionierung von Elementen auf der Leiterplatte (anklickbar).

Bei der Installation besteht der erste Schritt darin, Jumper aus verzinntem Kupferdraht zu löten, dann Low-Profile-Elemente (Widerstände, Kondensatoren, Quarz, ISCP-Stiftleiste), dann Transistoren und einen programmierten MK zu installieren. Der letzte Schritt besteht darin, das ZIF-Panel und die USB-Buchse zu installieren und den isolierten Draht (Jumper) anzulöten.

„Firmware“-Mikrocontroller PIC18F2550.

Firmware-Datei - PK2V023200.hex muss mit einem beliebigen Programmiergerät, das PIC-Mikrocontroller unterstützt (z. B. Extra-PIC), in den Speicher des PIC18F2550I-SP MK geschrieben werden. Ich habe den JDM-Programmator JONIC PROG und das Programm verwendet WinPic800.

Sie können die „Firmware“ mit demselben proprietären PICkit2-Programmierer oder seiner neuen Version PICkit3 auf den PIC18F2550 MK hochladen. Natürlich können Sie dies auch mit einem selbstgebauten PICkit-2 Lite tun, wenn einer Ihrer Freunde es vor Ihnen geschafft hat, es zusammenzubauen :).

Es ist auch wissenswert, dass die „Firmware“ des Mikrocontrollers PIC18F2550-I/SP (Datei PK2V023200.hex) wird während der Installation des PICkit 2 Programmer zusammen mit den Dateien des Programms selbst in einen Ordner geschrieben. Ein ungefährer Pfad für den Speicherort der Datei PK2V023200.hex lautet „C:\Programme (x86)\Microchip\PICkit 2 v2\PK2V023200.hex“ . Für diejenigen, die eine 32-Bit-Version von Windows auf ihrem PC installiert haben, ist der Speicherortpfad anders: „C:\Programme\Microchip\PICkit 2 v2\PK2V023200.hex“ .

Wenn es mit den vorgeschlagenen Methoden nicht möglich war, das „Henne-Ei“-Problem zu lösen, können Sie auf der AliExpress-Website einen fertigen PICkit3-Programmierer kaufen. Dort ist es deutlich günstiger. Ich habe darüber geschrieben, wie man Teile und Elektronikbausätze auf AliExpress kauft.

Aktualisierung der Programmierer-Firmware.

Der Fortschritt steht nicht still und von Zeit zu Zeit veröffentlicht Microchip Updates für seine Software, darunter auch für die Programmiergeräte PICkit2 und PICkit3. Selbstverständlich können wir auch das Steuerungsprogramm unseres selbstgebauten PICkit-2 Lite aktualisieren. Dazu benötigen Sie das Programm PICkit2 Programmer. Was ist das und wie wird es verwendet - etwas später. In der Zwischenzeit ein paar Worte dazu, was getan werden muss, um die „Firmware“ zu aktualisieren.

Um die Software des Programmiergeräts zu aktualisieren, schließen Sie den XT1-Jumper am Programmiergerät, wenn es vom Computer getrennt ist. Schließen Sie dann den Programmierer an den PC an und führen Sie den PICkit2-Programmierer aus. Wenn XT1 geschlossen ist, ist der Modus aktiviert Bootloader um die neue Firmware-Version herunterzuladen. Öffnen Sie dann im PICkit2-Programmierer über das Menü „Extras“ – „PICkit 2-Betriebssystem herunterladen“ die vorbereitete Hex-Datei der aktualisierten Firmware. Als nächstes erfolgt die Aktualisierung der Software des Programmierers.

Nach dem Update müssen Sie den Programmierer vom PC trennen und den Jumper XT1 entfernen. Im Normalmodus ist der Jumper geöffnet. Sie können die Version der Programmiersoftware über das Menü „Hilfe“ – „Info“ im PICkit2 Programmer herausfinden.

Es ist alles technisch. Und nun zur Software.

Zusammenarbeit mit einem Programmierer PICkit2-Programmierer.

Um mit dem USB-Programmierer arbeiten zu können, müssen wir das Programm PICkit2 Programmer auf dem Computer installieren. Dieses spezielle Programm verfügt über eine einfache Benutzeroberfläche, ist einfach zu installieren und erfordert keine spezielle Konfiguration. Es ist erwähnenswert, dass Sie mit dem Programmierer auch über die MPLAB IDE-Entwicklungsumgebung arbeiten können, aber um den MK zu flashen/löschen/lesen, reicht ein einfaches Programm – PICkit2 Programmer. Ich empfehle.

Nach der Installation des PICkit2 Programmer-Programms schließen wir den zusammengebauten USB-Programmierer an den Computer an. Gleichzeitig leuchtet es auf Grün LED („Power“) und das Betriebssystem erkennt das Gerät als PICkit2 Mikrocontroller-Programmierer und Treiber installieren.

Starten Sie den PICkit2-Programmierer. Im Programmfenster sollte eine Beschriftung erscheinen.

Wenn der Programmierer nicht angeschlossen ist, werden im Programmfenster eine schreckliche Aufschrift und eine kurze Anleitung „Was ist zu tun?“ angezeigt. auf Englisch.

Wenn der Programmierer mit einem Computer mit installiertem MK verbunden ist, erkennt das Programm dies beim Start und informiert uns im PICkit2 Programmer-Fenster darüber.

Glückwunsch! Der erste Schritt ist getan. Und ich habe in einem separaten Artikel darüber gesprochen, wie man den PICkit2-Programmierer verwendet. Nächster Schritt .

Erforderliche Dateien:

    PICkit2-Benutzerhandbuch (Russisch) nehmen oder .

Mit der Entwicklung der Computertechnologie gibt es immer weniger Computer, die mit COM- und LPT-Anschlüssen ausgestattet sind. Dies wiederum führt insbesondere für Funkamateure zu Schwierigkeiten, die mit der Schnittstelle von Mikrocontroller-Programmiertools mit einem Personalcomputer verbunden sind.

Dieser Artikel enthält eine Beschreibung des USB-Programmierers für AVR-Mikrocontroller, den Sie selbst zusammenbauen können. Es basiert auf dem Atmega8-Mikrocontroller und kann über den USB-Anschluss des Computers betrieben werden. Dieser Programmierer ist mit STK500 v2 kompatibel.

Beschreibung des USB-Programmierers

Der USB-Programmierer ist auf einer Platine aus einseitiger Glasfaserfolie aufgebaut. Auf der Platine befinden sich 2 Jumper: Einer befindet sich unter dem SPI-Anschluss, der zweite Jumper befindet sich in der Nähe desselben Anschlusses.

Nachdem alle Details gelötet sind, müssen Sie den Atmega8-Mikrocontroller mit der am Ende des Artikels angegebenen Firmware flashen. Die Sicherungen, die beim Programmieren des Atmega8-Mikrocontrollers gesetzt werden müssen, sollten wie folgt aussehen:

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

Es muss daran erinnert werden, dass in einigen Programmen die Sicherungen umgekehrt eingestellt sind. Beispielsweise müssen Sie im CodeVisionAVR-Programm die Kontrollkästchen für die oben genannten Sicherungen aktivieren und umgekehrt im PonyProg-Programm.

Programmierung von Atmega8 über den LPT-Port des PCs

Der schnellste und günstigste Weg, den Atmega8 zu programmieren, ist die Verwendung eines LPT-Programmierers für den AVR. Ein ähnliches Diagramm ist unten dargestellt.

Der Mikrocontroller wird von einem einfachen Spannungsregler 78L05 gespeist. Als Shell für die Programmierung können Sie das Programm UniProf verwenden.

Wenn Sie das Programm zum ersten Mal starten und der Controller nicht angeschlossen ist, müssen Sie durch Drücken der Schaltfläche „LPTpins“ die LPT-Port-Pins wie folgt konfigurieren:

Beim Start von UniProf wird automatisch der Typ des Mikrocontrollers ermittelt. Wir laden die Firmware Atmega8_USB_prog.hex in den UniProf-Speicher und lehnen die Verbindung der EEPROM-Datei ab.

Wir setzen die Sicherungen wie folgt (für das UniProF-Programm) durch Drücken der „FUSE“-Taste:

Um die Einstellungen zu speichern, drücken Sie alle drei „Write“-Tasten. Anschließend löschen wir mit einem Klick auf „Erase“ zunächst den Speicher des zu flashenden Mikrocontrollers. Danach klicken wir bereits auf „Prog“ und warten, bis die Firmware abgeschlossen ist.

Einrichten des USB-Programmierers

Nachdem unser Mikrocontroller geflasht wurde, muss er auf der USB-Programmierplatine installiert werden. Als nächstes schließen wir den Programmierer an den USB-Anschluss des Computers an, versorgen ihn aber noch nicht mit Strom.

Porteinstellung:

Terminal-Setup:

ASCII-Einstellung:

Nachdem alle Vorgänge abgeschlossen sind, versorgen wir nun den USB-Programmierer mit Strom. LED HL1 sollte 6 Mal blinken und dann eingeschaltet bleiben.

Um die Verbindung des USB-Programmierers mit dem Computer zu überprüfen, drücken Sie im HyperTerminal-Programm zweimal die „Enter“-Taste. Wenn alles in Ordnung ist, sollten wir das folgende Bild sehen:

Sollte dies nicht der Fall sein, überprüfen Sie die Installation erneut, insbesondere die TxD-Leitung.

Als nächstes geben wir die Version des Programmierers 2.10 ein, da der Programmierer ohne diese nicht mit den Programmen der „obersten Ebene“ arbeiten kann. Geben Sie dazu „2“ ein und drücken Sie „Enter“, geben Sie „a“ (Englisch) ein und drücken Sie „Enter“.

Der USB-Programmierer ist in der Lage, den Anschluss eines programmierbaren Mikrocontrollers zu erkennen. Dies geschieht in Form einer Steuerung des „Pull-up“ des Reset-Signals zur Stromquelle. Dieser Modus wird wie folgt ein- und ausgeschaltet:

  • „0“, „Enter“ – der Modus ist deaktiviert.
  • „1“, „Enter“ – der Modus ist aktiviert.

Änderung der Programmiergeschwindigkeit (1 MHz):

  • „0“, „Enter“ – maximale Geschwindigkeit.
  • „1“, „Enter“ – reduzierte Geschwindigkeit.

Damit sind die Vorbereitungsarbeiten abgeschlossen. Jetzt können Sie versuchen, einen Mikrocontroller zu flashen.

(heruntergeladen: 1 203)

Einmal habe ich beschlossen, ein einfaches LC-Meter auf Bild 16f628a zusammenzubauen, und natürlich musste es mit etwas geflasht werden. Früher hatte ich einen Computer mit einem physischen COM-Anschluss, aber jetzt stehen mir nur noch USB und eine PCI-LPT-2COM-Karte zur Verfügung. Zunächst habe ich einen einfachen JDM-Programmierer zusammengebaut, aber wie sich herausstellte, wollte er weder mit der PCI-LPT-COM-Karte noch mit dem USB-COM-Adapter funktionieren (niedrige Spannung der RS-232-Signale). Dann habe ich mich beeilt, nach USB-Pic-Programmierern zu suchen, aber wie sich herausstellte, beschränkte sich alles auf die Verwendung des teuren Pic18f2550 / 4550, das ich natürlich nicht hatte, und es ist schade, so teure MKs zu verwenden, wenn ich es sehr selten tue etwas in Spitzenzeiten (ich bevorzuge Avrs, es ist kein Problem, sie zu flashen, sie sind viel billiger und es scheint mir, dass es einfacher ist, Programme darauf zu schreiben). Nach langem Stöbern im Internet in einem der vielen Artikel über den EXTRA-PIC-Programmierer und seine verschiedenen Optionen schrieb einer der Autoren, dass Extrapic mit allen COM-Ports und sogar einem USB-COM-Adapter funktioniert.

Das Schema dieses Programmierers verwendet einen Max232-Logikpegelwandler.

Ich dachte, wenn man einen USB-Adapter verwendet, wäre es sehr dumm, die USB-Pegel zweimal in US-TTL, TTL in RS232 und RS232 zurück in TTL umzuwandeln, wenn man nur die TTL-Signale des RS232-Ports nehmen kann Der USB-USART-Konverterchip.

Und das tat er. Ich habe den CH340G-Chip (der alle 8 COM-Port-Signale hat) genommen und ihn anstelle von max232 angeschlossen. Und genau das ist passiert.

In meiner Schaltung gibt es einen Jumper jp1, der sich nicht in der zusätzlichen Spitze befindet. Ich habe ihn gesetzt, weil ich nicht wusste, wie sich der TX-Ausgang auf dem TTL-Pegel verhalten würde, also habe ich es möglich gemacht, ihn auf dem verbleibenden freien NAND-Element zu invertieren und hat, wie sich herausstellte, nicht verloren, dass der TX-Pin direkt logisch ist, und daher liegen beim Einschalten 12 Volt am VPP-Pin an, und während der Programmierung passiert nichts (obwohl Sie TX programmgesteuert invertieren können).

Nach dem Zusammenbau der Platine ist es Zeit zum Testen. Und dann kam die größte Enttäuschung. Der Programmierer war sofort entschlossen (mit dem IC-Prog-Programm) und verdiente, aber sehr langsam! Im Grunde ist es zu erwarten. Dann stellte ich in den Einstellungen des COM-Ports die maximale Geschwindigkeit (128 Kilobaud) ein und begann mit dem Testen aller gefundenen Programme für JDM. Infolgedessen erwies sich PicPgm als das schnellste. Mein pic16f628a war vollständig geflasht (Hex, EEPROM und Konfiguration) plus Überprüfung etwa 4-6 Minuten (außerdem ist das Lesen langsamer als das Schreiben). IcProg funktioniert auch, aber langsamer. Es gab keine Programmierfehler. Ich habe auch versucht, EEPROM 24c08 zu flashen, das Ergebnis ist das gleiche - alles näht, aber sehr langsam.

Schlussfolgerungen: Der Programmierer ist ziemlich einfach, er hat keine teuren Teile (CH340 - 0,3-0,5 $, k1533la3 findet man im Radioschrott), er funktioniert auf jedem Computer, Laptop (und man kann sogar Windows 8/10-Tablets verwenden). Nachteile: Es ist sehr langsam. Außerdem ist eine externe Stromversorgung für das VPP-Signal erforderlich. Daher schien es mir für seltene Spitzenblitze eine einfach zu wiederholende und kostengünstige Option für diejenigen zu sein, die keinen alten Computer mit den erforderlichen Anschlüssen zur Hand haben.

Hier ein Foto des fertigen Geräts:

Wie es in dem Lied heißt: „Ich habe ihn geblendet von dem, was war.“ Der Teilesatz ist am vielfältigsten: sowohl SMD als auch DIP.

Für diejenigen, die es wagen, das Schema zu wiederholen, ist fast jeder (ft232, pl2303, cp2101 usw.) als USB-UART-Konverter geeignet, anstelle von k1533la3 ist k555 geeignet, ich denke sogar die k155-Serie oder ein ausländisches Analogon von 74als00 , es funktioniert möglicherweise sogar mit logischen NOT-Elementen wie k1533ln1. Ich lege meine Leiterplatte bei, aber die Verkabelung dort für die Elemente, die vorhanden waren, kann jeder selbst nachzeichnen.

Liste der Radioelemente

Bezeichnung Typ Konfession Menge NotizGeschäftMein Notizblock
IC1 ChipCH340G1 Zum Notizblock
IC2 ChipK1533LA31 Zum Notizblock
VR1 Linearregler

LM7812

1 Zum Notizblock
VR2 Linearregler

LM7805

1 Zum Notizblock
VT1 Bipolartransistor

KT502E

1 Zum Notizblock
VT2 Bipolartransistor

KT3102E

1 Zum Notizblock
VD1-VD3 Gleichrichterdiode

1N4148

2 Zum Notizblock
C1, C2, C5-C7 Kondensator100 nF5 Zum Notizblock
C3, C4 Kondensator22 pF2 Zum Notizblock
HL1-HL4 LeuchtdiodeBeliebig4 Zum Notizblock
R1, R3, R4 Widerstand

1 kOhm

3
22. September 2011 um 20:11 Uhr

Miniatur-USB-Programmierer für AVR-Mikrocontroller

  • Mikrocontroller-Programmierung

So wie das Theater mit einem Kleiderbügel beginnt, so beginnt die Mikrocontroller-Programmierung mit der Wahl eines guten Programmierers. Da ich anfange, ATMEL-Mikrocontroller zu beherrschen, musste ich mich gründlich mit dem Angebot der Hersteller vertraut machen. Sie bieten viele interessante und leckere Dinge an, allerdings zu sehr hohen Preisen. Beispielsweise kostet ein Schal mit einem zwanzigbeinigen Mikrocontroller mit einem Paar Widerständen und Dioden als Umreifung wie ein „Flugzeug“. Daher stellte sich die Frage nach der Selbstorganisation des Programmierers. Nach langem Studium der Entwicklungen erfahrener Funkamateure wurde beschlossen, einen bewährten USBASP-Programmierer zusammenzustellen, dessen Gehirn der Atmega8-Mikrocontroller ist (es gibt auch Firmware-Optionen für atmega88 und atmega48). Durch die minimale Bindung des Mikrocontrollers können Sie einen relativ kleinen Programmierer zusammenbauen, den Sie wie ein Flash-Laufwerk immer mitnehmen können.

Der Autor dieses Programmierers ist der Deutsche Thomas Fichl, seine Entwicklungsseite mit Diagrammen, PCB-Dateien und Treibern.
Nachdem beschlossen wurde, einen Miniaturprogrammierer zusammenzubauen, habe ich die Schaltung für den Atmega8-Mikrocontroller im TQFP32-Paket neu gezeichnet (die Pinbelegung des Mikrocontrollers unterscheidet sich von der Pinbelegung im DIP-Paket):

Jumper J1 wird verwendet, wenn ein Flashen des Mikrocontrollers mit einer Taktfrequenz unter 1,5 MHz erforderlich ist. Dieser Springer kann übrigens ganz eliminiert werden, indem man das 25. Bein des MK auf den Boden legt. Dann arbeitet der Programmierer immer mit einer reduzierten Frequenz. Ich persönlich habe selbst festgestellt, dass das Programmieren mit reduzierter Geschwindigkeit einen Bruchteil einer Sekunde länger dauert und ich daher jetzt nicht mehr am Pullover ziehe, sondern ständig damit nähe.
Die Zenerdioden D1 und D2 dienen dazu, die Pegel zwischen dem Programmiergerät und dem USB-Bus anzupassen. Ohne sie funktioniert es, jedoch nicht bei allen Computern.
Die blaue LED zeigt an, dass die Schaltung zum Programmieren bereit ist, die rote LED leuchtet während der Programmierung. Kontakte zum Programmieren werden auf den IDC-06-Stecker geführt, die Pinbelegung entspricht dem ATMEL-Standard für einen 6-poligen ISP-Stecker:

Dieser Anschluss verfügt über Kontakte zur Stromversorgung programmierbarer Geräte. Hier wird er direkt vom USB-Anschluss des Computers abgenommen. Sie müssen also darauf achten, keine Kurzschlüsse zuzulassen. Der gleiche Anschluss wird auch zum Programmieren des Steuermikrocontrollers verwendet. Dazu reicht es aus, die Reset-Pins am Anschluss und am MK zu verbinden (siehe die rot gestrichelte Linie im Diagramm). Im Schema des Autors geschieht dies durch einen Jumper, aber ich habe die Platine nicht überladen und entfernt. Für eine einzelne Firmware reicht eine einfache Drahtbrücke. Es stellte sich heraus, dass die Platte doppelseitig war und eine Größe von 45 x 18 mm hatte.

Der Programmieranschluss und ein Jumper zur Reduzierung der Geschwindigkeit des Programmiergeräts sind am Ende des Geräts angebracht, was sehr praktisch ist

Firmware des Steuermikrocontrollers
Nach dem Zusammenbau des Geräts bleibt also das Wichtigste, den Steuermikrocontroller zu flashen. Für diese Zwecke sind Freunde, die noch Computer mit LPT-Anschluss haben, gut geeignet :) Der einfachste Fünf-Draht-Programmierer für AVR
Der Mikrocontroller kann über den Programmieranschluss geflasht werden, indem die Reset-Pins des Mikrocontrollers (29. Bein) und der Stecker verbunden werden. Firmware gibt es für die Modelle Atmega48, Atmega8 und Atmega88. Es empfiehlt sich, einen der letzten beiden Steine ​​zu verwenden, da der Support für die Atmega48-Version eingestellt wurde und die neueste Firmware-Version aus dem Jahr 2009 stammt. Und die Versionen für den 8. und 88. Stein werden ständig aktualisiert, und der Autor scheint zu planen, die Funktionalität um einen In-Circuit-Debugger zu erweitern. Die Firmware nehmen wir auf der deutschen Seite. Um das Steuerprogramm auf den Mikrocontroller hochzuladen, habe ich das Programm PonyProg verwendet. Beim Programmieren ist es notwendig, den Quarz von einer externen Taktquelle mit 12 MHz zum Laufen zu bringen. Screenshot des Programms mit Sicherungs-Jumper-Einstellungen in PonyProg:

Nach der Firmware sollte die mit dem 23. Bein des Mikrocontrollers verbundene LED aufleuchten. Dies ist ein sicheres Zeichen dafür, dass der Programmierer erfolgreich geflasht wurde und einsatzbereit ist.

Treiberinstallation
Die Installation wurde auf einem Rechner mit Windows 7 System durchgeführt und es traten keine Probleme auf. Wenn Sie zum ersten Mal eine Verbindung zu einem Computer herstellen, wird eine Meldung über die Entdeckung eines neuen Geräts angezeigt, die Sie zur Installation des Treibers auffordert. Wählen Sie die Installation vom angegebenen Speicherort aus:

Sofort erscheint ein Fenster mit der Warnung, dass der zu installierende Treiber keine digitale Signatur für kleine Soft-Treiber hat:

Wir punkten mit der Warnung und setzen die Installation fort. Nach einer kurzen Pause erscheint ein Fenster, das Sie über den erfolgreichen Abschluss des Treiberinstallationsvorgangs informiert

Alles, jetzt ist der Programmierer bereit zu arbeiten.

Khazama AVR-Programmierer
Um mit dem Programmierer zu arbeiten, habe ich mich für den Flasher Khazama AVR Programmer entschieden. Ein wunderbares Programm mit einer minimalistischen Oberfläche.

Es funktioniert mit allen gängigen AVR-Mikrocontrollern, ermöglicht das Flashen von Flash und EEPROM, das Anzeigen des Speicherinhalts, das Löschen des Chips und das Ändern der Konfiguration der Sicherungsbits. Im Allgemeinen ein ziemliches Standardset. Die Sicherungen werden durch Auswahl der Taktquelle aus der Dropdown-Liste konfiguriert, wodurch die Wahrscheinlichkeit einer versehentlichen Blockierung des Quarzes stark reduziert wird. Sicherungen können auch durch das Platzieren von Kontrollkästchen im unteren Feld geändert werden, während Sie keine Kontrollkästchen auf eine nicht vorhandene Konfiguration setzen können, was auch in puncto Sicherheit ein großes Plus darstellt.

Die Aufzeichnung der Sicherungen im Speicher des MK erfolgt, wie Sie sich vorstellen können, durch Drücken der Schaltfläche „Alle schreiben“. Die Schaltfläche „Speichern“ speichert die aktuelle Konfiguration und die Schaltfläche „Laden“ gibt die gespeicherte zurück. Allerdings konnte ich mir keine praktische Anwendung für diese Tasten vorstellen. Die Schaltfläche „Standard“ ist zum Schreiben einer Standard-Sicherungskonfiguration gedacht, wie sie z. B. bei Mikrocontrollern ab Werk vorliegt (normalerweise 1 MHz vom internen RC).
Im Allgemeinen zeigte sich dieser Programmierer während der gesamten Nutzungsdauer von der besten Seite in Bezug auf Stabilität und Geschwindigkeit. Es funktionierte sowohl auf einem alten stationären PC als auch auf einem neuen Laptop problemlos.

Sie können die PCB-Datei in SprintLayout herunterladen