ATTiny, ATMega UART Bootloader

Für ein kleines Projekt war in der Startphase ein Bootloader ganz praktisch. Unhandlich ist es mit Atmel ISP bzw. SPI Header auf der Platine einen Mikrocontroller zu programmieren. ISP braucht einfach zu viele Signale (6) -> VCC, GND, Clock, Reset, MISO, MOSI.

Die Lösung war der Bootloader von Peter Dannegger. Der Bootloader ist klein, schnell und unterstützt sogar den OneWire-Betrieb. Leider gibt es auf dem Mirkocontroller.net Forum ein ziemlich Wildwuchs an unterschiedlichsten Versionen, Dokumentation und auch PC-Tools, sowohl für Windows als auch Linux.

Trotz der zahlreichen Wiki-Seiten hat es mich Stunden gekostet hier durchzusteigen und die Versionen und Hardwareaufbauten zu finden die zusammen passen. Hier die Wiki-Seiten, sollte ihr diese nach meiner Kurzanleitung noch benötigen:

http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger

http://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger/Tutorial_ATtiny13

Dazu gibt es noch einige seeeehr lange Forumsbeiträge, die man sich ergooglen kann.

Ich möchte hier nur auf den OneWire-Betrieb mit Windows eingehen und es kurz und schmerzlos ohne viel Prosa machen:

  • das meiner Meinung nach einzige funktionierende Windowstool für OneWire ist der UpdateLoader: https://luani.de/projekte/updateloader/
    • Password sollte standard „Peda“ sein -> Achtung keine beliebige Passwortauswahl möglich, da es mit dem Autobauding zusammenhängt
    • Bei „Erweitert“ natürlich OneWire aktivieren
  • Bootloader richtig konfigurieren und kompilieren
    • nur die Datei BOOTLOAD.ASM bearbeiten
    • passende include zum Prozessor einkommentieren
    • TX und RX PIN muss für OneWire gleich angegeben werden
    • der Pin ist frei wählbar, da Software-UART
    • der Bootloader wartet nach dem Prozessorstart kurz und wenn keine Programmieranfrage kommt, wird das Hauptprogramm geladen. Wollt ihr die Wartezeit beeinflussen (kein Muss) oder habt einen stark abweichenden Clock zu 8 MHz, dann in der FASTLOAD.H -> BootDelay bearbeiten
  • Programmierhardware
    • Schaltung für RS232-Wandler (+/- 12 bis 3 Volt Pegel): http://www.mikrocontroller.net/attachment/24979/bootloader.pdf
    • wer einen USB/UART Wandler wie ich benutzen möchte, muss zwingend die RX und TX Signale invertieren. Bei einem FTDI kann dies ganz einfach mit dem Windows-Konfigtool des FTDIs erledigt werden. Bei einem billigem Wandler wie ich ihn habe, musste ein 74HTC04 Inverter zwischen USB/UART und Mikrocontroller gebracht werden.
    • Die weitere Beschaltung habe ich im Mikrocontroller-Forum leider nirgends gefunden, daher meine Version:
    • onewire_fboot
    • mindestens 19,2 kbaud sollten mit dieser „langsam“ wirkenden Schaltung möglich sein

Für die Programmierhardware habe ich mir noch etwas besonderes einfallen lassen. Einfach am Rand der PCB zwei 2 mm große Testpunkte einfügen und diese mit GND und Programmierpin verbinden. Nun habe ich eine Klammer in der Mitte aufgesägt und zwei schräg abgeschnittene 1,5 mm² Kupferader befestigt. Durch die Halbierung der Klammer, können die Pins getrennt voneinander federn.

Im Bild habe ich eine Beispiel-PCB verwendet. Die Pins sind natürlich von einem USB-Connector.

Insgesamt ist es keine schwierige Sache mit dem Bootloader, nur die Informationen sind sehr verstreut.

Advertisements
Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

2 Antworten zu ATTiny, ATMega UART Bootloader

  1. Jonas schreibt:

    Hallo Sebastian!

    Mit dem Bootloader von Peter Dannegger habe ich mich auch schon rumgeschlagen. Damit anderen der hohe Initialaufwand erspart bleibt, habe ich ein Online-Tool geschrieben das die Generierung übernimmt: http://pointless-circuits.com/fastboot-generator/
    Diese Version des Bootloaders benötigt außerdem keine Invertierung der UART Signale, sie lässt sich direkt am USB-TTL Converter betreiben.

    Gruß
    Jonas

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s