Oprava Arduino bootloaderu

Může se stát, že tvoje Arduino deska po spoustě přeprogramování přestane komunikovat a pokusy o nahrání softwaru do desky skončí vždy chybou. Na vině může být poškozený bootloader. V našem příspěvku si probereme jaké jsou možnosti opravy.

Pro přeprogramování bootloaderu nelze použít stávající USB převodník a musíme zvolit přímé programování pomocí ISP.

Existují v podstatě dvě možnosti:

  1. pro přeprogramování použijeme některý z ISP programátorů, např. tento: ISP programátor pro ATMEL + adaptér z 10pin na 6pin konektor.
  2. jako programátor použijeme jinou Arduino desku, např. Arduino UNO

1. Obnova bootloaderu pomocí ISP programátoru

Tato varianta je nejjednodušší. Stačí nainstalovat ovladače programátoru, připojit ho do konektoru ICSP na Arduino desce a přeprogramovat bootloader.

Pozice ICSP konektoru je vyznačena na obrázku v sekci 2 – Obnova bootloaderu pomocí druhé Arduino desky.

Po nainstalování programátoru spusť Arduino IDE a menu Nástroje v položce Programátor vyber svůj nainstalovaný programátor. V našem případě máme USBasp.

Jako další v menu Nástroje – Vývojová deska vyber typ desky, na ktré chceš přeprogramovat bootloader. V našem případě Arduino Uno.

Pak již stačí v menu Nástroje – Vypálit zavaděč nahrát nový bootloader do desky.

Po skončení nahrávání bootloaderu by již mělo být možné nahrávat software pomocí USB převodníku integrovaného na desce.

Pokud ani po přehrání bootloaderu programování desky přez integrovaný USB převodník nejde, nebo nahrávání bootloaderu přes ISP programátor končí chybou, bude nejspíše vadný mikrokontroler, nebo USB převodník na vývojové desce. V tom případě obnova bootloaderu desku neopraví.

2. Obnova bootloaderu pomocí druhé Arduino desky

Pokud nemáš k dispozici některý z ISP programátorů pro mikrokontrolery Atmel, můžeš jako programátor použít jinou funkční Arduino desku.

Nejdříve je potřeba do funkční desky, která bude fungovat jako programátor, nahrát správný software.

V menu Arduino IDE Soubor – Příklady – ArduinoISP vyber možnost ArduinoISP. V novém okně se otevře zdrojový kód, který z Arduino desky udělá ISP programátor. Kód není potřeba nijak upravovat a stačí ho jen obvyklým způsobem nahrát do desky.

Potom se propojí deska „programátoru“ s deskou, kam budeš nahrávat nový bootloader.

Arduino deska MOSI MISO SCK Napěťová úroveň
Uno nebo Duemilanove 11 nebo ICSP-4 12 nebo ICSP-1 13 nebo ICSP-3 5V
Mega1280 nebo Mega2560 51 nebo ICSP-4 50 nebo ICSP-1 52 nebo ICSP-3 52 nebo ICSP-3 5V
Leonardo ICSP-4 ICSP-1 ICSP-3 5V
Due ICSP-4 ICSP-1 ICSP-3 3,3V
Zero ICSP-4 ICSP-1 ICSP-3 3,3V
101 11 nebo ICSP-4 12 nebo ICSP-1 13 nebo ICSP-3 3,3V
MKR Family 8 10 9 3,3V

Zapojení ICSP konektoru na desce:

Pro ukázku schéma propojení dvou Arduino UNO desek:

Po propojení desek vyber v Arduino IDE menu Nástroje – Programátor typ programátoru Arduino as Programmer.

Dál už je postup stejný, jako u varianty 1.

Další schémata zapojení a další informace na stránkách arduino.cc: Arduino as ISP and Arduino Bootloaders