Für meine neueren Projekte mit USB Anschluss kam immer der Wunsch auf, neue Firmware per USB in den Controller zu schreiben.

Erste Versuche mit einem fertigen Bootloader auf der V-USB-Seite waren zwar erfolgreich, aber noch nicht ganz zufriedenstellend:

  • ein einfaches Windowsprogramm fehlte mir
  • es konnte kein EEPROM geschrieben bzw. zur Kontrolle gelesen werden

Also musste ein eigener Bootloader her.

 

Mein Bootloader basiert auf dem Projekt von BootloadHID. Der Vorteil dieses Bootloaders ist, dass man für Windows keinen zusätzlichen Treiber benötigt. Einzig die Ansteuerung und Übertragung der Daten muss noch per Software erledigt werden - ein unschätzbarer Vorteil da keine Installation notwendig ist.

Der Bootloader für den Atmel wurde um folgende Funktionen erweitert:

  • EEPROM lesen
  • EEPROM schreiben

Anpassungen für andere Projekte sind folgende notwendig:

Der Sourcecode kann hier (116kB) heruntergeladen werden. Zur Übertragung des Bootloaders ist ein Programmer erforderlich z.B. von MyAVR

Zusätzlich müssen die Fuse-Bits zur Aktivierung des Bootloaders gesetzt werden:

  • Bootloadergröße 1024 Words (2048 Bytes)
  • Bootloader Reset Vector auf "Enabled"

 

Die Windows Software basiert auf .Net 2.0 - das muss installiert sein, damit die Software läuft.

MZBootloader

  • Über den Button rechts oben kann die zu übertragende Datei ausgewählt werden
  • Der Inhalt der Hex-Datei wird im linken Fenster angezeigt
  • Mit dem Button "Übertragen" wird die Datei in den Controller übertragen. Zuvor wird sie noch einmal neu geladen - damit Änderungen seit der Dateiauswahl auch übernommen werden. Der Status des Übertragungsvorgangs wird im rechten Fenster angezeigt. Am Ende der Übertragung wird der Bootloader im Controller verlassen und das Programm normal abgearbeitet.
  • Eine Übertragung des EEPROM-Inhalts (.eep-Datei) erfolgt analog
  • Zum Lesen des EEPROM-Inhalts muss zuvor eine Datei angegeben werden, in welche der Inhalt geschrieben wird
  • Bei Start der Übertragung muss der Controller mit aktiviertem Bootloader an einem USB-Anschluss des PCs angeschlossen sein. Das Gerät sollte im Gerätemanager als Eingabegerät erscheinen (HID-konformes Gerät, Hardware-IDs: VID = 4242, PID = E131)

Download (16kB)