Mikrocontroller-Projekte
Ronald Daleske

Startseite Impressum Warenzeichen

USBasp Version 3

USBasp Version 3

Das Projekt USBasp Version 3 ist ein Nachbau des "USBasp - USB programmer for Atmel AVR controllers" von Thomas Fischl:

https://www.fischl.de/usbasp/

Bei diesem Projekt habe ich nur die Leiterplatte (PCB) zu dem vorhandenen Schaltplan (siehe Link oben) und der vorhandenen Firmware:

Firmware USBasp Thomas Fischl

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)

1. Schaltplan

Schaltplan USBasp V3

Der Schaltplan des USBasp-Programmers mit kleinen Änderungen.

Schaltplan USBasp V3 als SVG: USBaspV3.svg

Schaltplan USBasp V3 als PDF: USBaspV3.pdf

2. KiCAD und Gerberdateien

Bild 2a: USBasp V3 KiCad

Hier sind alle notwendigen KiCAD-Dateien.

USBasp V3 KiCad-Dateien: KiCad6_USBaspV3.zip

Bild 2b: USBasp V3 KiCad

Für die Entwicklung wurde KiCAD Version 6.0.9 genutzt.

KiCAD-Version

Bild 2c: Gerber USBasp V3

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)).

3. Hinweise zum Einspielen der Firmware für den USBasp

3.1. Vorbereitung der Hardware

Für das Einspielen der Firmware auf das USBasp-Board wird ein weiterer USB-ASP-Programmer benötigt.

Bild 3.1.a: Vorbereitung der Hardware

Der USB-ASP-Programmer (hier mySmartUSB light) wird über das Programmierkabel an den 6-poligen ISP-Programmer-Stecker angeschlossen.

Bild 3.1.b: Vorbereitung der Hardware

Auf dem USBasp-Board muss der Jumper JP2 "Self Programming" gesetzt sein (siehe Bild).

3.2. Bemerkungen zum Brennerprogramm für den USBasp

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.

3.3. Brennen mit dem Programm BitBurner

BitBurner LOGO

Das Wichtigste zum Programm BitBurner habe ich unter:

BitBurner

zusammengefasst.

3.3.1. Einstellen des Programmers in BitBurner

3.3.1.a Einstellen des Programmers in BitBurner

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.

3.3.2. Brennen der Fuses mit BitBurner

3.3.2.a Brennen der Fuses

Laut Dokumentation von Thomas Fischl benötigt der USBasp mit ATMEGA8 die Fuses:

Low Fuses: EF

High Fuses: C9

3.3.2.b Brennen der Fuses

Einstellungen setzen und Write drücken.

3.3.3. Brennen des Flash mit BitBurner

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).

3.3.a Brennen des Flash

Die Datei "usbasp.atmega8.2011-05-28.hex" unter Flash auswählen und Write drücken.

3.4. Brennen mit dem RONPAS-Compiler

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.

3.4.1. Vorbereiten des RONPAS-Compilers

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.

Bild 3.4.1.a: Vorbereiten des RONPAS-Compiler

RONPAS-Compiler starten, das Rahmenprogramm USBasp.PAS öffnen und mit dem grünen Start-Button übersetzen.

Bild 3.4.1.b: Vorbereiten des RONPAS-Compiler

Dabei passiert nichts anderes, als dass der ATMEGA8 als Mikrocontroller eingestellt wird.

Bild 3.4.1.c: Vorbereiten des RONPAS-Compiler

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.

Bild 3.4.1.d: Vorbereiten des RONPAS-Compiler

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.

3.4.2. Schreiben der Fuses mit dem RONPAS-Compiler

Drücken des Reiters HL FUSES.

Bild 3.4.2. Schreiben der 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.

3.4.2. Schreiben der Firmware in den Flash

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.

Bild 3.4.2.a Schreiben der Firmware in den Flash

Anschiessend auf "Schreibe Flash" drücken.

Bild 3.4.2.b Schreiben der Firmware in den Flash

War das Einspielen der Firmware des USBasp erfolgreich, sollte dies im Geräte Manager angezeigt werden.

3.5. Henne-Ei-Problem gelöst

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.

Bild 3.5.a: Henne-Ei-Problem

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.

Stromversorgung über USB-Kabel

Bild 3.5.b: Henne-Ei-Problem

Hier ein Bild, mit einem USBasp als Programmer (oben) und einem USBasp als zu programmierndes Board (unten).

Bild 3.5.c: Henne-Ei-Problem

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.

Wichtiger Hinweis

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.

Stromversorgung über Programmierkabel (JP3 setzen)

Bild 3.5.d: Henne-Ei-Problem

Die Jumper J3 auf beiden Boards sind gesetzt. Die Stromversorgung des zu programmierenden Boards (unten) erfolgt nun über das Programmierkabel.

Wichtiger Hinweis

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.

Wichtiger Hinweis

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.

4. Lizenz

Für die Schaltung und die Firmware des USBasp gelten die Lizenzbedingungen von Thomas Fischl.

https://www.fischl.de/usbasp/

Für die Entwicklung des PCBs gilt:

Creative Commons Lizenzvertrag
Diese(s) Werk bzw. Inhalt von Ronald Daleske steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Deutschland Lizenz.



Startseite Impressum Warenzeichen