====== 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: * PD7/HWB mit GND verbinden * einen Reset auslösen (RESET kurz mit GND verbinden) {{ :artikel:atmega_u-howto:go2bootloader.png?direct&500 |}}