AVR Bootloader FastBoot von Peter Dannegger/Tutorial ATtiny13

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Benutzer:Pnu

Erstellung eines Bootloaders auf dem Attiny13, nach Peter Dannegger

Peter Dannegger hat einen Bootloader geschrieben, der im Gegegensatz zu anderen Bootloadern ohne die UART des Kontrollers auskommt. Deshalb kann er auf den Attiny13 angepasst werden.

Eine Liste von Features:

  • verwendet AVR-Studio und den dazu passenden ISP-Programmer
  • one wire-Version möglich

Leider ist der Thread zu Peter Danneggers Bootloader zu einem Monster mit über 500 Beiträgen angewachsen, es hat mich einen ganzen Tag gekostet, bis ich auch nur einen Überblick hatte.

Es existiert zwar eine Gebrauchsanweisung, von Karsten Donat geschrieben, nur ist diese auf den Compiler WINAVR und auf avrdude zugeschnitten, sodass ich nicht damit zurecht kam.

Diese Beschreibung arbeitet mit AVR Studio und dazu passendem ISP-Programmer (STK500-clone)

Files zusammenstellen

  1. In AVRStudio: neues Projekt eröffnen (onewire13), mit AVR-Assembler, nicht mit GCC, dabei entstehen zwei ineinander geschachtelte Ordner, im inneren befindet sich ein .aps-file.
  2. BOOTLOADV21 (link siehe unten) downloaden, entzippen, alle files im Ordner Bootload in den Ordner platzieren, in dem das onewire13.aps -file befindet.
  3. Studio wieder öffnen, file Bootload.asm öffnen, den gesamten Text mit "Schere" (cut) ausschneiden in die Zwischenablage, mit "Briefumschlag"(paste) den Text in onewire13.asm platzieren, das bisher leer war.

Anpassen des file onewire13 auf ATtiny13 und onewire-Betrieb

  1. "include tn13def.inc" durch Löschen des Semikolon am Zeilenanfang aktivieren (einkommentieren).Achtung: eventuell ist das include-statement zu einem anderen Kontrollertyp noch aktiv, dann dieses durch ein Semikolon am Zeilenanfang stillegen (auskommentieren).
  2. den gewünschten Programmierpin (portb,0) zweimal angeben, bei STX und SRX, dann entsteht onewire Betrieb.
  3. Wenn two-wire Betrieb gewünscht wird, zwei verschiedene Pins angeben für SRX und STX.
  4. Starten der Assemblierung (F7) lässt, wenn alle Fehler beseitigt sind, das file onewire13.hex entstehen.

Transferieren in den Attiny13

  1. ATtiny auf Programmierplatte aufklemmen (bzw mit ISP verbinden, siehe Hardware).
  2. file onewire13.hex über ISP-Schnittstelle einprogrammieren
  3. fuse SELFPRGEN programmieren, auch die für die spätere Anwendung notwendigen fuses programmieren, da der Bootloader fuses nicht ändern kann.

Jetzt ist der ATtiny13 mit seinem Bootloader beladen, kann eingelötet oder eingesteckt werden und mit dem Anwenderprogramm programmiert werden.

Programmiervorgang mit dem Bootloader

Ein Anwenderprogramm, z. B. versuch.hex kann dann in folgenden Schritten einprogrammiert werden:

1. AVRFlash2.1.1.exe installieren und aufrufen

Um per Bootloader das Programm zu laden, ist das Programm FBOOT von Peter Dannegger auf dem PC notwendig oder das Programm AVRFlash.exe

2.Parameter eingeben

Die Kopfzeile von AVRFlash hat drei aufrufbare Menus: Datei, Port, Passwort

Datei: Pfadangebe und Name des hex.file: C:/..../versuch.hex

Port: (COM1, 38400Bd oder entsprechend)

Passwort: sich mit default zufrieden geben oder 100 Beiträge durchforsten

3. AVRFlash Programm ausführen

Verbindung mit COM1 herstellen, dazu dient bei onewire die einfache Schaltung, die Peter Dannegger angibt (PDF: onewire, in Ordner BOOTLOAD). Bei twowire benötigt man RS-232-TTL-Schnittstellenbausteine, denn der tiny verträgt keine RS232-Pegel

Flash-Button anklicken und innerhalb der Timeout-Zeit Reset des ATtiny. Bei Erfolg leuchten die drei "Leuchtdioden" grün.

Erst nach Trennen von COM1 und neuem Reset läuft danach das Anwenderprogramm, wahrscheinlich gibt es Störungen von der Leitung 2 des COM-Ports im onewire-modus

Hardware Programmierplatte

Als Ersatz für einen teuren Programmiersockel war die folgende Programmierplatte hilfreich.

Bild der Programmierplatte

Sie enthält den Footprint des SMD-Attiny13, mit dem Stecker für die ISP-Schnittstelle. (Ich selbst verwende meine private ISP-Verbindung, aus einer 7-Pin-Reihe eines alten 14-Pin IC-Sockels bestehend, die Reihenfolge der Signale ist so gewählt, dass es hier ohne Überkreuzung geht. Diese ist hier im PDF des Drockstocks zu sehen). Die Leiterbahnen wurden zuerst verzinnt, anschließend im Bereich des Kontrollers so gut wie möglich mit Lötlitze wieder entzinnt. Eine Kontaktfeder aus einem Platinen-Direktstecker (alte 5-1/2-Zoll-Floppy) drückt das IC auf die Platte. Solange die Pins nicht verbogen wurden, ergibt sich ein ausreichender Kontakt, was sich beim Lesen der Signatur und beim Verify zeigt..

Fundstellen bzw. Quellen

Der Thread zu Peter Danneggers Bootloader ist elend lang (576 Beiträge)deshalb die Angabe einiger Fundstellen in Datumsform:

15.04.08 BOOTLOAD V21 Bootloader für den uController inkl. FBoot für den PC

30.09.09 AVRFlash2.1.1.exe (Programm mit Oberfläche für den PC, zur Benutzung des Bootloaders)

18.02.09 UpdateLoader Version 2.1.9 ein weiteres Programm mit Oberfläche für den PC

15.10.09 Adapter für onewire, auch im Ordner BOOTLOAD von PeDA (z.B. hier FBoot17)

26.10.07 Protokoll des Bootloaders

07.08.09 FBOOT, die DOS-Variante des PC-Bedienprogramms für den Bootloader


Die (neueste) Version 2.2 des Bootloaders von Peter Dannegger ist findbar in:

http://www.avrfreaks.net/index.php?module=Freaks%... (Link unvollständig --Hownottobeseen 07:36, 17. Okt. 2010 (UTC))

Alte Version: http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=1008&item_type=project