heim - Windows
USB-ISP-Programmierer für AVR: Ein weiterer Schritt weg von der Arduinoisierung. Miniatur-USB-Programmierer für AVR-Mikrocontroller. Software und Hinweise

So wie ein Theater mit einem Kleiderbügel beginnt, so beginnt die Programmierung von Mikrocontrollern mit der Auswahl eines guten Programmierers. Da ich anfange, Mikrocontroller von ATMEL zu beherrschen, musste ich mich gründlich mit dem Angebot der Hersteller vertraut machen. Sie bieten viel Interessantes und Leckeres, allerdings zu überhöhten Preisen. Beispielsweise kostet ein Schal mit einem zwanzigbeinigen Mikrocontroller mit einem Paar Widerständen und Dioden als Kabelbaum wie ein „Flugzeug“. Daher wurde die Frage der Selbstorganisation des Programmierers akut. Nach einer langen Untersuchung 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 Verkabelung des Mikrocontrollers können Sie einen relativ kleinen Programmierer zusammenstellen, den Sie wie ein Flash-Laufwerk immer dabei haben können.

Der Autor dieses Programmierers ist der Deutsche Thomas Fichl, seine Entwicklungsseite mit Diagrammen, Leiterplattendateien 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 Mikrocontroller mit einer Taktfrequenz unter 1,5 MHz geflasht werden muss. 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. Persönlich ist mir aufgefallen, dass das Programmieren mit reduzierter Geschwindigkeit einen Bruchteil einer Sekunde länger dauert, und deshalb ziehe ich jetzt nicht den Pullover, sondern nähe ständig damit.
Die Zenerdioden D1 und D2 werden verwendet, um die Pegel zwischen dem Programmiergerät und dem USB-Bus anzupassen; es funktioniert auch ohne sie, jedoch nicht auf allen Computern.
Die blaue LED zeigt an, dass die Schaltung zum Programmieren bereit ist; die rote LED leuchtet während der Programmierung. Die Programmierkontakte befinden sich am IDC-06-Stecker, die Pinbelegung entspricht dem ATMEL-Standard für einen 6-poligen ISP-Stecker:

Dieser Anschluss enthält Kontakte zur Stromversorgung programmierbarer Geräte; hier wird er direkt vom USB-Anschluss des Computers entnommen, daher müssen Sie vorsichtig sein und Kurzschlüsse vermeiden. Derselbe Anschluss wird auch für die Programmierung des Steuermikrocontrollers verwendet. Dazu müssen lediglich die Reset-Pins am Anschluss und am Mikrocontroller verbunden werden (siehe die rote gepunktete Linie im Diagramm). In der Schaltung des Autors geschieht dies mit einem Jumper, aber ich habe die Platine nicht überladen und entfernt. Für eine einzelne Firmware reicht eine einfache Drahtbrücke aus. Es stellte sich heraus, dass die Platte doppelseitig war und die Maße 45 x 18 mm hatte.

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

Firmware des Steuermikrocontrollers
Nach dem Zusammenbau des Geräts bleibt also nur noch das Flashen des Steuermikrocontrollers. Freunde, die noch Computer mit LPT-Anschluss haben, sind für diese Zwecke 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 beziehen wir von der deutschen Seite. Um das Steuerprogramm auf den Mikrocontroller hochzuladen, habe ich das Programm PonyProg verwendet. Beim Programmieren ist es notwendig, den Quarz so einzustellen, dass er von einer externen Taktquelle mit 12 MHz arbeitet. Screenshot des Programms mit Sicherungs-Jumper-Einstellungen in PonyProg:

Nach dem Flashen der Firmware sollte die an Bein 23 des Mikrocontrollers angeschlossene LED aufleuchten. Dies ist ein sicheres Zeichen dafür, dass das Programmiergerät erfolgreich programmiert wurde und einsatzbereit ist.

Treiberinstallation
Die Installation wurde auf einer Maschine mit Windows 7 durchgeführt und es traten keine Probleme auf. Wenn Sie zum ersten Mal eine Verbindung zu Ihrem Computer herstellen, erscheint eine Meldung, dass ein neues Gerät erkannt wurde, und fordert Sie auf, einen Treiber zu installieren. Wählen Sie die Installation am angegebenen Speicherort aus:

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

Wir ignorieren die Warnung und setzen die Installation fort. Nach einer kurzen Pause erscheint ein Fenster, das uns darüber informiert, dass die Treiberinstallation erfolgreich abgeschlossen wurde

Das war's, der Programmierer ist jetzt einsatzbereit.

Khazama AVR-Programmierer
Um mit dem Programmierer zu arbeiten, habe ich mich für den Khazama AVR Programmer Flasher 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 völlig Standard-Set. Die Sicherungseinstellung erfolgt durch Auswahl der Taktquelle aus der Dropdown-Liste, 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. Sie können jedoch keine Kontrollkästchen auf eine nicht vorhandene Konfiguration setzen, was auch in Bezug auf die Sicherheit ein großes Plus darstellt.

Sicherungen werden, wie Sie sich vielleicht vorstellen können, durch Drücken der Schaltfläche „Alle schreiben“ in den MK-Speicher geschrieben. Die Schaltfläche „Speichern“ speichert die aktuelle Konfiguration und die Schaltfläche „Laden“ gibt die gespeicherte zurück. Allerdings konnte ich mir keinen praktischen Nutzen für diese Tasten vorstellen. Die Schaltfläche „Standard“ dient zum Aufzeichnen der Standard-Sicherungskonfiguration, mit der Mikrocontroller ab Werk geliefert werden (normalerweise 1 MHz vom internen RC).
Im Allgemeinen erwies sich dieser Programmierer während der gesamten Nutzungsdauer als der Beste in Bezug auf Stabilität und Arbeitsgeschwindigkeit. Es funktionierte sowohl auf einem alten Desktop-PC als auch auf einem neuen Laptop problemlos.

Sie können die PCB-Datei in SprintLayout herunterladen mit

Zuvor habe ich zum Flashen von AVR-Mikrocontrollern AvrUsb500 von Petka (STK500) und AVR Studio 4 verwendet. Alles war in Ordnung, bis der FTDI FT232RL-Chip ausfiel und nicht funktionieren wollte. Danach habe ich mich auf die Suche nach Alternativen gemacht und bin fündig geworden Khazama AVR-Programmierer Und . Das Programm gefiel mir sofort aufgrund seines Minimalismus und seiner einfachen und intuitiven Benutzeroberfläche. Klein und abgelegen. Seitdem verwende ich diesen wunderbaren AVR-Programmierer.

Khazama AVR Programmierer – Funktionen

Khazama Funktioniert mit allen gängigen AVR-Mikrocontrollern, ermöglicht die Programmierung von Flash und Eeprom, das Lesen des Inhalts von Flash- und Eeprom-Speicher, das Löschen des Chips und das Ändern der Konfiguration von Sicherungsbits (Sicherungen und Sperrbits). Alles, was Sie zum Flashen von AVR-Mikrocontrollern benötigen. Sicherungen werden durch Auswahl einer Taktquelle aus der Dropdown-Liste konfiguriert, wodurch die Wahrscheinlichkeit, dass der Controller versehentlich „abgeschaltet“ wird, stark reduziert wird. Sicherungen können auch durch das Platzieren von Kontrollkästchen im unteren Feld geändert werden. Sie können jedoch keine Kontrollkästchen auf eine nicht vorhandene Konfiguration setzen, was die Sicherungskonfiguration sicherer macht. Und das ist auch ein großes Plus.

Aufnahmesicherungen

Sicherungen werden durch Drücken der Schaltfläche „Alle schreiben“ in den Speicher des Mikrocontrollers geschrieben. Es gibt eine Schaltfläche „Speichern“, um die aktuelle Konfiguration zu speichern, und „Laden“ gibt die gespeicherte zurück. Die Schaltfläche „Standard“ dient zum Aufzeichnen der Standard-Sicherungskonfiguration, mit der Mikrocontroller ab Werk geliefert werden, normalerweise 1 MHz vom internen RC.
Im Allgemeinen hat sich dieser Programmierer während der gesamten Zeit, in der ich ihn verwende, als der Beste in Bezug auf Stabilität, Sicherheit und Betriebsgeschwindigkeit erwiesen. Ich empfehle es jedem, der AVR-Mikrocontroller programmieren möchte.

Um AVR-Mikrocontroller zu programmieren, ist ein Programmierer erforderlich. Der einfachste Weg besteht darin, einen Programmierer für COM oder LPT zu erstellen. Aber ich arbeite an einem Laptop und jetzt sind darin nur noch USB-Anschlüsse verbaut. Es ist also an der Zeit, einen Programmierer für AVR über USB zu erwerben. Nun, ich würde höchstwahrscheinlich diesen Programmierer kaufen. Bei eBay sind sie günstig, wahrscheinlich sogar günstiger als Teile zu kaufen, eine Platine zu basteln und alles zusammenzulöten. Von der anderen Seite betrachtet dauert es jedoch mindestens einen Monat, bis eine Bestellung bei eBay per Post eintrifft, und Sie können einen AVR-USB-Programmierer aufgrund seiner Einfachheit an einem Abend mit Ihren eigenen Händen zusammenbauen. Wenn ein unerfahrener Funkamateur außerdem selbst einen Programmierer zusammenstellt, sammelt er zusätzlich zum Programmierer Erfahrung, unschätzbare Erfahrung, und das ist viel wert.
Dies ist mein zweiter USB-Programmierer für AVR. Der erste, den ich gemacht habe, war ein USB-ASP-Programmierer, aber er gefiel mir nicht wirklich, da er manchmal von meinem Computer herunterfiel, obwohl auf einem anderen Computer nichts dergleichen beobachtet wurde. Ich beschloss, einen weiteren Programmierer zu bauen, und meine Wahl fiel auf den AVR910-Programmierer. Dieser Programmierer hat ein etwas anderes USB-Verbindungsschema und wie sich später herausstellte, funktioniert auf meinem Computer alles sehr gut. Ich habe die Probleme vergessen, die ich mit meinem vorherigen Programmierer hatte. Der in diesem Artikel beschriebene AVR910-Programmierer ist derzeit mein Haupt-AVR-Programmierer.
Die Schaltung und Firmware wurden von der Projektwebsite (http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm) verwendet.


Der Programmierer wird über den USB-Anschluss mit Strom versorgt. Um keine Abstimmung mit den Pegeln der Datenleitungen des USB-Ports (3,6 V) zu erfordern, beträgt die Stromversorgung des Mikrocontrollers 3,6 V. Um aus 5 V in einem USB-Anschluss 3,6 V zu erhalten, wird eine Schaltung aus zwei direkt in Reihe geschalteten Siliziumdioden verwendet. Jede Diode fällt um 0,7 V ab und die Gesamtspannung beträgt 1,4 V. Die Dioden müssen aus Silizium bestehen; die Verwendung von Schottky-Dioden ist nicht zulässig, da der Spannungsabfall weniger als 0,7 V beträgt. Die Ausgänge des Programmiersteckers sind über 330-Ohm-Widerstände verbunden, um die Pegel anzupassen. Das Gerät arbeitet mit einem AtMega8-16-Mikrocontroller mit einer Taktfrequenz von 12 MHz. Das Diagramm zeigt die Pin-Nummern für den Mikrocontroller in einem DIP-Gehäuse, obwohl ich die Platine für ein SMD-Gehäuse namens TQFP verlegt habe. Der Programmierer verfügt über eine Anzeige der Schreib-, Lese- und Stromverfügbarkeit. Dieser Programmierer verfügt außerdem über einen Ausgang, der immer eine Rechteckwelle mit einer Frequenz von 1 MHz hat. Dies ist eine sehr coole und nützliche Sache für die Wiederherstellung von Mikrocontrollern, deren Taktung aufgrund fehlerhaft programmierter Sicherungsbits von einer externen Taktquelle konfiguriert wird. Ich habe auf diese Weise bereits mehrfach Mikrocontroller wiederhergestellt. Sie müssen lediglich im Datenblatt nach einem bestimmten AVR-Mikroprozessor suchen, an dessen Pin die externe Taktsignalquelle angeschlossen ist, und die Rechteckwellenquelle an diesen Pin anlöten. Schließen Sie das Programmiergerät an und programmieren Sie die Sicherung neu. Es ist ganz einfach, aber manchmal hilft es sehr!
Die verfügbaren Möglichkeiten zur Implementierung von Leiterplatten für den AVR910-Programmierer gefielen mir nicht ganz und ich habe meine Version nachverfolgt (Sie können die Projektdateien am Ende des Artikels herunterladen).


Das Schutzmuster wird mit einem Laserdrucker und einem Bügeleisen auf das Folien-Glasfaserlaminat aufgetragen.


Nach dem Ätzen war das Ergebnis diese Schönheit. Ich konnte mich nicht zurückhalten und kratzte den Toner auf den Spuren zwischen den Beinen der Mikroschaltung. Ich konnte es kaum erwarten zu sehen, ob sie funktionierten oder nicht.




Zur Vereinfachung der Verwendung habe ich den Zweck jedes Pins des AVR910-Programmierers markiert. Dazu habe ich ein kleines Schild gezeichnet, das ich auf glänzendes Fotopapier gedruckt und mit doppelseitigem Klebeband auf die Programmierplatine geklebt habe.

Ich habe im Archiv mit allen Dateien für diesen Beitrag einen Gruppenrohling für ein Schild zum Ausdrucken auf Fotopapier im Format 10x15 abgelegt. Sie können es am Ende dieses Artikels herunterladen.
Die Firmware für den Programmierer kann über den Link am Ende des Artikels heruntergeladen werden.
Sicherungsbits werden gemäß der folgenden Abbildung gesetzt:


Wie man den AtMega8-Mikrocontroller für den AVR910-Programmierer programmiert, sehen Sie in meinem Video:

Ich konnte kein Gehäuse für den AVR910-Programmierer finden; ich wollte, dass der Programmierer klein bleibt, und verwendete zunächst eine unbestückte Platine, die in keiner Weise isoliert war. Aber dann kaufte ich einen breiten transparenten Schrumpfschlauch und platzierte den Programmierer darin. Das Endergebnis seht ihr auf dem Foto. Ich finde es ziemlich interessant und sogar süß.




Beim Schrumpfen scheint alles einfach zu sein, aber es fiel mir schwer, die Löcher für die Stifte zu bohren. Wenn Sie die Löcher mit einer Ahle durchstechen, bricht beim Schrumpfen der Schrumpfschlauch ausgehend von diesen Löchern. Ich habe sogar mehrere Rohlinge ruiniert, aber am Ende der Experimente hat alles geklappt. Daher habe ich die Löcher nicht durchstochen, sondern mit einem heißen Lötkolben mit Nadelspitze geschmolzen. Entlang der Kanten der Platine habe ich die Enden des Schrumpfschlauchs angelötet. Sie werden sehr einfach gelötet: Beide Enden des Rohrs werden erhitzt und dann schnell, bevor sie Zeit zum Abkühlen haben, festgeklemmt und festgeklemmt, bis sie vollständig abgekühlt sind. Das Ergebnis ist eine ziemlich starke Verbindung. Ich habe es mit einer medizinischen Klemme festgeklemmt; der Schrumpfschlauch hat sogar Spuren von Kerben an den Backen hinterlassen.
Wenn Sie das AVR910-Programmiergerät zum ersten Mal an Ihren Computer anschließen, wird ein neues AVR910-Gerät im System angezeigt. Jetzt müssen Sie die Treiber installieren und können loslegen.
Ich habe mit diesem Programmierer auf 32-Bit-Windows XP- und Windows 7-Systemen gearbeitet. Alles funktioniert sehr gut und es treten keine Probleme auf. Als ich versuchte, Treiber für 64-Bit-Windows 7 zu installieren, traten Probleme auf. Tatsache ist, dass dieser Treiber keine digitale Signatur von Microsoft hat und 64-Bit-Windows 7, da es sicherer ist, alle Treiber ohne digitale Signatur blockiert. Diese Blockierung kann deaktiviert werden, aber das ist nicht ganz einfach. Denken Sie also daran.
Ich lade die Firmware mit dem AvrOsp2-Programm auf den Mikrocontroller hoch. Es ist sehr einfach, erfordert keine Installation, ist kostenlos, unterstützt den AVR910-Programmierer und eine große Anzahl von AVR-Mikrocontrollern, funktioniert gut und verfügt über ein sehr praktisches Menü für die Arbeit mit FUSE-Bits. Im Allgemeinen ein cooles Programm, es gefällt mir sehr gut, ich empfehle es! Im Video unten habe ich den Prozess der Treiberinstallation für den AVR910 gezeigt, wie man das AvrOsp2-Programm konfiguriert und verwendet.

In meiner Version des Programmiergeräts habe ich keinen 22-uF-Ausgangs-Elektrolytkondensator eingebaut, der auf der den Gleisen gegenüberliegenden Seite installiert und in die Löcher in der Nähe des USB-Anschlusses eingelötet wird. Eventuell muss parallel zum eingelöteten 0,1 µF Keramikkondensator, in der Nähe der grünen PWR-LED, ein zusätzlicher Elektrolytkondensator mit einer Kapazität von 10-50 µF installiert werden. Das Bild unten zeigt die Anschlussorte handschriftlich.

Für den Betrieb des Programmiergeräts benötigen Sie einen Mikrocontroller, der mit bis zu 16 MHz arbeiten kann. AVR AtMega8 gibt es in zwei Serien mit bis zu 8 MHz (L-Serie), sie sind für uns nicht geeignet, da das Projekt mit 12 MHz Quarz läuft. Es gibt auch eine reguläre Version, die bis zu einer Frequenz von 16 MHz funktioniert. Das ist es, was wir brauchen. Unten finden Sie einen Ausschnitt aus dem AVR AtMega8-Datenblatt, in dem die Versionen von Mikrocontrollern, die in diesem Programmiergerät nicht funktionieren, durchgestrichen sind und die Versionen von Mikrocontrollern, die in diesem Projekt funktionieren, mit einem grünen Rahmen hervorgehoben sind.

Khazama AVR Programmer ist eine grafische Shell für das Konsolenprogramm avrdude, das von einem arabischen Programmierer entwickelt wurde und von Windows XP/Vista/7-Systemen unterstützt wird. Das Programm ist für das Flashen von Atmel-Mikrocontrollern der AT90/ATtiny/ATmega/ATXmega-Familie konzipiert.

Khazama kann Programmcode lesen und schreiben, Speicher löschen und FUSE-Bits programmieren, außerdem verfügt es über eine automatische Programmierfunktion und passt die Programmiertaktfrequenz an. Das Programm unterstützt die Arbeit mit dem Programmierer.

Setup und Firmware

Starten Sie das Programm

Um das Programm zu konfigurieren, gehen Sie zu Befehl -> Programmoptionen

Hier finden Sie die Programmeinstellungen, bei denen es sich größtenteils um Einstellungen handelt Automatisches Programm(automatische Programmierung) in der Liste rot hervorgehoben. Mit der automatischen Programmierfunktion werden Vorgänge wie Lesen, Löschen, Schreiben und Überprüfen nacheinander automatisch ausgeführt, was sehr praktisch ist. Drücken Sie einfach eine Taste Automatisches Programm und alle in den Programmeinstellungen überprüften Punkte werden abgeschlossen.

1. Platzieren Sie das Programmfenster über anderen Fenstern
2. Laden Sie die zuletzt geschlossene Datei in den Programmpuffer
3. FLASH-Speicher des Mikrocontrollers in den Programmpuffer einlesen
4. EEPROM-Speicher des Mikrocontrollers in den Programmpuffer einlesen
5. Löschen Sie den Speicher des Mikrocontrollers
6. Schreiben Sie die Firmware in den FLASH-Speicher des Mikrocontrollers
7. Schreiben Sie die Firmware in den EEPROM-Speicher des Mikrocontrollers
8. Überprüfen Sie nach der Aufzeichnung die FLASH-Bytes des Mikrocontroller-Speichers
9. Überprüfen Sie nach der Aufzeichnung die EEPROM-Bytes des Mikrocontroller-Speichers
10. Schreiben Sie Sicherungsbits in den Mikrocontroller
11. Überprüfen Sie die richtige Auswahl des Mikrocontroller-Modells
12. Einstellen der Programmiertaktfrequenz

Wählen Sie den Mikrocontroller über die Dropdown-Liste aus

oder über das Menü Datei -> AVR -> ...


Laden der Firmware-Datei in das Programm Datei -> FLASH-Datei in den Puffer laden, geben Sie die Datei an und klicken Sie Offen

In meinem Fall ist das ein absoluter Rekordhalter für die Liefergeschwindigkeit – etwa 5 Monate unvorsichtiges Herumwandern. Trotz der enormen Zeitverzögerung habe ich das Paket trotzdem erhalten, worüber ich mich unglaublich freue, trotz der Mängel, über die ich Ihnen weiter unten berichten werde. Da ich ein sehr schlechtes Gedächtnis habe, war es nicht trivial, die nützlichen Informationen, die ich irgendwo gefunden hatte, in Form einer Erinnerung zusammenzufassen; Aufgabe, also werde ich alles in einem separaten Beitrag zusammenfassen.
USB ISP ist der günstigste AVR-Controller-Programmierer, der im Handel erhältlich ist. Er wurde entwickelt, um unseren Horizont zu erweitern und uns eingehender mit AVR zu befassen.
Die Rezension umfasst: eine Beschreibung des Programmierers, wie man ihn an den Chip anschließt, wie man seinen Betrieb in den Programmen AvrDude Prog, Khazama, Atmel Studio 7 einrichtet und nicht nur das.

Natürlich können Sie stattdessen ein Arduino UNO mit einer eingenähten ArduinoISP-Skizze verwenden, aber das Herumhantieren mit Drähten, insbesondere wenn nur ein UNO vorhanden ist, entmutigt die Begeisterung. Es wäre einfacher gewesen, einen solchen Programmierer separat zu haben, oder besser gesagt, zwei. Aus zwei Gründen:
1) Bereits vor dem Kauf war anhand der Bewertungen klar, dass die Lötqualität dieser Geräte leidet, einige erhielten sie auch mit kaputten Zenerdioden. Es wurde beschlossen, auf Nummer sicher zu gehen und zwei zu bestellen.
2) Ein Programmierer kann auch mit einem anderen verbunden werden, indem der Jumper am Slave-Gerät verschoben wird.

Technische Eigenschaften

Unterstütztes Betriebssystem: Windows, MacOS, Linux
CPU: Atmega8A
PC-Anschlussschnittstelle: USB
Programmierschnittstelle: ISP (in-Circuit)
Programmierspannung: 5V oder 3,3V (abhängig von der Position des Jumpers JP2)
Programmierhäufigkeit: 375 kHz (Standard) und 8 kHz (mit geschlossenem Jumper JP3)
Unterstützte Controller: alle AVRs mit SPI-Schnittstelle
Beschreibung:

Liste der unterstützten Mikrocontroller

ATmega-Serie

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Winzige Serie

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATtiny25
ATtiny45 Attiny85 ATtiny2313

Klassische Serie

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN-Serie

AT90CAN128

PWM-Serie

AT90PWM2 AT90PWM3

Aussehen

Das Lieferumfang ist minimal - Programmierer + Kabel ohne Gummiband. In meinem Fall die doppelte Menge.

Die Leistungskultur ist wirklich lahm; die schief verlöteten Kämme sind mir sofort ins Auge gefallen. Überall gibt es Spuren von Flussmittel, und bei Oxiden lagen die Programmierer offenbar schon lange im Lager herum und wurden mit der gewohnten Geschwindigkeit der Chinesen zusammengebaut.















Einige Löcher sind nicht vollständig mit Lot gefüllt



Auch SMD-Elemente werden schief verlötet



Etwas später richtete ich den Kamm gerade aus, es war schmerzhaft unangenehm, etwas so Schräges anzusehen, ich lötete die Elemente und wusch dann die Platine



Die Abmessungen der Platine sind etwas größer als beim USB-TTL-Konverter des CP2102



Die Länge der Schleppe beträgt ca. 30 cm, man geht davon aus, dass je kürzer die Schleppe, desto besser. Manche Leute kürzen es gezielt. Wenn Sie ein Original USBASP bestellen, ist das komplette Kabel bereits 50cm lang.



Bordkontrollen

Auf der Platine befinden sich drei Jumper, die verschiedene Betriebsarten des Programmiergeräts einstellen:
JP1- wird geschlossen, wenn die Firmware des Programmiergeräts selbst aktualisiert wird
JP2- Dreifach-Jumper, hier wählen Sie aus, welche Spannung an den Mikrocontroller geliefert wird, der geflasht wird, entweder 5 V (linke Position) und 3,3 V (rechte Position).
JP3- Wenn Sie es schließen, erfolgt die Programmierung des Controllers mit einer reduzierten Frequenz, aber die Chinesen haben hier keinen Kamm gelötet, weil Für diese Firmware ist es nicht erforderlich
Wie Sie sehen, basiert der Programmierer auf Atmega8-Basis mit 12-MHz-Quarz. Das ganz rechte obere Element mit der Bezeichnung F1 und der umgekehrten Zahl 4 ist eine selbstrückstellende Sicherung, die den USB-Anschluss eines PCs/Laptops schützt, wenn auf der zu flashenden Platine plötzlich ein Kurzschluss auftritt. Unter dem Sturz JP2 LDO-Stabilisator befindet 662K, wodurch die Spannung von 5 V auf 3,3 V gesenkt wird, wenn der Jumper auf die richtige Position gesetzt ist.

Treiber installieren

Um den Programmierer verwenden zu können, müssen Sie zunächst Treiber dafür installieren. Stecke ich einen beliebigen Programmierer in den USB-Port des PCs, ertönt ein Signal über neue Geräte, die LED am Gerät selbst leuchtet, aber es erfolgt keine automatische Suche nach Treibern.
Notiz. Bevor Sie den Treiber installieren, müssen Sie die Überprüfung der digitalen Signatur in Windows deaktivieren
1) Laden Sie es herunter und entpacken Sie es an einem geeigneten Ort.
2) Gehen Sie zum Beispiel zum „Geräte-Manager“, bewegen Sie den Cursor über die Hauptschaltfläche (Win10), klicken Sie mit der rechten Maustaste und wählen Sie „Geräte-Manager“.

3) Im Zweig „Andere Geräte“ sehen Sie ein nicht identifiziertes USBASP-Gerät mit einem orangefarbenen Dreieck -> bewegen Sie den Mauszeiger darüber, klicken Sie mit der rechten Maustaste -> „Treiber aktualisieren…“

4) Geben Sie den Pfad zum zuvor entpackten Ordner mit den Treibern an – „libusb_1.2.4.0“, klicken Sie auf „OK“

5) „Diesen Treiber trotzdem installieren“

6) Fertig, jetzt ist das orangefarbene Dreieck verschwunden, die Treiber sind installiert



Firmware des Bruders

Ich wusste schon vorher, dass die Chinesen diese Programmierer nicht mit der neuesten Firmware verkaufen. Ich habe beschlossen, zunächst die Firmware eines von ihnen zu aktualisieren und dann, nur zum Spaß, beide Programmierer im Betrieb zu vergleichen. Dazu verbinde ich beide Geräte mit einem Kabel, beim Master (den ich in den USB-Port stecke) werden keine Jumper berührt, und beim Slave-Programmierer (auf dem wir die Firmware aktualisieren) habe ich den Jumper entfernt JP2 An JP1:



Ich gehe in das Programm Khazama AVR Programmer, wähle ATmega8 aus der Dropdown-Liste aus und lese zunächst über den Menüpunkt „Befehl“ -> „FLASH in Puffer lesen“ den Flash-Speicher aus, um die chinesische Werksfirmware zu speichern. Nur für den Fall.

In diesem Fall tritt in regelmäßigen Abständen ein solcher Fehler auf. Wenn Sie das Fenster schließen, funktioniert das Programm weiter.

Der Lesevorgang läuft und endet mit einem Popup-Fenster, das den erfolgreichen Lesevorgang des FLASH-Speichers in den Puffer anzeigt

Jetzt müssen Sie den Inhalt des Puffers speichern: „Datei“ -> „FLASH-Puffer speichern unter ...“. Wählen Sie einen geeigneten Ort, an dem die alte Firmware gespeichert werden soll, geben Sie ihr einen Namen (ich habe sie zum Beispiel Firmware_1 genannt) und fügen Sie die Erweiterung *.hex hinzu – wenn Sie sie nicht schreiben, wird sie nur als Datei ohne gespeichert eine Erweiterung.


Ich lade die Firmware für den Programmierer von der Seite Archiv herunter usbasp.2011-05-28.tar.gz(Das gleiche Archiv enthält Treiber für Windows, ich entpacke den Inhalt an einem geeigneten Ort.
In der Zwischenzeit werde ich in Khazama die heruntergeladene Firmware in den Puffer laden. „Datei“ -> „FLASH-Datei in Puffer laden“. Ich wähle die Firmware, deren Name atmega8 enthält, da sich der zu flashende Programmierer auf diesem Chip befindet.

Wie Sie sehen, gibt es hier drei Firmwares – für Atmega8, 48 und 88. In unserem Fall Atmega 8 – das ist es, was ich wähle.

Ich nähe. „Befehl“ -> „FLASH-Datei in Puffer schreiben“. Der Fehler tritt erneut auf, aber dann wird der Prozess fortgesetzt und mit Erfolg abgeschlossen.



Da „Programmieren“ im üblichen Sinne bedeutet, es auf 1 zu setzen, ist bei der Arbeit mit Sicherungen alles genau umgekehrt, was zu Verwirrung führt und in diesem Fall kann es passieren, dass Sie den Controller versehentlich blockieren und ihn dann nicht mehr flashen können. Das Khazama AVR Programmer-Programm ist praktisch zum Anzeigen von Sicherungsbits – Sie können es dort deutlich sehen geplant, welche davon installiert sind und welche nicht.

Sie befinden sich im Pfad „Befehl“ -> „Sicherungen und Sperrbits...“, es öffnet sich ein Fenster:

Wenn Sie auf die Schaltfläche „Alles lesen“ klicken, werden Sicherungs- und Sperrbits gezählt und der berüchtigte Fehler tritt bis zu fünf Mal hintereinander auf. Es treten Fehler in der werkseitigen chinesischen Firmware auf. Wenn Sie jedoch einen neu geflashten Programmierer mit der über den obigen Link heruntergeladenen Firmware an den USB-Anschluss anschließen, werden diese Fehler nicht mehr angezeigt. Die Fehler treten jedoch an einer anderen Stelle auf, aber dazu später mehr.

Kommunikation mit Pro Mini-Board (Atmega 168, 3,3 V/8 MHz)

In diesem Fall werden die Programmierstifte mit den Stiften der Pro Mini-Platine verbunden, wie in der schematischen Abbildung unten dargestellt. Die Jumper können nicht umgesteckt werden, d.h. bleibt in Position 5V.
Obwohl das Pro Mini-Board mit 3,3 V gekennzeichnet ist, kann der 168. Atmega auch 5 V liefern. Der 3,3V-Stabilisator AMS1117 ist übrigens komplett von der Platine gelötet.



AVRDUDE PROG 3.3
Das Konsolenprogramm zum Flashen von Mikroschaltungen verfügt nicht über eine eigene grafische Oberfläche. Es funktioniert über die Befehlszeile, aber Enthusiasten haben viele Shells dafür geschrieben, um die Arbeit damit zu vereinfachen. Eine dieser Shells heißt AVRDUDE PROG und wurde von russischsprachigen Entwicklern erstellt. Diese Shell eignet sich meiner Meinung nach nur zum Flashen des MK. Nach dem Start wird der Controller ausgewählt, in diesem Fall Atmega168 und der Typ des Programmierers – USBasp. Danach können Sie mit dem Schreiben/Lesen des Speichers beginnen. Entweder auf der Werksfirmware oder auf der neuen – in beiden Fällen gab es keine Probleme bei der Kommunikation mit Atmega168. Nur zum Spaß habe ich die Arduino-Standard-Blinkskizze geflasht und in eine binäre HEX-Datei exportiert. Alles ist glatt.




Khazama AVR-Programmierer
Hier müssen Sie lediglich einen Mikrocontroller aus der Dropdown-Liste auswählen und schon können Sie mit Speicher/Bits arbeiten.
Wenn jedoch die werkseitige Firmware auf dem Programmiergerät selbst installiert ist, treten regelmäßig Fehler auf, wie bereits oben erwähnt, bei der neuen Firmware sind diese Fehler nicht mehr vorhanden.


Kommunikation mit ATtiny13A-Controller im SOIC8-Paket

Anschluss gemäß dem Diagramm unten. Aber hier wird es etwas interessanter.

Da sich der nackte Chip in einem SOIC8-SMD-Gehäuse befindet, habe ich ihn in diesem Fall in einen SOIC8-DIP8-Adapter gesteckt, um die Verbindung mit dem Programmierer in Zukunft zu erleichtern. Sie können einen Testbericht zu diesem Adapter lesen.

AVRDUDE PROG 3.3
Hier wählen Sie aus der Liste den gleichnamigen Controller, den USBasp-Programmierer, und wenn der Programmierer mit werkseitiger chinesischer Firmware geflasht ist, laufen alle Vorgänge reibungslos und reibungslos ab. Wenn Sie jedoch das Programmiergerät durch ein anderes mit aktualisierter Firmware ersetzen, tritt bei jedem Vorgang ein Fehler auf.

Dies liegt daran, dass weder das Programm noch der Programmierer automatisch in den für den ATtiny13 erforderlichen langsamen Programmiermodus wechseln können. Aber es gibt mindestens zwei Möglichkeiten:
1) Eisen: Schließen Sie den Jumper JP3

2) Programmatisch: Bearbeiten Sie die Datei „programm.ini“ im Ordner mit dem Programm AVRDUDE PROG 3.3


Geben Sie dort vier Codezeilen ein und speichern Sie. (genommen)
progisp=jtag2pdiportprog=COM1portenabled=1 progisp=Usbasp -B 3 portprog=usb portenabled=0

Notiz. Hier kommt der Schalter „-B“ zum Einsatz, der den Programmierer auf eine niedrigere Programmierfrequenz umschaltet. Wert „3“ – Zeit in Mikrosekunden

Führen Sie danach AVRDUDE PROG 3.3 erneut aus und wählen Sie UsbaspSpeed ​​​​in der Dropdown-Liste der Programmierer aus. Nun ist das Arbeiten mit ATtiny13 auf einem Programmiergerät mit neuer Firmware nicht mehr fehlerfrei und der Jumper JP3 muss in diesem Fall nicht mehr geschlossen werden.

Khazama AVR-Programmierer
Wird ein Controller aus der Liste ausgewählt, ist die Situation nahezu dieselbe.

Ein Programmierer mit Werksfirmware funktioniert normal mit ATtiny13, bis auf die ständig erscheinenden Fehlerfenster, über die ich bereits zuvor gesprochen habe.
Wenn der Programmierer jedoch die neue Firmware verwendet, tritt ein weiterer Fehler auf, da die Signatur (digitale Signatur) des Controllers nicht gelesen werden kann.

Aber es lohnt sich, den Jumper zu schließen JP3 und Sie können in Ruhe arbeiten


Oder stellen Sie einfach die Betriebsfrequenz aus der Dropdown-Liste über den Pfad „Befehl“ -> „Programmoptionen“ ein, ich stelle die Frequenz auf 187,5 kHz ein.

Notiz. Die Programmierfrequenz muss mindestens viermal niedriger sein als die Taktfrequenz des zu flashenden Chips. Schaut man sich aber die vom ATtiny13 abgelesenen Sicherungen an, dann steht in der letzten Zeile Int.Rc.Osc. Angegeben sind 9,6 MHz.
Ein Neuling wird zumindest eine Frage haben: Warum tritt der gleiche Fehler bei der 1,5-MHz-Einstellung in KHazame auf? Und auch warum, wenn Sie in AtmelStudio beispielsweise einen Code zum Blinken einer LED mit einer Frequenz von einmal pro Sekunde schreiben und in ein Makro schreiben:
#define f_cpu 9600000, dann führt das Laden des Codes auf dem Attiny13 dazu, dass die LED sehr langsam blinkt?
- Schauen Sie sich die vorletzte Zeile an, wo Teilen Sie die Uhr intern durch 8- Dies ist der mitgelieferte Frequenzvorteiler, der diese 9,6 MHz durch 8 teilt, und daher beträgt die tatsächliche Chipfrequenz hier 1,2 MHz. Wenn Sie daher eine Frequenz von 187,5 kHz oder weniger wählen, verschwinden die Fehler und Sie können normal mit dem Controller arbeiten.

Anmerkung 2. Die Methode mit der Auswahl der Frequenz in KHazame ist um ein Vielfaches schneller als die Methode mit physischem Schließen des Jumpers JP3, da im letzteren Fall die Frequenz auf 8 kHz reduziert wird.

Integration des Programmierers in Atmel Studio 7

Atmel Studio ist eine Entwicklungsumgebung von Atmel, die jedoch nicht direkt mit USBASP, insbesondere dem chinesischen, zusammenarbeiten kann. Dank des gleichen AVRDUDE-Programms, das im AVRDUDE PROG 3.3-Paket enthalten ist und hier die Rolle eines Vermittlers spielt, können Sie jedoch eine „Krücke“ bauen und dann in der Umgebung selbst die Möglichkeit zum Flashen hinzufügen MK über USBASP angeschlossen.

Zuerst müssen wir die Umgebung starten; es wird davon ausgegangen, dass bereits Code geschrieben und zusammengestellt wurde. In meinem Beispiel handelt es sich um einen einfachen LED-Blinker – Blink.

Wählen Sie in der oberen Symbolleiste „Extras“ – „Externe Tools ...“

Es öffnet sich ein kleines Fenster, klicken Sie auf „Hinzufügen“

Im obersten Feld "Titel:" Geben Sie einen beliebigen Namen ein, ich habe „Atmega168“ geschrieben, weil Die Konfiguration, die ich unten gebe, gilt speziell für diesen Controller und wird für jeden anderen Controller individuell konfiguriert.
Im großen Feld oben wird der Name des Instruments automatisch dupliziert.

Zweite Zeile, Feld "Befehl:"- Hier müssen Sie den Pfad zur Datei „avrdude.exe“ angeben, die sich im Ordner mit dem oben genannten Programm befindet

Dritte Zeile, Feld "Argumente:" Sie müssen die tatsächliche Konfiguration eingeben

Konfiguration für Atmega168

P m168 -c usbasp -P usb -U flash:w:$(Projektverzeichnis)Debug\$(Zielname).hex:a
-p – Controllername
-s – welcher Programmierer
-P – Port, über den die Firmware hochgeladen wird
-U – welcher Vorgang wird mit welchem ​​Speicher ausgeführt (in diesem Fall Schreiben in Flash)
Wenn Sie es für einen anderen MK konfigurieren müssen, muss der Parameter „m168“ auf den entsprechenden Controller geändert werden, der geflasht wird. Zum Beispiel „m8“ für Atmega8 oder „m328p“ für Atmega328p. Siehe die Parameter für andere MKs – dort finden Sie auch Beschreibungen der AVRDUDE-Tasten.

Konfiguration für ATtiny13


Klicken Sie nach dem Ausfüllen der Felder auf „Übernehmen“ und „OK“. Das Fenster wird geschlossen

Wenn Sie nun erneut auf „Extras“ klicken, erscheint dort das neu erstellte Tool. Und wenn Sie darauf klicken, wird der kompilierte Code automatisch in den Controller geflasht.

Dieser Vorgang erfolgt jedoch mit zwei Klicks, was nicht sehr praktisch ist. Sie müssen dieses Werkzeug in die Hauptsymbolleiste verschieben, damit es immer sichtbar ist.
Gehen Sie dazu erneut auf „Extras“ und klicken Sie dann auf „Anpassen...“
Es öffnet sich folgendes Fenster:

Gehen Sie zur Registerkarte „Befehle“ und klicken Sie auf die Schaltfläche „Befehl hinzufügen …“.

Es erscheint ein weiteres Fenster. Wählen Sie darin in der linken Spalte „Extras“ und in der rechten Spalte „Externer Befehl 1“ aus. OK klicken"

„Externer Befehl 1“ steht ganz oben auf der Liste, und achten Sie auf die Symbolleiste selbst – das Element „Atmega168“ wurde in der Benutzeroberfläche angezeigt.

Mir scheint aber, dass der ihm zugewiesene Platz nicht sehr gut ist; dazu empfiehlt es sich, ihn nach rechts zu verschieben, indem man auf die Schaltfläche „Nach unten“ drückt (ein Klick = eine Position nach rechts verschieben). Anschließend können Sie das Fenster über die Schaltfläche „Schließen“ schließen und den Chip direkt aus dem Studio heraus mit einem Klick durch den überwachten Programmierer nähen.


Beim Flashen des Chips mit dieser Methode erscheint für eine Sekunde das AVRDUDE-Konsolenfenster. Es kann jedoch erforderlich sein, dieses Protokoll irgendwie zur weiteren Anzeige zu speichern. Anschließend müssen Sie im Fenster „Externe Tools“ das Kontrollkästchen „Ausgabefenster verwenden“ aktivieren.

Und nun wird das Protokoll im Ausgabefenster unten im ATmel Studio 7-Programm angezeigt. Dieses Kontrollkästchen kann für jeden zu „Externe Tools“ hinzugefügten Controller separat gesetzt werden.

Ergänzung zu Programmiersicherungen

Aus dem READMI-Dokument, das den Treibern und der Firmware für USBASP beiliegt, ging später hervor, dass der Entwickler die Einstellung einer bestimmten Konfiguration von Sicherungsbits empfiehlt, die den Betrieb des externen Resonators bestimmen.
Der Nachteil von Khazam ist, dass das Fenster mit den Sicherungen die HEX-Werte der gesetzten Bits nicht anzeigt. Dies ist bereits in AVRDUDE PROG zu sehen, das so aussieht. Stellen Sie sicher, dass Sie einen Punkt „invers“ setzen – hervorgehoben durch ein blaues Rechteck):

Dazu müssen zwei Kontrollkästchen von „BODEN“ und „SUT1“ (hervorgehoben durch ein rotes Oval) deaktiviert werden.
Aktivieren Sie zwei Kontrollkästchen für „CKOPT“ und „SUT0“ (hervorgehoben durch ein grünes Rechteck).
Die HEX-Werte der geänderten Bits werden in der rechten Spalte angezeigt (hervorgehoben durch ein fettes rotes Rechteck): Sperrbyte: 3F Sicherung High Byte: C9 Sicherungs-Low-Byte: EF.

Wenn alles passt, können Sie auf „Programmieren“ klicken.

AUFMERKSAMKEIT. Wütender Zünderschlag RSTDISBL- Berühren Sie es auf keinen Fall, da die Installation sonst den Controller blockiert und ein Flashen über USBASP nicht mehr möglich ist.
_____________________________________

Schlussfolgerungen

Versucht und funktioniert. Wenn Sie Khazam nicht verwenden möchten, macht es keinen Sinn, die Firmware für den Programmierer zu aktualisieren. Glücklicherweise funktioniert es einwandfrei und im Fall des ATtiny13 sind keine Änderungen oder Jumper erforderlich. Aus irgendeinem Grund erwies sich die neueste Firmware in dieser Hinsicht als launischer. Das Einzige ist, dass die Platine nach Erhalt gelötet und gewaschen werden muss.

Linkliste



 


Lesen:



Stellen Sie RAW auf NTFS oder FAT32 auf USB, SD, HDD ohne Datenverlust wieder her

Stellen Sie RAW auf NTFS oder FAT32 auf USB, SD, HDD ohne Datenverlust wieder her

Alle Arten von USB-Laufwerken, seien es normale Flash-Laufwerke oder austauschbare Speicherkarten, sind aus vielen Gründen fehleranfällig. Sagen wir...

Kostenlose Programme zum Brennen von CD-DVDs auf Russisch: Liste der Besten

Kostenlose Programme zum Brennen von CD-DVDs auf Russisch: Liste der Besten

CDs und DVDs werden heute seltener genutzt. Dies ist vor allem auf das Aufkommen von USB-Geräten zurückzuführen, die besser als „Flash-Laufwerke“ bekannt sind. Allerdings von Disketten...

Ubuntu LINUX von einem Flash-Laufwerk installieren – Anleitung

Ubuntu LINUX von einem Flash-Laufwerk installieren – Anleitung

Das Ubuntu-Betriebssystem kann von einer CD/DVD oder von einem USB-Laufwerk (Flash-Laufwerk) gestartet werden, ohne es auf einer Festplatte zu installieren. Dies nennt man ab...

Die besten Kompakt-Smartphones laut Kundenrezensionen

Die besten Kompakt-Smartphones laut Kundenrezensionen

7.980 RUB Smartphone Huawei Y5 2019 Modern Black (schwarz) Typ - Smartphone. Der Fall ist klassisch. Touchscreen-Typ - kapazitiv. Mit WLAN. Slot...

Feed-Bild RSS