Inhaltsverzeichnis

Atmega*U2 Chips in den Bootloader-Modus setzen

Sprung aus der Software

Wenn man eine Software für einen Atmega*U2 programmiert empfiehlt es sich, dort einen passenden Programmteil zu schreiben, der in den Bootloader-Sektor springt. Dieser Teil kann zB über einen Taster oder eine bestimmte Byte-Folge des USART aufgerufen werden. Abhängig von der Größe der Bootloader-Sektion muss man an die Boot-Reset-Adresse springen, diese ist in Tabelle 23-8 des Datenblattes erklärt:

BOOTSZ1 BOOTSZ2 Bootgröße Boot-Reset-Adresse
1 1 256 words 0xF00
1 0 512 words 0xE00
0 1 1024 words 0xC00
0 0 2048 words 0x800

Boot-Reset-Fuse

Die Boot-Reset-Fuse kann so programmiert werden, dass der Controller nach jedem Reset in den Bootloader-Bereich springt. Diese Fuse kann nicht über ein aufgeflashtes Programm geändert werden sondern muss über die ISP-Schnittstelle programmiert werden.

BOOTRST Resetadresse
1 0x0000
0 Boot-Loader-Reset
„1“ bedeutet unprogrammiert, „0“ bedeutet programmiert

Externe Hardware-Bedingung

Sollte man bereits ein Programm auf den Controller gespielt haben welches keine Möglichkeit bietet, den Boot-Reset-Vector anzuspringen kann man sich über den HWB-Pin helfen. Standardmäßig ist die Fuse HWBE programmiert, dies bedeutet, dass der Bootloader mit Hilfe von PD7/HWB aktiviert werden kann. Das gelingt durch folgende Schritte: