Das von mir empfohlene Gesamtpaket besteht aus:
- Hardwaretreiber für den PC damit der USB-Programmer verbunden wird (Installation)
- AVRDude Software zum programmieren der Bausteine
- BASCOM Entwicklungssystem für schnelle Erfolge
- WinAVR als Open-Source-Lösung für C++ und Assembler
- Atmel Studio 6.0 vom Hersteller direkt für C++ und Assembler
Am Einfachsten für Anfänger ist natürlich die BASCOM-Sprache. Jemand, welcher allerdings aus der Programmiererszene kommt, will möglicherweise sein C++ weiterverwenden. Alles kein Problem. Nun findet man irgendwo ein Schnipsel, sei es in BASCOM oder in den leicht unterschiedlichen Dialekten von C++ zwischen WinAVR und Atmel Studio 6.
Und jetzt verrate ich auch ein kleines Problemchen mit dem Programmieradapter ;) :
Natürlich gibt es verschiedene GUIs (grafische Oberflächen) zum Bearbeiten der Bausteine. Allerdings musste ich feststellen, die mir bekannten Hilfsprogramme haben nicht alle die Bausteine hinterlegt, welche ich am Lager habe. Anscheinend gibt es da auch keinen großen Drang bei den Profis, dieses zu ändern. Muss man also zurück zu der guten alten Kommandozeile. Hört sich schlimmer an als es ist.
Nun zur Praxis. Wir haben obige Software alle brav installiert. Der Adapter wird soweit hoffentlich erkannt. Hinweis: Bei WinAVR ist zwar auch eine Version von AVRDude enthalten. Diese ersetzen wir inkl. der conf-Datei mit der selbst gezogenen Version von AVRDude, weil diese aktueller ist.
Als allererstes empfehle ich, von dem im Guloshop gekauften, bereits programmierten Baustein eine Kopie zu erstellen.
Update 16.07.2022! Die folgende Anleitung ist nicht mehr korrekt. Die Pinbelegung hat sich verändert und das Kompilieren des Sourcecodes unter Windows 10 und 11 geht auch nicht mehr ohne Kniffe. Ich habe daher einen neuen Beitrag hier geschrieben...
Den Sourcecode des Bausteins laden (USBASP von Fischl, angepasst von Guloshop)Entpacken in ein leeres VerzeichnisAuf die Kommandozeile gehen und in das Verzeichnis tauchenDort eingeben make main.hexDie Ausgabezeilen des Compilers prüfen ob alles fehlerfrei durchgelaufen istWenn ja, findet sich im Verzeichnis eine Datei main.hex welche noch in den Baustein programmiert werden mussJetzt wirds ernst. Den frischen Baustein auf das Steckbrett stecken und die 5 farbigen Kabel passend anschliessen. Jetzt den Programmieradapter mit der USB-Schnittstelle verbinden. Unter Win-Betriebssystem sollte das "PalimPalim" die Verbindung erfolgreich quittieren.Die Datei main.hex wird in den Baustein "geflasht":
avrdude -c usbasp -P usb -B 10 -p attiny85 -U flash:w:main.hexDie Bildschirmausgabe zeigt hoffentlich eine erfolgreiche Übertragung anNun müssen noch die Fuses programmiert werden. Dazu schauen wir in die Datei makefile und finden dort in Zeile 18 und 19 die Daten, welche in die Fuses gesetzt werden müssen. Hierbei ist zu beachten: Aufgrund der begrenzten Anzahl von Pins mussten Tricks durchgeführt werden, welche den Chip für weitere Programmierversuche bzw. späteres Auslesen blockiert. Quasi ein Kopierschutz ;) Daher muss man bei dem Programmieren der Fuses sorgfältig arbeiten, sonst hat man den Baustein insoweit zerstört, dass er nur noch durch Tricks wieder zum Leben zu erwecken ist. Trotzdem bitte keine Schweisspfoten bekommen. Ein Tiny85 kostet weniger als 1€.Nun die in Makefile gefundenen Daten in die Fuses programmieren:
avrdude -c usbasp -P usb -B 10 -p attiny85 -U lfuse:w:0xf1:m
avrdude -c usbasp -P usb -B 10 -p attiny85 -U hfuse:w:0x5d:mAuch hier die Ausgaben von AVRDdude überprüfenNun alles abstöpseln, den Originalbaustein aus dem Steckbrett entfernen und durch den eben programmierten ersetzen. Kurz überprüfen, ob alle Bauteile weiterhin stecken und keine Kurzschlüsse verursachen. Dann an die USB-Schnittstelle stecken und hoffentlich das erwartete "PalimPalim" hören. ;) Fertig!Jetzt kann man beruhigt weiterbasteln mit der Sicherheit, im Falle des Falles Ersatz parat zu haben. Das Original sicher verstauen, wo man es nach einem Unfall wiederfindet. Weil wenn der Programmierer erstmal kaputt ist, kann man keinen Ersatz mehr brennen. ;)
Im übrigen unterscheiden sich die Befehle gar nicht so sehr. Wer Spaß an Batchprogrammierung hat, kann sich die Sache schnell vereinfachen. Die Zeile avrdude -c usbasp -P usb -B 10 -p attiny85 -U ist, abgesehen vom verwendeten Baustein immer gleich. Die vorgegebenen Bausteine lassen sich in der Datei avrdude.conf finden. Aber avrdude meckert auch, wenn dort etwas nicht passt.
Zu den Fuses nochmal etwas. Zum einen ist es normalerweise eher selten, dass man einen Baustein sperrt und schreibschützt. Meist wird nur der Teiler deaktiviert oder eine bestimmte Quarzfrequenz vorgegeben. Allerdings sind die Fuses bei jedem Baustein etwas anders belegt. Dazu sollte man immer das Datenblatt des besagten Bausteins parat haben. Aber es gibt auch eine feine Webseite, welche einem diese Arbeit abnimmt und sogar mundgerecht für avrdude die Schnipsel bereitstellt:
http://www.engbedded.com/fusecalc/
Keine Kommentare:
Kommentar veröffentlichen