Universeller USB-Chip-Programmierer zum Selbermachen. Universeller USB-Programmierer

Ein Programmierer ist ein Hardware-Software-Gerät, das zum Lesen oder Schreiben von Informationen in ein Speichergerät (interne Mikrocontroller) verwendet wird. Wenn ein Funkamateur einmal ein Mikrocontroller-Gerät programmieren muss, können Sie einen herkömmlichen Programmierer verwenden, der an einen COM- oder LPT-Port angeschlossen wird. Der einfachste AVR-Programmierer ist beispielsweise ein Kabel aus 6 und 4 Widerständen (PonyProg-Programmierer).

Mit einem normalen Programmierer können Sie Hex-Programme in viele AVR-Mikrocontroller laden, ohne zusätzliche Zeit und Geld zu verschwenden. Darüber hinaus kann der Programmierer als In-Circuit-Programmierer verwendet werden, sodass Sie den AVR-Mikrocontroller programmieren können, ohne ihn aus dem Gerät zu entfernen.

Solche Programmierer werden über ein spezielles Programm (auch Programmierer genannt) mit dem Computer verbunden. Es sendet von und das Gerät schreibt es nur in den Speicher des Chips. Programmierer können über eine serielle oder parallele Schnittstelle, über einen USB-Anschluss usw. angeschlossen werden. Moderne Programmierer werden meist über USB angeschlossen.

Der USB-Programmierer ist für die Programmierung von Mikroprozessorgeräten eines bestimmten Unternehmens (je nach Marke des Programmiergeräts) in zusammengebauter Form konzipiert. Dies vereinfacht den Einrichtungsprozess der Software erheblich.

Wie schließe ich einen USB-Programmierer an?

Um das Gerät verwenden zu können, müssen Sie es an einen der USB-Anschlüsse Ihres Computers anschließen. Danach erscheint auf dem Computer eine Meldung zum Anschließen eines neuen USBasp-USB-Geräts und die LED am Programmiergerät selbst leuchtet auf, was bedeutet, dass das Gerät erfolgreich angeschlossen wurde.

Anschließend müssen Sie die Treiber installieren, damit das Betriebssystem mit diesem Gerät ordnungsgemäß funktioniert. Anschließend können Sie das Mikroprozessorgerät an die ISP-Schnittstelle anschließen. Während der Programmierung leuchtet die zweite LED.

In der Regel verfügt der Programmierer über zwei Schnittstellen – eine zum Anschluss eines Mikrocontrollers, die zweite zum Anschluss an einen Computer. Um den Mikrocontroller anzuschließen, können Sie den seriellen ISP-Programmiermodus verwenden. Dieses Gerät wird über einen Standard-USB-Anschluss an einen Computer angeschlossen.

Um den Programmierer zu steuern, müssen Sie spezielle Programme installieren. Am besten verwenden Sie Fensteranwendungen. Um mit dem Gerät zu arbeiten, können Sie beispielsweise ExtremeBurner, Khazama, avrguge und andere verwenden.

Dieser Programmierer erfordert keine Erstprogrammierung – Sie ätzen die Leiterplatte, löten sie und verwenden sie. Der Autor dieses Geräts ist am Ende des Artikels aufgeführt, aber hier werde ich einen kurzen Auszug aus dem Handbuch geben, um klarer zu machen, wovon wir sprechen: Der richtige USB-Programmierer ist tatsächlich eine universelle Sache. Sie können es an jeden modernen Computer anschließen und den gewünschten Mikrocontroller problemlos und mit relativ hoher Geschwindigkeit mit einer beliebigen Menge an FLASH-Speicher aktualisieren. Aber das Schlüsselwort hier ist „richtig“, was ganz normal funktioniert, ohne sofort nach dem Einbau und Zusammenbau der Teile zu stimmen und mit einem Tamburin darüber zu tanzen. Was beim Wechsel von einem PC auf einen anderen oder beim Wechsel des Betriebssystems keine Probleme bereitet. Der richtige ist einer, für den es Treiber für jede moderne, weit verbreitete Version des Betriebssystems gibt, und diese Treiber sind nicht fehlerhaft. Ein Dutzend weiterer Korrektheitskriterien wird jeder für sich persönlich festlegen, die oben genannten sind jedoch die wichtigsten, ohne die ein normales Arbeiten mit dem Mikrocontroller grundsätzlich nicht möglich sein wird.

Derzeit ist das Internet voll von verschiedenen USB-Programmierschaltungen für AVR. Herkömmlicherweise können sie in zwei große Gruppen eingeteilt werden.

Erste Gruppe umfasst Programmierer, die auf der Basis von Mikrocontrollern (insbesondere AVR) aufgebaut sind. Ich habe mehrere Programmierer von Prottoss (AVR910) für mich und meine Freunde sowie mehrere USBasp-Teile gesammelt. Zwei meiner Freunde, denen diese Geräte geschenkt wurden, sind begeistert. Sie nähen bereits seit mehreren Jahren erfolgreich Steine. Für andere (insbesondere für mich persönlich) bereiteten die versammelten Programmierer keine große Freude. Ich sage nicht, dass sie schlecht sind, sondern nur, dass die Umstände so waren: Auf dem einen Computer funktioniert es, auf dem anderen jedoch nicht. Oder es stellte sich heraus, dass sie nach ein paar Stunden Arbeit für die Software, mit der der Stein genäht wurde, unsichtbar waren. Und vieles mehr. Lassen Sie mich gleich sagen, dass ich die Firmware der Controller, auf denen diese Programmierer montiert sind, nicht verstanden habe. Ich habe zwar eine Reihe von Flash-Programmen ausprobiert, mit denen diese Programmierer scheinbar problemlos Steine ​​nähen können. Das Ergebnis in Form häufiger Störungen hat mich jedoch nicht sonderlich zufrieden gestellt. Die einzige Ausnahme war das AVRDUDE-Programm in Kombination mit der grafischen Shell SinaProg, aber ich habe zu spät davon erfahren. Mir ist übrigens dieser Trend aufgefallen: Je älter die PC-Hardware, desto besser arbeiten diese Programmierer. Nun, der unangenehmste Moment für diejenigen, die sich für die zweite Möglichkeit entschieden haben, sich mit AVR-Mikrocontrollern vertraut zu machen, ist, dass Sie, damit der Programmierer funktioniert, den darin enthaltenen Stein mit etwas flashen müssen. Das heißt, es sieht so aus: Um den Programmierer verwenden zu können, müssen Sie einen Programmierer erstellen/finden, um das Gehirn dieses Programmierers zu flashen. Das ist so ein Teufelskreis.

Und die zweite Gruppe USB-Programmierer verfügen über eine Lösung, die auf einem speziellen FT232Rx-Chip basiert. Diese Mikroschaltung wurde einst zu einer Art Revolution. Es konvertiert USB nicht nur problemlos in UART für den Entwickler (und wahrscheinlich verwenden es 95 % der Entwickler genau für diesen Zweck). Es kann auch einen vollwertigen COM-Port emulieren, und der Status „untergeordneter“ Leitungen (wie RTS, CTS, DTR usw.) kann nicht über einen virtuellen COM-Port, sondern direkt über den FTDI-Treiber eingestellt/gelesen werden ( entwickelt von FT232Rx). Damit ist eine neue Lösung zum Flashen von Mikrocontrollern entstanden, die keine anfängliche Firmware im Gehirn des Programmierers erfordert und recht schnell ist.

Schematische Darstellung eines USB-Programmierers

Diese Schaltung leitet einfach die MOSI-, MISO-, SCK- und RESET-Signale, die an den DCD-, DTR-, RTS- und DSR-Pins des DD1-Chips (FT232RL) erzeugt werden, an die gewünschten Pins des zu flashenden Mikrocontrollers (d. h ist eigentlich ein Analogon zu den „alten“ Programmierern). Darüber hinaus geschieht dies nur zum Zeitpunkt der Programmierung des Steins; zu anderen Zeiten ist der Programmierer aufgrund der 4 Pufferelemente des DD2-Chips (74HC125D) von der Platine getrennt, die geflasht wird. Der Zustand der MOSI-, MISO-, SCK- und RESET-Leitungen wird von der Firmware-Software auf dem Computer gesetzt/gelesen. Die Datenübertragung zwischen PC und FT232RL-Chip erfolgt über den USB-Bus (von dem auch der Programmierer mit Strom versorgt wird).

Die HL2-LED („PWR“) signalisiert, dass das Programmiergerät Strom vom USB-Bus erhält. LED HL1 („PROG“) zeigt den Flashvorgang des Mikrocontrollers an (leuchtet nur während des Flashens). Das ist im Prinzip die gesamte Beschreibung des elektrischen Schaltplans selbst. Das Einzige, was ich anmerken möchte, ist: Erstens wird zum Anschließen des Programmiergeräts an die zu flashende Platine ein IDC-10MR-Anschluss (XP2 „ISP“) verwendet, dessen Pinbelegung mit der weit verbreiteten Pinbelegung des Programmiergerätanschlusses übereinstimmt
STK200/STK300:

XP2 „ISP“-Anschluss zum Anschluss des Geräts an einen programmierbaren Mikrocontroller

XP3 „MISC“-Anschluss zur Nutzung zusätzlicher Programmierfunktionen

Im Allgemeinen hat der FT232RL-Chip für einen Entwickler ein ziemlich großes Potenzial (z. B. können die CBUS-Busleitungen als normale I/O-Leitungen des Mikrocontrollers verwendet werden), daher wäre es schön, Zugriff auf alle seine Pins zu haben. Nun, der Zugriff auf die Spannungen +5,0 V und +3,3 V wird auch nie überflüssig sein. Im Anhang finden Sie eine Leiterplatte und eine ausführliche Beschreibung. Entwicklung und Handbuch - [email protected] , Versuch - SssaHeKkk.

In diesem Artikel beschreiben wir die Herstellungsschritte Schritt für Schritt. USBasp-Programmierer für AVR-Mikrocontroller. In separaten Artikeln beschreiben wir die Installation von Treibern für die Betriebssysteme Windows XP und Windows 7 (x64/x86). Am Ende des Beitrags gibt es einen Link mit der notwendigen Dokumentation, um einen USBasp-Programmierer mit eigenen Händen zu erstellen.

Der USBasp-Programmierer ist aufgrund seiner einfachen Herstellung und der Verwendung kostengünstiger und weit verbreiteter Elemente bei Funkamateuren sehr beliebt geworden. Seine Betriebsparameter stehen professionellen und teuren AVR-Mikrocontroller-Programmierern in nichts nach.

Hauptmerkmale des USBasp-Programmierers

  • Funktioniert mit mehreren Betriebssystemen – Linux, Mac OS X und Windows – einschließlich Windows 8!
  • Benötigt keine externe Stromversorgung.
  • Kann mit Geschwindigkeiten von bis zu 5 kB/s programmiert werden
  • Es besteht die Möglichkeit (Schalter 2), die Programmiergeschwindigkeit zu reduzieren – für Prozessoren mit Quarz kleiner 1,5 MHz
  • Stellt eine Programmierspannung (Schalter 1) von 5 Volt bereit
  • Zeigt den Betrieb des Programmiergeräts mithilfe einer LED an

Bevor Sie mit der Arbeit beginnen, lohnt es sich, sich mit der Reihenfolge aller durchgeführten Aktionen vertraut zu machen, nämlich:

  1. Auswahl eines Leiterplattendesigns/-musters
  2. Übertragung des Leiterplattendesigns auf Folien-Glasfaserlaminat
  3. Ätzen einer Leiterplatte in einer Eisenchloridlösung
  4. Bohrlöcher
  5. Einbau von Elementen (Löten)
  6. Programmierung des Atmaga8-Programmierers
  7. Anschließen des Programmiergeräts an einen Computer
  8. Treiber installieren – Windows XP, Windows 7
  9. Auswahl eines Programms, das USBasp unterstützt

Es gibt viele Versionen des USBasp-Programmierers, aber alle basieren auf der Hauptschaltung, die von Thomas Fischl verfasst wurde. Die Firmware des Programmier-Mikrocontrollers ist ebenfalls seine Urheberschaft.

Ursprüngliche Programmierschaltung:

In diesem Fall wurde das ursprüngliche Schema als Grundlage gewählt. Da die Verwendung von Jumpern in der ursprünglichen Schaltung nicht ganz praktisch ist, hat man sich für den Einsatz von DIP-Schaltern entschieden. Auch einige Widerstandswerte wurden geändert.
Darüber hinaus sind in der ursprünglichen Schaltung die TxD- und RxD-Leitungen zum ISP-Anschluss geführt, obwohl dies nicht notwendig ist (genauer gesagt, sie werden in der Praxis nicht verwendet).

Nachfolgend finden Sie ein Diagramm mit den vorgenommenen Änderungen:

Aufbau eines USBasp-Programmierers

Es gibt viele Versionen der Platine für diesen Programmierer, einige finden Sie auf der offiziellen USBasp-Website. Ich habe jedoch anhand des obigen Diagramms mein eigenes erstellt.

Durch die Verwendung von DIP-Schaltern wurde das Platinendesign leider etwas komplexer, was dazu führte, dass 2 kurze Jumper verwendet wurden, um sicherzustellen, dass die Platine weiterhin einseitig ist.

Unten ist das Ergebnis der Platine:

Wie in der Abbildung zu sehen ist, hat der Programmierer keine SMD-Elemente verwendet. Der leere Raum auf der Platine wird mit einem Erdungsfeld „gefüllt“, hauptsächlich um das Ätzen einer großen Menge Kupfer zu vermeiden und auch um den Einfluss von Störungen auf den Programmierer zu reduzieren.

Liste der im USBasp-Programmierer verwendeten Elemente:

  • R1: 10k
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2k2
  • C1, C2: 22p
  • C3: 10μ
  • C4: 100n
  • LED1: Rote LED 20mA
  • LED2: Grüne LED bei 20 mA
  • D2, D3: 3,6 V Zenerdioden
  • X1: USB-Stecker Typ B
  • SV1: IDC-10-Buchse
  • Q1: Quarz 12 MHz, HC49-S-Gehäuse
  • SW1: DIP-Schalter mit drei Positionen
  • IC1: Atmega8 ( HINWEIS: Der Atmega8 - PU-Mikrocontroller sollte aufgrund seiner maximalen Taktgeschwindigkeitsbegrenzung von 8 MHz nicht verwendet werden!)

Die Übertragung des Leiterplattendesigns des USBasp-Programmierers auf Glasfaser erfolgte mit der LUT()-Methode. Wir werden nicht beschreiben, wie das geht, da es viele dieser Informationen im Internet gibt.

Sagen wir kurz, dass zunächst eine Zeichnung im Maßstab 1:1 auf Hochglanzpapier gedruckt, dann auf die gereinigte und entfettete Kupferseite des Glasfaserlaminats aufgetragen und mit Papierklebeband fixiert wird. Anschließend wird die Papierseite mit einem 3-Punkt-Bügeleisen vorsichtig geglättet. Anschließend wird das Ganze in Wasser eingeweicht und sorgfältig vom Papier befreit.

Der nächste Schritt besteht darin, die Platine in einer Eisenchloridlösung zu ätzen. Während des Ätzens ist es wünschenswert, die Temperatur der Lösung auf mindestens 40 °C zu halten. Tauchen Sie daher das Gefäß mit der Lösung in heißes Wasser:


Nachdem der Ätzvorgang abgeschlossen ist, müssen Sie den Toner mit Aceton entfernen.

Jetzt müssen nur noch die Löcher gebohrt werden. Nach Abschluss des Platinenherstellungsprozesses können Sie mit dem Löten der USBasp-Programmierelemente beginnen, beginnend mit den Jumpern.

Eine druckfertige Leiterplattenzeichnung (im PDF-Format) finden Sie am Ende des Artikels. Mehrere Optionen finden Sie auch auf der offiziellen Website des Projekts.

Erster Start des USBasp-Programmierers

Nachdem nun alle Teile verlötet sind, müssen Sie nur noch den Atmegę8-Mikrocontroller des Programmierers selbst „flashen“. Hierfür benötigen Sie einen separaten Programmierer, das kann zum Beispiel STK 200 (LPT-Port), STK500 usw. sein. Der LPT-Programmer wird über den IDC-10-Anschluss an USBasp angeschlossen.

Bitte beachten Sie, dass die Verteilung der Pins im Anschluss des Original-Programmierers (USBasp) auf der rechten Seite ist, während sie in der in diesem Artikel beschriebenen Version auf der linken Seite liegt:

Die in der Abbildung rechts dargestellte Verteilung entspricht derjenigen, die Atmel in seinen ursprünglichen Programmierern verwendet hat. Diese Verteilung verringert das Risiko von Störungen während der Programmierung bei langen Leitungen vom Programmiergerät zur Steuerung, da jede Signalleitung mit Ausnahme von MOSI mit Masse abgeschirmt ist.

Aktivieren Sie während der Programmierung den SELF-Modus, indem Sie den DIP-Schalter Nr. 3 auf die Position ON stellen. Dadurch wird es möglich, Atmega8 zu programmieren. Nach Abschluss der Programmierung muss die Position des Schalters (3) auf OFF gestellt werden.

Die neueste Firmware-Version kann von der offiziellen Website heruntergeladen werden. Wir empfehlen die Version für Atmega8, die sich im Archiv befindet: usbasp.2011-05-28.tar.gz.

Bitte beachten Sie, dass Sie vor der Programmierung des Atmega8 die Sicherungen mit den folgenden Werten einstellen müssen:

  • # für Atmega8: HFUSE=0xC9 LFUSE=0xEF
  • # für Atmega48: HFUSE=0xDD LFUSE=0xFF

Wenn die Programmierung erfolgreich war, schließen Sie das Programmiergerät an den USB-Anschluss des Computers an. Die rote LED sollte aufleuchten und der Computer sollte benachrichtigen, dass neue Geräte erkannt wurden.

Installieren der USBasp-Programmiertreiber

Die Methode zur Installation von Programmiertreibern wird in separaten Artikeln beschrieben, auch die Treiber selbst sind dort verfügbar. Nachfolgend finden Sie direkte Links zu diesen Artikeln:

  • Treiber für den USBasp-Programmierer unter Windows XP installieren
  • Treiber für USBasp-Programmierer Windows 7 x64/x86 installieren

Programme zum Betrieb des USBasp-Programmierers

Das beliebteste Programm, das den USBasp-Programmierer unterstützt, ist das Konsolenprogramm AVRdude. Es gibt auch viele abgeleitete Programme, deren Verwendung wesentlich komfortabler ist. Sie werden im Artikel Vergleich von Programmen zur Unterstützung des USBasp-Programmierers vorgestellt.

Dieser Programmierer erfordert keine Erstprogrammierung – Sie ätzen die Leiterplatte, löten sie und verwenden sie. Der Autor dieses Geräts ist am Ende des Artikels aufgeführt, aber hier werde ich einen kurzen Auszug aus dem Handbuch geben, um klarer zu machen, wovon wir sprechen: Der richtige USB-Programmierer ist tatsächlich eine universelle Sache. Sie können es an jeden modernen Computer anschließen und den gewünschten Mikrocontroller problemlos und mit relativ hoher Geschwindigkeit mit einer beliebigen Menge an FLASH-Speicher aktualisieren. Aber das Schlüsselwort hier ist „richtig“, was ganz normal funktioniert, ohne sofort nach dem Einbau und Zusammenbau der Teile zu stimmen und mit einem Tamburin darüber zu tanzen. Was beim Wechsel von einem PC auf einen anderen oder beim Wechsel des Betriebssystems keine Probleme bereitet. Der richtige ist einer, für den es Treiber für jede moderne, weit verbreitete Version des Betriebssystems gibt, und diese Treiber sind nicht fehlerhaft. Ein Dutzend weiterer Richtigkeitskriterien wird jeder für sich persönlich festlegen, die oben genannten sind jedoch die wichtigsten, ohne die ein normales Arbeiten mit dem Mikrocontroller grundsätzlich nicht möglich sein wird.

Heutzutage ist das Internet voller verschiedener Schemata. Herkömmlicherweise können sie in zwei große Gruppen eingeteilt werden.

Erste Gruppe umfasst Programmierer, die auf der Basis von Mikrocontrollern (insbesondere AVR) aufgebaut sind. Ich habe mehrere Programmierer von Prottoss (AVR910) für mich und meine Freunde sowie mehrere USBasp-Teile gesammelt. Zwei meiner Freunde, denen diese Geräte geschenkt wurden, sind begeistert. Sie nähen bereits seit mehreren Jahren erfolgreich Steine. Für andere (insbesondere für mich persönlich) bereiteten die versammelten Programmierer keine große Freude. Ich sage nicht, dass sie schlecht sind, sondern nur, dass die Umstände so waren: Auf dem einen Computer funktioniert es, auf dem anderen jedoch nicht. Oder es stellte sich heraus, dass sie nach ein paar Stunden Arbeit für die Software, mit der der Stein genäht wurde, unsichtbar waren. Und vieles mehr. Lassen Sie mich gleich sagen, dass ich die Firmware der Controller, auf denen diese Programmierer montiert sind, nicht verstanden habe. Ich habe zwar eine Reihe von Flash-Programmen ausprobiert, mit denen diese Programmierer scheinbar problemlos Steine ​​nähen können. Das Ergebnis in Form häufiger Störungen hat mich jedoch nicht sonderlich zufrieden gestellt. Die einzige Ausnahme war das AVRDUDE-Programm in Kombination mit der grafischen Shell SinaProg, aber ich habe zu spät davon erfahren. Mir ist übrigens dieser Trend aufgefallen: Je älter die PC-Hardware, desto besser arbeiten diese Programmierer. Nun, der unangenehmste Moment für diejenigen, die sich für die zweite Möglichkeit entschieden haben, sich mit AVR-Mikrocontrollern vertraut zu machen, ist, dass Sie, damit der Programmierer funktioniert, den darin enthaltenen Stein mit etwas flashen müssen. Das heißt, es sieht so aus: Um den Programmierer verwenden zu können, müssen Sie einen Programmierer erstellen/finden, um das Gehirn dieses Programmierers zu flashen. Das ist so ein Teufelskreis.

Und die zweite Gruppe USB-Programmierer verfügen über eine Lösung, die auf einem speziellen FT232Rx-Chip basiert. Diese Mikroschaltung wurde einst zu einer Art Revolution. Es konvertiert USB nicht nur problemlos in UART für den Entwickler (und wahrscheinlich verwenden es 95 % der Entwickler genau für diesen Zweck). Es kann auch einen vollwertigen COM-Port emulieren, und der Status „untergeordneter“ Leitungen (wie RTS, CTS, DTR usw.) kann nicht über einen virtuellen COM-Port, sondern direkt über den FTDI-Treiber eingestellt/gelesen werden ( entwickelt von FT232Rx). Damit ist eine neue Lösung zum Flashen von Mikrocontrollern entstanden, die keine anfängliche Firmware im Gehirn des Programmierers erfordert und recht schnell ist.

Schematische Darstellung eines USB-Programmierers

Diese Schaltung leitet einfach die MOSI-, MISO-, SCK- und RESET-Signale, die an den DCD-, DTR-, RTS- und DSR-Pins des DD1-Chips (FT232RL) erzeugt werden, an die gewünschten Pins des zu flashenden Mikrocontrollers (d. h ist eigentlich ein Analogon zu den „alten“ Programmierern). Darüber hinaus geschieht dies nur zum Zeitpunkt der Programmierung des Steins; zu anderen Zeiten ist der Programmierer aufgrund der 4 Pufferelemente des DD2-Chips (74HC125D) von der Platine getrennt, die geflasht wird. Der Zustand der MOSI-, MISO-, SCK- und RESET-Leitungen wird von der Firmware-Software auf dem Computer gesetzt/gelesen. Die Datenübertragung zwischen PC und FT232RL-Chip erfolgt über den USB-Bus (von dem auch der Programmierer mit Strom versorgt wird).

Die HL2-LED („PWR“) signalisiert, dass das Programmiergerät über den USB-Bus mit Strom versorgt wird. LED HL1 („PROG“) zeigt den Flashvorgang des Mikrocontrollers an (leuchtet nur während des Flashens). Das ist im Prinzip die gesamte Beschreibung des elektrischen Schaltplans selbst. Das Einzige, was ich anmerken möchte, ist: Erstens wird zum Anschließen des Programmiergeräts an die zu flashende Platine ein IDC-10MR-Anschluss (XP2 „ISP“) verwendet, dessen Pinbelegung mit der weit verbreiteten Pinbelegung des Programmiergerätanschlusses übereinstimmt
STK200/STK300:

XP2 „ISP“-Anschluss zum Anschluss des Geräts an einen programmierbaren Mikrocontroller

XP3 „MISC“-Anschluss zur Nutzung zusätzlicher Programmierfunktionen

Im Allgemeinen hat der FT232RL-Chip für einen Entwickler ein ziemlich großes Potenzial (z. B. können die CBUS-Busleitungen als normale I/O-Leitungen des Mikrocontrollers verwendet werden), daher wäre es schön, Zugriff auf alle seine Pins zu haben. Nun, der Zugriff auf die Spannungen +5,0 V und +3,3 V wird auch nie überflüssig sein. Im Anhang finden Sie eine Leiterplatte und eine ausführliche Beschreibung. Entwicklung und Handbuch - [email protected] , Versuch - SssaHeKkk.

Besprechen Sie den Artikel USB-PROGRAMMIERER

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

Und wenn es beim ersten Punkt keine Probleme gibt – die fertige „Firmware“ wird in der Regel von den Autoren der Schaltungen hochgeladen, dann ist es beim Programmierer komplizierter.

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

Hauptteil.

MK-Installationspanel.

Das Originaldiagramm wurde mit Genehmigung des Autors von der Website LabKit.ru übernommen, wofür ihm vielen Dank gilt. Hierbei handelt es sich um einen sogenannten Klon des proprietären PICkit2-Programmierers. Da es sich bei der Geräteversion um eine „leichtgewichtige“ 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 dem Programmierer können Sie die meisten verfügbaren und beliebtesten MCUs der PIC-Serie (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A usw.) sowie EEPROM-Speicherchips der 24LC-Serie flashen. Darüber hinaus kann der Programmierer im USB-UART-Konvertermodus betrieben werden 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 MCUs (z. B. PIC12F629 und PIC12F675).

Notwendige Änderungen.

Es sind einige Änderungen in der Schaltung notwendig, damit mit dem PICkit-2 Lite Programmierer das Schreiben/Löschen/Lesen von Daten aus EEPROM-Speicherchips der 24Cxx-Serie möglich ist.

Aus 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. Es überträgt Daten, weshalb es im Diagramm des Programmierpanels mit dem Wort „Data“ gekennzeichnet ist. Bei der Programmierung von Mikrocontrollern wird der AUX-Pin normalerweise nicht verwendet, obwohl er bei der Programmierung von MKs im LVP-Modus benötigt wird.

Außerdem wurde ein 2-kOhm-Pull-up-Widerstand hinzugefügt, der zwischen den SDA- und Vcc-Pins der Speicherchips angeschlossen ist.

Ich habe alle diese Änderungen bereits an der Leiterplatte vorgenommen, nachdem ich das PICkit-2 Lite gemäß dem Originaldiagramm 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. Wenn jemand Interesse hat, schaut mal vorbei.

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

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

Dies ist der einzige Chip im Gerät. Der PIC18F2550 MK muss „geflasht“ werden. Dieser einfache Vorgang sorgt bei vielen für Verwirrung, da das sogenannte „Henne-Ei“-Problem entsteht. Wie ich es gelöst habe, erzähle ich euch 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 Bewertung/Parameter Marke oder Artikeltyp
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 beliebige 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 μ K10-17 (Keramik), importierte Analoga
C3 0,47 Mikrometer
Elektrolytkondensator C1 100uF * 6,3V K50-6, importierte Analoga
C4 47 uF * 16 V
Induktor (Drossel) L1 680 µH einheitlicher Typ EC24, CECL oder hausgemacht
Quarzresonator ZQ1 20 MHz
USB-Buchse XS1 USB-BF-Typ
Jumper XT1 jede Art von „Jumper“
Für Mikrocontroller-Einbauplatte (MK)
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 HL2-LED leuchtet, wenn Daten zwischen dem Computer und dem Programmiergerät übertragen werden.

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

Als 680 µH-Induktor L1 ist es besser, einen fertigen Induktor zu verwenden (z. B. Typen EC24 oder CECL). Wenn Sie jedoch kein fertiges Produkt finden, können Sie den Gashebel auch selbst herstellen. Dazu müssen Sie 250 - 300 Windungen PEL-0,1-Draht von einem Induktor vom Typ CW68 auf einen Ferritkern wickeln. Es ist zu bedenken, dass aufgrund des Vorhandenseins von PWM mit Rückkopplung kein Grund zur Sorge um die Genauigkeit der Induktivitätsbewertung besteht.

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

Um Schaltungselemente vor Rückspannung von den Programmierleitungen zu schützen, wenn ein USB-Programmierer im ICSP-Modus (In-Circuit Serial Programming) verwendet wird, wird 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 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 vollständig entfernen (das habe ich getan) und stattdessen einen Jumper installieren.

Die Kompaktheit des Gerätes wird durch das universelle ZIF-Panel (Zero Insertion Force – ohne Installationsaufwand) erreicht.

Dank dessen können Sie einen Mikrocontroller in fast jedes DIP-Paket „fest verdrahten“.

Die Abbildung „Mikrocontroller (MK) Einbaupanel“ zeigt, wie Mikrocontroller mit unterschiedlichen Gehäusen in das Panel eingebaut werden müssen. Beim Einbau des MK sollte darauf geachtet werden, dass der Mikrocontroller im Panel so positioniert ist, dass sich der Schlüssel am Chip auf der Seite des ZIF-Panel-Verriegelungshebels befindet.

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

Und hier sind 8-Pin-Mikrocontroller (PIC12F675, PIC12F629 usw.).

Wenn Sie einen Mikrocontroller in einem oberflächenmontierten Gehäuse (SOIC) flashen müssen, 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 Zeichnung der Leiterplatte 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 der Leiterplatte anzeigen. Achten Sie auf den isolierten Jumper, der Pin 6 von DD1 und Pin 21 des ZIF-Panels verbindet. Sie müssen die Platinenzeichnung ausdrucken im Spiegelbild.

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

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

Bei der Installation besteht der erste Schritt darin, Brücken aus verzinntem Kupferdraht zu löten, dann Low-Profile-Elemente (Widerstände, Kondensatoren, Quarz, ISCP-Pin-Anschluss), dann Transistoren und einen programmierten MK zu installieren. Der letzte Schritt besteht darin, das ZIF-Panel und die USB-Buchse zu installieren und die Drähte mit Isolierung (Jumper) zu versiegeln.

„Firmware“ des Mikrocontrollers PIC18F2550.

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

Sie können die Firmware mit demselben proprietären Programmiergerät PICkit2 oder seiner neuen Version PICkit3 auf die PIC18F2550-MCU 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 bei der Installation des PICkit 2 Programmer-Programms zusammen mit den Dateien des Programms selbst in einen Ordner geschrieben. Ungefährer Speicherort der Datei PK2V023200.hex - „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 Sie das „Henne-Ei“-Problem mit den vorgeschlagenen Methoden nicht lösen konnten, können Sie auf der AliExpress-Website einen fertigen PICkit3-Programmierer kaufen. Dort kostet es deutlich günstiger. Ich habe darüber geschrieben, wie man Teile und Elektronikbausätze auf AliExpress kauft.

Aktualisieren der Programmiergerät-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 es ist und wie man es verwendet – etwas später. In der Zwischenzeit ein paar Worte dazu, was zum Aktualisieren der Firmware getan werden muss.

Um die Software des Programmiergeräts zu aktualisieren, müssen Sie den Jumper XT1 am Programmiergerät schließen, wenn es vom Computer getrennt ist. Schließen Sie dann den Programmierer an den PC an und starten Sie den PICkit2 Programmer. Wenn XT1 geschlossen ist, ist der Modus aktiviert Bootloader um die neue Firmware-Version herunterzuladen. Öffnen Sie dann im PICkit2 Programmer über das Menü „Extras“ – „Download PICkit 2 Operation System“ die zuvor vorbereitete Hex-Datei der aktualisierten Firmware. Als nächstes wird der Aktualisierungsprozess der Programmierersoftware durchgeführt.

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

Hier geht es um technische Fragen. Und nun zur Software.

Zusammenarbeit mit dem 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 ü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 installieren Sie die Treiber.

Starten Sie das PICkit2 Programmer-Programm. Im Programmfenster sollte eine Beschriftung erscheinen.

Wenn das Programmiergerät nicht angeschlossen ist, werden im Programmfenster eine gruselige Meldung und kurze Anweisungen „Was ist zu tun?“ angezeigt. auf Englisch.

Wenn der Programmierer an einen Computer angeschlossen ist, auf dem ein MK installiert ist, erkennt das Programm ihn beim Start und benachrichtigt uns darüber im Fenster des PICkit2-Programmierers.

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

Erforderliche Dateien:

    PICkit2 Benutzerhandbuch (Russisch) nehmen oder.



Verwandte Veröffentlichungen