|
Startseite | Impressum | Warenzeichen |
Das Projekt USBasp Version 3 ist ein Nachbau des "USBasp - USB programmer for Atmel AVR controllers" von Thomas Fischl:
Bei diesem Projekt habe ich nur die Leiterplatte (PCB) zu dem vorhandenen Schaltplan (siehe Link oben) und der vorhandenen Firmware:
entwickelt.
Es ist beeindruckend, dass der Programmer USBasp sich seit 2011 nicht verändert hat. Das zeigt, wie ausgereift das Projekt war und auch noch ist.
Inzwischen wird er von zahlreichen Firmen (meist aus China) kopiert und mit der Firmware von Thomas Fischl ausgestattet.
Eine Kleinigkeit hat sich vielleicht in den 12 Jahren geändert, der 10polige Stecker des Programmers wird kaum noch genutzt. Er wurde durch die 6polige Stecker-Variante ersetzt.
Leider muss für den USBasp unter Windows 10 ein Treiber installiert werden. Diese Installation ist etwas komplizierter als gewohnt. Eine Anleitung findet man bei Thomas Fischl unter oben genannter Adresse unter "Driver" (in englisch).
Für den RONPAS-Compiler habe ich die Installation des Treibers für den USBasp beschrieben unter:
unterstützte Programmer (Internetseite)
unterstützte Programmer (PDF-Datei)
Der Schaltplan des USBasp-Programmers mit kleinen Änderungen.
Schaltplan USBasp V3 als SVG: USBaspV3.svg |
Schaltplan USBasp V3 als PDF: USBaspV3.pdf |
Hier sind alle notwendigen KiCAD-Dateien.
USBasp V3 KiCad-Dateien: KiCad6_USBaspV3.zip |
Für die Entwicklung wurde KiCAD Version 6.0.9 genutzt.
Die hier angegebenen Gerberdateien sind die Originaldateien, mit denen der Prototyp angefertigt wurde.
USBaspV3 Gerber-Dateien: gerber_USBaspV3.zip |
Die Gerberdateien können direkt an einen Leiterplattenfertiger weitergeleitet werden.
Für die Anfertigung meiner Prototypen habe ich jlcpcb.com genutzt (sehr günstig, sehr gute Qualität und schnelle Lieferung (meist um die 10 Tagen nach Bestellung)).
Für das Einspielen der Firmware auf das USBasp-Board wird ein weiterer USB-ASP-Programmer benötigt.
Der USB-ASP-Programmer (hier mySmartUSB light) wird über das Programmierkabel an den 6-poligen ISP-Programmer-Stecker angeschlossen.
Auf dem USBasp-Board muss der Jumper JP2 "Self Programming" gesetzt sein (siehe Bild).
Das Programmieren der Hardware für den USBasp gestaltete sich bei mir schwieriger, als anfangs gedacht.
Viele Software-Programmer sind schon etwas älter und laufen unter Windows 10 nicht mehr. Andere waren für mich in der Bedienung nicht nachvollziehbar (bin damit nicht klar gekommen).
Vor vielen Jahren (unter Windows 7) nutzte ich AVR Studio 4 zum programmieren der Fuses. Leider erkennt das AVR Studio 4 unter Windows 10 kaum einen meiner Programmer. Und auch mit den neueren Versinen von AVR Studio bin ich nicht so recht klar gekommen.
Was eigentlich immer läuft, ist das Konsolenprogramm "avrdude.exe". Es ist für mich das "Schweizer Taschenmesser" unter den Brennerprogrammern. Nur der Umgang mit den Parametern erfordert einige Übung, da es hier sehr viele Möglichkeiten gibt.
Daher lag es nahe, eine GUI für AVRdude zu finden, um den USBasp-Programmer zu programmieren.
Nach sehr vielen Versuchen fiel meine Wahl auf das Programm BitBurner, das ich sehr empfehlen kann.
Das Wichtigste zum Programm BitBurner habe ich unter:
zusammengefasst.
Die Einstellungen für den hier verwendeten USB-ASP-Programmer mySmartUSB light sind hier zu sehen.
Beispiele für andere Programmer sind unter dem oben genannten Link einsehbar.
Laut Dokumentation von Thomas Fischl benötigt der USBasp mit ATMEGA8 die Fuses:
Low Fuses: EF
High Fuses: C9
Einstellungen setzen und Write drücken.
Hier noch einmal extrahiert die Firmware von Thomas Fischl (siehe Internetseite oben).
Firmware für den USBasp von Thomas Fischl (Stand 28.05.2011): usbasp.atmega8.2011-05-28.zip |
Die Datei extrahieren (z.B. in den Unterordner HEX).
Die Datei "usbasp.atmega8.2011-05-28.hex" unter Flash auswählen und Write drücken.
Hier noch einmal die von mir ursprünglich verwendete Variante mit dem RONPAS-Compiler, der letztendlich ebenfalls die Parameter für das Programm avrdude.exe generiert und damit den Mikrocontroller programmiert.
Man benötigt nur ein kleines PASCAL-Dummy-Programm (für die Voreinstellungen des Mikrocontrollers) und die USBasp-HEX-Datei von Thomas Fischl (usbasp.atmega8.2011-05-28.hex) um den ATMEGA8 programmiern zu können.
RONPAS-Compiler: RONPAS.ZIP |
Wenn noch nicht vorhanden, den RONPAS-Compiler herunterladen.
Rahmenprogramm RONPAS-Compiler für USBasp: RONPAS_USBasp.zip |
Das Rahmenprogramm herunterladen, entpacken und in einen Unterordner des RONPAS-Compilers kopieren.
RONPAS-Compiler starten, das Rahmenprogramm USBasp.PAS öffnen und mit dem grünen Start-Button übersetzen.
Dabei passiert nichts anderes, als dass der ATMEGA8 als Mikrocontroller eingestellt wird.
Button-Prommer drücken und unter PROMMER-Typ den angeschlossenen USB-Programmer auswählen.
Wichtig: Danach den RONPAS-Compiler schliessen damit alle Einstellungen übernommen werden.
Wichtig: Vor dem nächsten Start muss der USB-Programmer (hier mySmartUSB light) angeschlossen sein.
RONPAS-Compiler starten und noch einmal den Start-Button drücken.
Den Button-Prommer drücken und auf Lese Signatur drücken.
Dabei wird über das Programm avrdude.exe und den USB-Programmer die Signatur des angeschlossenen Mikrocontrollers gelesen und mit der gespeicherten Signatur des ATMEGA8 verglichen.
War dieser Test o.k. ("Device Signature ist richtig"), können im nächsten Schritt die Fuses geändert werden.
Drücken des Reiters HL FUSES.
Laut Dokumentation von Thomas Fischl benötigt der USBasp mit ATMEGA8 die Fuses:
H-Fuses: C9
L-Fuses: EF
Bitte die Fuses im Programmer des RONPAS-Compilers wie im Bild setzen (bzw. zurücksetzen). Dann wird im linken Teil des Fensters H-Fuses: C9 und L-Fuses: EF angezeigt.
Anschiessend auf "Schreibe Fuses" drücken.
Drücken des Reiters "Flash".
Wichtig: Das Dummy-Programm USBasp.PAS bietet in den Voreinstellungen bereits ene HEX-Datei an USBasp.hex. Das ist nur ein Dummy und nicht die Firmware für den USBasp.
Unter "Quelle (Pfad und Name der Hex-Datei)" auf "suchen" drücken und die Datei "usbasp.atmega8.2011-05-28.hex" auswählen.
Anschiessend auf "Schreibe Flash" drücken.
War das Einspielen der Firmware des USBasp erfolgreich, sollte dies im Geräte Manager angezeigt werden.
Mit dem Brennen der Firmware des USBasp durch einen anderen USB-Programmer (hier mySmartUSB light) ist nun ein Master Programmer vorhanden um weitere USBasp Boards zu programmieren.
Bei der hier im Bild gezeigten Bestückungsvariante wurde die Platine nur mit den notwendigsten Bauelementen bestückt. Der ATMEGA8 wurde bereits oben fertig programmiert und kann nun direkt (ohne Fassung) auf das Board gelötet werden.
Hier ein Bild, mit einem USBasp als Programmer (oben) und einem USBasp als zu programmierndes Board (unten).
Wichtig ist, dass beim USBasp als zu programmierndes Board (unten) der Jumper JP2 (Self Programming) eingesteckt ist.
Die Stromversorgung des USBasp als zu programmierndes Board (unten) erfolgt über das USB-Kabel.
Der Jumper JP3 darf bei dieser Variante nicht gesetzt sein, wenn beide USB-Kabel an unterschiedlichen Computern angeschlossen sind, da es sonst zu einem Kurzschluss zwischen den USB-Anschlüssen kommt.
Die Jumper J3 auf beiden Boards sind gesetzt. Die Stromversorgung des zu programmierenden Boards (unten) erfolgt nun über das Programmierkabel.
Sind auf beiden Boards die Jumper JP3 gesetzt, darf bei dieser Variante kein USB-Kabel an unterschiedlichen Computern angeschlossen sein, da es sonst zu einem Kurzschluss zwischen den USB-Anschlüssen kommt.
Diese Variante der Stromversorgung ist nur mit dem USBasp Board möglich. Bei allen andern Programmern wird der Stromversorgungsanschluss oft nur zum Erkennen der Versorgungsspannung des zu programmierenden Boards (als Eingang) genutzt. So umgehen die Hersteller die Probleme mit der doppelten Stromversorgung und dem Zerstören von Hardware oder möglichen Brandunfällen.
Für die Schaltung und die Firmware des USBasp gelten die Lizenzbedingungen von Thomas Fischl.
Für die Entwicklung des PCBs gilt:
Diese(s)
Werk bzw. Inhalt von Ronald Daleske steht unter einer
Creative Commons Namensnennung-Nicht-kommerziell 3.0
Deutschland Lizenz.
Startseite | Impressum | Warenzeichen |