AVR-Mikrocontroller-Programmierer. Einfache Programmierer. Erstellen eines LPT-Programmierers für AVR-Mikrocontroller. Programmierer unter Verwendung eines COM-Ports

Sehr oft stoßen viele Menschen im Internet auf ein interessantes Design, aber eines hält es zurück: Es wird mit einem Controller erstellt. Und es ist so schwierig...

Tatsächlich ist alles viel einfacher. Wenn es möglich ist, einen Controller zu kaufen, ist die Hälfte der Arbeit bereits erledigt. Es bleibt nur noch, die Platine zu „bügeln“, zu ätzen und mit Teilen zu verlöten... Und jetzt kommt der Controller. Wie kann man ihn „wiederbeleben“? Wie „flashen“? Die mühsame Suche nach der Programmierschaltung und dem Programm beginnt. Der Schaltkreis wurde gefunden, aber Pech gehabt – an der Rückwand des Computers befinden sich bereits 8 USB-Anschlüsse, ein Anschluss für einen Drucker und kein einziger COM-Port, für den der Schaltkreis gefunden wurde.

Es gibt eine weitere Möglichkeit für die Entwicklung von Veranstaltungen. Am Computer befindet sich ein COM-Anschluss. Aber aus irgendeinem Grund weigert sich der Programmierer, den Controller zu „nähen“ – es erscheint ständig ein Fehler. Tatsache ist jedoch, dass COM-Ports auf modernen Motherboards (und insbesondere in Laptops) häufig einen sehr geringen Strom aufweisen. Dadurch endet der Programmiervorgang, bevor er überhaupt begonnen hat. In allen oben genannten Fällen hilft Ihnen dieses einfache Diagramm.

Dies ist ein Programmierer für den LPT-Port. Trotz aller scheinbaren Komplexität ist das Schema recht einfach und funktioniert sofort, ohne dass eine Konfiguration erforderlich ist. Die Teile sind verfügbar und kosten buchstäblich ein paar Cent. Aber die Möglichkeiten... Mit diesem Gerät können Sie den Controller problemlos nicht nur im Sockel, sondern auch im Schaltkreis flashen (dies gilt für Geräte, deren Platine für ein SMD-Controller-Gehäuse verdrahtet ist, die Sie aber nicht kaufen möchten). Steckdose für 20 $ dafür).

Zusammengebaut sieht es so aus:

Dieser Programmierer mit geringfügigen Unterschieden ist seit etwa 20 Jahren im Internet unterwegs und wird als Clasic Tait Programmer, ProPIC2, ​​​​meProg bezeichnet. Es wird immer noch von einigen Firmen produziert und erfolgreich verkauft.

Die neuesten Versionen der Software können hier heruntergeladen werden:

  • http://www.winpic800.com/
  • http://melabs.com/support/progsoft.htm
  • http://members.aon.at/electronics/pic/picpgm/

Hier sind die Einstellungen für WinPIC800:

Und hier ist ein Adapter zum Flashen von 8-14-18-20 Ausgangscontrollern.


Dieses Diagramm wird auch oft angezeigt:

Für Anfänger stellt sich die Frage: „Womit flashen wir unseren Controller?“ steht fast sofort auf. Dieses Problem kann auf zwei Arten gelöst werden: Wir kaufen einen seriellen Programmierer oder bauen unseren eigenen. Natürlich ist es nicht ratsam, in der Anfangsphase des Kennenlernens von Mikrocontrollern einen der seriellen Programmierer zu kaufen. Die einfachste Lösung wäre der sogenannte „Fünf-Draht“-Programmierer. Diese Option ist für den einmaligen Gebrauch durchaus geeignet, allerdings besteht die große Gefahr, dass Ihr LPT-Port am Computer früher oder später durchbrennt. Als kostengünstige und sichere Option für einen Parallelport-Programmierer verwenden wir eine fortschrittlichere Schaltung.

Wir stellen einen einfachen und sicheren Parallelport-Programmierer vor. Die Programmierschaltung ist in verschiedenen Variationen weit verbreitet und basiert auf der Verwendung eines 74HC 244N-Pufferchips. Der Puffer schützt Ihren Druckeranschluss. Zusätzlich ist im Stromkreis ein Widerstand enthalten, der vor statischer Elektrizität schützen soll.

Der Programmierer ist mit Atmel STK 200/300 kompatibel und wird von vielen gängigen Compilern unterstützt. Der gesamte kleine Teilesatz für die Montage ist durchaus üblich und bereitet beim Kauf keine Schwierigkeiten. Die Leiterplatte ist in einseitiger Ausführung mit mehreren Jumpern ausgeführt.

Um das Programmiergerät an einen Computer anzuschließen, ist es praktisch, ein LPT-Port-Verlängerungskabel zu verwenden.

Schema im sPlan-Format 6.0 und Platinenlayout im Format Sprint-Layout Sie können 4.0 unter LUT unten herunterladen.

Wenn Sie vorhaben, ein Gerät mit Atmel AVR-Mikrocontrollern (oder sogar Ihrem eigenen hausgemachten Arduino) zu bauen, können Sie einfach nicht auf einen Programmierer verzichten. Mit dem Programmierer können Sie den Mikrocontroller mit dem gewünschten Programm flashen oder, im Fall von Arduino, einen geeigneten Bootloader in den Speicher des Mikrocontrollers schreiben.

Generell gibt es eine große Vielfalt an Programmierern, die sich in Montagekomplexität, Firmware-Geschwindigkeit und Betriebszuverlässigkeit unterscheiden. Die einfachste davon ist die im Volksmund „Five Wiring“ genannte Option. Aber seine Zuverlässigkeit lässt zu wünschen übrig, da es damit einfacher ist, einen LPT-Port zu zerstören =) Zuverlässiger ist der STK200-Programmierer, der einen Pufferchip enthält und den normalen Betrieb mit dem Port garantiert.

Aber aufgrund des Vorhandenseins des Chips wird die Herstellung für einen Anfänger (also für mich) viel schwieriger.

Wie gehe ich damit um?

Zum Schutz vor Kurzschlüssen fügen wir 150-Ohm-Widerstände hinzu; für die Kompatibilität mit STK200 (dadurch können Sie mit den meisten Flash-Programmen arbeiten) verbinden wir die Pins 2 mit 12 und 3 mit 11 im LPT. Wie Sie sehen, ist das System überhaupt nicht komplizierter geworden und gleichzeitig ist ein zusätzlicher Schutz entstanden.

Beginnen wir mit der Montage!

An einem männlichen LPT-Stecker (Sie können ihn von einem alten Kabel zum Drucker nehmen) müssen Sie die Beine von 18 bis 25 anschließen – das sind die Masseausgänge. Zum Schutz vor statischer Aufladung können Sie zusätzlich einen 1-KOhm-Widerstand zwischen Masse und dem Gehäuse des LPT-Steckers löten.

Dann müssen Sie Ausgang 3 mit Ausgang 11 und Ausgang 2 mit Ausgang 12 verbinden (charakteristisches Merkmal von STK200).

An den Beinen 6, 7, 9, 10 sind Widerstände mit einem Nennwert von 100 bis 150 Ohm angelötet. Dies werden unsere 4 Signalausgänge sein.

Das Kabel kann aus der IDE entnommen werden, die Länge wählt man besser ohne Fanatismus, 20-30 Zentimeter sollten reichen =) Je kürzer, desto zuverlässiger wird der Programmierer am Ende sein. Es wäre eine gute Idee, jedes Signalkabel abwechselnd mit Masse zu verbinden (wie es beispielsweise im selben IDE-Kabel der Fall ist), um sich vor möglichen Störungen zu schützen.

In-Circuit-Programmieranschlüsse...

Hier können Sie Ihrer Fantasie freien Lauf lassen =) Sie können eine 2x3-Gruppe vom IDE-Kabel abspalten, Sie können weibliche BLS-Anschlüsse verwenden (sie verbinden die Frontplatte des Gehäuses mit dem Motherboard). Ich habe aus einem 40-Nadel-Lineal zwei Streifen mit je 3 Nadeln abgeschnitten. Es kam nicht schlimmer =)

Nachdem wir all diese Leckereien verlötet haben, schließen wir den LPT-Anschluss und bewundern die Kreation unserer Hände.

Für Anfänger stellt sich die Frage: „Womit flashen wir unseren Controller?“ steht fast sofort auf. Dieses Problem kann auf zwei Arten gelöst werden: Wir kaufen einen seriellen Programmierer oder bauen unseren eigenen. Natürlich ist es nicht ratsam, in der Anfangsphase des Kennenlernens von Mikrocontrollern einen der seriellen Programmierer zu kaufen. Die einfachste Lösung wäre der sogenannte „Fünf-Draht“-Programmierer. Diese Option ist für den einmaligen Gebrauch durchaus geeignet, allerdings besteht die große Gefahr, dass Ihr LPT-Port am Computer früher oder später durchbrennt. Als kostengünstige und sichere Option für einen Parallelport-Programmierer verwenden wir eine fortschrittlichere Schaltung.

Wir stellen einen einfachen und sicheren Parallelport-Programmierer vor. Die Programmierschaltung ist in verschiedenen Variationen weit verbreitet und basiert auf der Verwendung eines 74HC 244N-Pufferchips. Der Puffer schützt Ihren Druckeranschluss. Zusätzlich ist im Stromkreis ein Widerstand enthalten, der vor statischer Elektrizität schützen soll.

Der Programmierer ist mit Atmel STK 200/300 kompatibel und wird von vielen gängigen Compilern unterstützt. Der gesamte kleine Teilesatz für die Montage ist durchaus üblich und bereitet beim Kauf keine Schwierigkeiten. Die Leiterplatte ist in einseitiger Ausführung mit mehreren Jumpern ausgeführt.

Um das Programmiergerät an einen Computer anzuschließen, ist es praktisch, ein LPT-Port-Verlängerungskabel zu verwenden.

Schema im sPlan-Format 6.0 und Platinenlayout im Format Sprint-Layout Sie können 4.0 unter LUT unten herunterladen.

Lassen Sie uns herausfinden, was eine ISP-Schnittstelle ist, und schauen wir uns einen kostengünstigen und praktischen USB-ISP-Programmierer an. Schauen wir uns die schematischen Diagramme der einfachsten Programmierer für AVR-Mikrocontroller an, die COM- und LPT-Anschlüsse an einem Computer verwenden. Diese Informationen reichen völlig aus, um die meisten Modelle von AVR-Mikrocontrollern nicht nur unter Linux, sondern auch unter anderen Betriebssystemen zu flashen.

ISP-In-System-Programmierschnittstelle

Um ein Programm auf den AVR-Mikrocontroller zu schreiben, benötigen Sie einen Programmierer.

Programmierer ist eine kleine elektronische Schaltung, die es Ihnen ermöglicht, einen Mikrocontroller an einen der Computeranschlüsse (COM, LPT, USB) anzuschließen, um die Firmware anschließend zu lesen und zu schreiben (Programmierung).

Es gibt viele verschiedene Designs von Programmierern für AVR-Mikrocontroller, die an verschiedene Computeranschlüsse angeschlossen werden.

Die zuverlässigste und bequemste Option ist ein Programmiergerät, das an einen USB-Anschluss angeschlossen wird, da in neuen Desktop-Computern und Laptops keine COM- und LPT-Anschlüsse mehr installiert sind.

Bei fertigen Geräten wird der Programmierer über eine Schnittstelle mit dem Mikrocontroller verbunden ISP(In System Programming) – In-System-Programmierschnittstelle. Die ISP-Schnittstelle besteht aus mehreren Leitern, über die ein Taktsignal und Daten empfangen werden, um den Programmierer mit dem Mikrocontroller zu verbinden.

In der Regel ist die ISP-Schnittstelle auf Platinen in Form von zehn oder sechs Pins untergebracht, an die der Programmierer über einen passenden Stecker per Kabel angeschlossen wird.

Reis. 4. ISP-Schnittstelle auf der Platine.

Zweck der Pins in der ISP-Schnittstelle:

  1. VCC – Stromversorgung Plus, normalerweise +5V;
  2. GND – Strom minus, Masse (Ground);
  3. MOSI – Dateneingang (Master Out Slave In);
  4. MISO – Datenausgabe (Master In Slave Out);
  5. SCK – Taktsignal (serielle Uhr);
  6. RST – um ein Reset-Signal bereitzustellen.

Für die In-Circuit-Programmierung des Mikrocontrollers genügen nur 4 Pins, da der Mikrocontroller über den Schaltkreis selbst mit Strom versorgt werden kann, in dem er installiert ist.

Wie verbinde ich den Programmierer mit dem AVR-Mikrocontroller-Chip, wenn dieser nicht in den Schaltkreis eingelötet ist? - ganz einfach, indem Sie bei Bedarf die gleichen Pins der ISP-Schnittstelle verwenden und den Mikrocontroller über die Stromquelle mit Strom versorgen.

USB-ISP-ASP-Programmierer

Um mit AVR-Chips arbeiten zu können, habe ich für etwa 10 US-Dollar einen preiswerten USB-ISP-Programmierer gekauft. Ein solches Gerät ist mittlerweile in vielen in- und ausländischen Online-Shops erhältlich, sodass es beim Kauf keine Probleme geben sollte.

Reis. 5. USB ISP – Programmierer mit Kabel zur In-Circuit-Programmierung von AVR-Mikrocontrollern von ATMEL.

Dieser Programmierer ist sicher zu verwenden, klein und wird von den meisten Programmen zum Flashen von AVR-Mikrocontrollern unterstützt. USB ISP läuft auf den Betriebssystemen Linux, Mac OS X und Windows. Für Linux müssen Sie keine Treiber installieren; nach dem Anschließen des Programmiergeräts an den USB-Port wird das Gerät sofort erkannt und ist einsatzbereit.

Im Folgenden gebe ich die Pinbelegung der Anschlüsse des USB-ISP-Programmierers an – sie wird uns später beim Anschluss an den Mikrocontroller nützlich sein.

Reis. 6. Lage der Pins am USB-ISP-Anschluss (Pinbelegung).

Reis. 7. Lage der Kontakte in den Anschlussbuchsen, die an den USB-ISP-Programmierer angeschlossen sind.

Was tun, wenn Sie keinen USB-ISP-Programmierer kaufen können?- Sie können Mikrocontroller mit einfachen hausgemachten Programmierern programmieren, die an einen COM- oder LPT-Port angeschlossen werden. Es ist jedoch besser, selbst einen USB-ISP zu erstellen und den Mikrocontroller-Chip dafür einmal mit einem einfachen hausgemachten Programmierer über einen COM- oder LPT-Port zu programmieren.

Reis. 8. Schematische Darstellung eines selbstgebauten USB-ASP-ISP-Programmierers.

Detaillierte Informationen zur Herstellung von USB ASP, sowie Leiterplatten, Treiber und Firmware für den Mikrocontroller finden Sie auf der offiziellen Website: http://www.fischl.de/usbasp/

Darüber hinaus gibt es im Internet ziemlich viele Ressourcen zu diesem kostenlosen Programmierer, es gibt viele vorgefertigte Leiterplattenlayouts, auch im SprintLayout-Programm, daher werden wir in diesem Artikel nicht näher darauf eingehen.

Programmierer mit COM-Port

Dieser Programmierer wird auch „Gromov-Programmierer“ genannt, zu Ehren desjenigen, der dieses Schema erfunden hat, dem Schöpfer des Algorithm Builder-Programms (einer grafischen Umgebung zum Programmieren von AVR unter Windows mithilfe einer algorithmischen Sprache) – G.L. Gromova.

Mit diesem Programmierer können Sie AVR-Chips über den COM-Port des Computers programmieren – RS232-Schnittstelle. Um einen solchen Programmierer zusammenzubauen, benötigen Sie ein Minimum an Teilen – 3 Dioden, 7 Widerstände, einen DB-9- oder DB-25-Stecker (je nachdem, welcher Gegenstecker in Ihrem Computer installiert ist) und einen ISP-Stecker zum Anschluss an den Mikrocontroller (oder nur ein paar Leiter zum Chip). In der Schaltung können beliebige Dioden mit geringer Leistung verwendet werden.

Reis. 9. Schematische Darstellung des AVR-Mikrocontroller-Programmierers über einen Computer-COM-Port.

Der Vollständigkeit halber gebe ich im Folgenden die Pinbelegung der RS-232-Anschlüsse für die Optionen DB-9 und DB-25 an.

Reis. 10. RS232 – COM-Anschluss, DB-9-Pin-Layout.

Reis. 11. RS232-COM-Port DB-25 – Position der Stifte an den Anschlüssen.

Programmierer mit LPT-Port

Wie wir wissen, ist der LPT-Anschluss eines Computers für den Anschluss eines lokalen Druckers (Local Printer Port) konzipiert, wird jedoch häufig zum Anschluss verschiedener Geräte und hausgemachter Produkte verwendet. In diesem Fall können wir damit AVR-Mikrocontroller programmieren, indem wir zu diesem Zweck eine sehr einfache Schaltung zusammenbauen, die unten gezeigt wird.

Reis. 12. Schematische Darstellung eines Programmiergeräts für AVR-Mikrocontroller, das den LPT-Port eines Computers nutzt.

Wie Sie sehen, ist die Schaltung noch einfacher als bei der Version mit, hier benötigen wir nur 4 Low-Power-Widerstände und einen Stecker (männlich, mit Pins) zum Anschluss an den LPT-Port des Computers.

Reis. 13. Lage der Pins für LPT-Port-Anschlüsse.

Alle Teile und Anschlüsse können im LPT-Steckergehäuse untergebracht werden und zum Anschluss an den Mikrocontroller kann ein Kabel mit Stecker für die ISP-Schnittstelle oder einfach die notwendigen Leiter zum Anschluss an den Mikrochip herausgeführt werden.

Software und Notizen

Nachdem Sie den COM- oder LPT-Programmierer an den Mikrocontroller angeschlossen haben, müssen Sie daran denken, den Mikrochip selbst mit Strom zu versorgen. Als Stromquelle für den Mikrocontroller können Sie Batterien oder ein Netzteil mit Stabilisator verwenden; dies ist sowohl für den Computeranschluss als auch für den Chip am sichersten. Wir haben bereits besprochen, wie man es benutzt.

Unter Linux gibt es ein sehr leistungsfähiges Programm, das mit USB-ASP-, COM- und LPT-Programmierern arbeiten kann – dieses Programm AVRDUDE, es wird in den folgenden Abschnitten besprochen.

Um AVR-Chips unter Windows mit Daten von COM- und LPT-Programmierern zu flashen, benötigen Sie das UniProf-Programm von Nikolaev, einen universellen Programmierer für AVR (avr.nikolaew.org).

AUFMERKSAMKEIT! Seien Sie äußerst vorsichtig und vorsichtig, wenn Sie Programmierer zusammenbauen und verwenden, die den COM- oder LPT-Anschluss eines Computers verwenden. Ein einfacher Fehler kann leicht passieren diese Häfen in Brand setzen. Für den normalen Betrieb solcher Programmiergeräte sollten Sie versuchen, möglichst kurze Leiter vom Stecker zur Programmierschaltung und zum Mikrocontroller zu verwenden. Es wird empfohlen, dass der Mikroprozessor des Computers eine Frequenz von nicht mehr als 1-2 GHz hat, und es wird empfohlen, Win2000 oder WinXP als Betriebssystem für die Programmierung der Chips zu verwenden.

Es ist auch wichtig zu wissen, dass USB-RS232-Adapter (USB-COM-Port) höchstwahrscheinlich nicht mit Gromovs Programmiergerät funktionieren; nur solche mit neueren Chips funktionieren, daher ist es besser, nach einem Gerät mit einem nativen COM-Port zu suchen.

Abschluss

Die im Artikel besprochenen Programmierer sind nur einige der günstigsten und einfachsten Lösungen aus einer großen Liste von AVR-Programmierern: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, FTDI-Programmierer und andere.

Jetzt können Sie auf jeden Fall einen Ihnen zur Verfügung stehenden Programmierer zusammenbauen und mindestens einen Chip flashen, auf dessen Grundlage Sie einen weiteren, bequemeren Programmierer oder ein anderes Gerät zusammenbauen können.

Im nächsten Artikel erfahren Sie, wie Sie verschiedene Modelle von AVR-Mikrocontrollern an den Programmierer anschließen und wo Sie Informationen zur Pinbelegung von Mikrocontrollern erhalten.