Instalace bootloaderu je prvním krokem k oživení vašich Arduino projektů. Jedná se o software, který vám pomůže často snadno nahrávat náčrty Arduino na desku bez potřeby speciálního programovacího vybavení.
I když to může znít jako raketová věda, ve skutečnosti je to jednodušší, než si myslíte – dokonce i pro začátečníky. Ukážeme vám, jak snadno nainstalovat (nebo přeinstalovat) bootloader na vaši desku Arduino v několika jednoduchých krocích.
Ale nejprve, co přesně je bootloader na desce Arduino?
Co je to bootloader?
Zavaděč Arduino je malý program, který je uložen v energeticky nezávislé paměti desky, který se spustí při každém zapnutí desky, nahrání nového kódu nebo resetu. Kdykoli je program bootloader spuštěn, inicializuje hardware desky a poté načte hlavní skicu nebo program, který je uložen ve flash paměti desky.
Stojí za zmínku, že všechny desky Arduino se dodávají s předinstalovaným bootloaderem od jejich výrobců. Někdy můžete najít desky s vadnými bootloadery hned po vybalení. To se však stává zřídka.
Proč používat bootloader?
Existuje několik situací, kdy může být použití zavaděče Arduino užitečné. Pokud jste například začátečník na platformě Arduino, použití bootloaderu může usnadnit a zrychlit nahrávání nových programů na vaši desku. Je to proto, že k nahrání kódu nepotřebujete používat externí programovací zařízení, jako je programátor nebo převodník USB na sériový port.
Pokud pracujete na projektu, který vyžaduje časté aktualizace kódu, bude to pro vás velmi užitečné. V tomto případě vám použití bootloaderu může ušetřit čas a námahu, protože nový kód jednoduše nahrajete na desku, aniž byste museli používat externí programovací zařízení.
Navíc, pokud pracujete na a projekt, který vyžaduje Arduino být ve specifickém stavu, když je zapnutý, jako je například spuštění konkrétního programu, pak může být užitečné použít bootloader. Bootloader umožňuje nastavit počáteční stav desky tak, že po zapnutí automaticky spustí požadovaný program.
Konečně poskytuje způsob, jak obnovit Arduino, pokud se hlavní skica poškodí nebo se jinak nepodaří spustit.
Proč chybí můj bootloader?
Mohou existovat čtyři možné důvody, proč může vaše deska potřebovat nový bootloader:
- Žádný předinstalovaný bootloader: Je docela běžné mít mnoho samostatných projektů ATMEGA328P, kde připájete svůj čip na PCB a náhodou čip smažíte. Je tedy možné, že jste desku vyměnili za čip bez předchozí instalace bootloaderu.
- Vyměněn bootloader: Svůj bootloader jste mohli nahradit upraveným bootloaderem třetí strany, který by mohl být poškozen.
- Poškozený bootloader: Toto je nejméně pravděpodobný scénář. V některých případech však může dojít k poškození flash paměti Arduino.
- Rozšířená paměť: Pokud jste nahradili (flashovali) celý bootloader svou aplikací, abyste si užili zbývajících 2K programové paměti, váš bootloader rozhodně chybí.
Zde je to, co musíte udělat.
Instalace/přeinstalace zavaděče Arduino
Mikrokontroléry se obvykle programují před připájením na desku plošných spojů. To se obvykle provádí pomocí In-System Programming (ISP), jako je In-Circuit Serial Programming (ICSP), které umožňuje programování mikrokontroléru pomocí externího programátoru. Mnoho výrobců mikrokontrolérů, jako je Atmel a Microchip, poskytuje pro tento účel na svých deskách ISP header.
Použití jiné desky Arduino
Abyste mohli flashovat bootloader na mikrokontroléru ATmega328, musíte použít hlavičku ICSP na desce, než budete moci nainstalovat bootloader pomocí druhé desky jako ISP programátor.
Spusťte Arduino IDE, přejděte na ArduinoISP jak je znázorněno níže, a nahrajte ukázkový kód na desku, kterou hodláte použít jako programátor. (Postupujte ve výukovém videu pro hardwarové připojení).
Kód by měl vypadat takto, abyste věděli, že jste na správné cestě.
z Nástroje kartu, přejděte na Programátor pak klikněte na Arduino jako ISP Jak je ukázáno níže.
Nakonec z Nástroje znovu klepněte na Vypálit bootloader jak je znázorněno.
Jakmile je proces dokončen, cílová deska je nyní připravena k programování.
Použití specializovaného programátora
Pro tento druh instalace je k dispozici mnoho programovacích zařízení AVR. Jednou dobrou možností, kterou můžete vyzkoušet, je AVR Pocket Programmer (pouze Windows) založený na Dicku Streeflandovi USBtiny a Limor Fried's USBtinyISP. Nabízí jednodušší způsob programování mikrokontrolérů AVR, jako jsou ty, které se nacházejí na deskách Arduino. Kromě skutečnosti, že je napájen připojením USB, je to nejlepší volba, protože je kompatibilní s řadou programovacích jazyků a softwaru, díky čemuž je univerzálním nástrojem pro každého Uživatel Arduina.
Můžete také vyzkoušet další možnosti, jako je oficiální programátor Atmel-ICE pro mikrokontroléry ARM – zvláště pokud nepoužíváte Windows.
Připojte desku Arduino k programátoru a flashujte bootloader. Podívejte se na tento videonávod níže.
Proces by měl být jednoduchý a neměl by trvat déle než 20 sekund.
Poznámka: Před pokusem o tuto metodu by měla být cílová deska správně zapnuta. V opačném případě nebudete moci flashovat .hex soubor do vašeho cíle.
Pro pokročilé uživatele existuje složitější způsob instalace bootloaderu pomocí příkazového řádku. Není nutné se dostat do této fáze, ale dává vám možnost upravit nebo překompilovat kód, abyste získali více přizpůsobené prostředí.
Prvním krokem v procesu je konfigurace pojistkových bitů, které jsou součástí čipu AVR, a nastavení ovládání, jako je použití externího krystalu. K nastavení pojistkových bitů použijte následující příkaz:
avrdude-b 19200 -Cusbtiny-pm328p-proti-E-Uvypouštět:w:0x05:m-Uhfuse:w:0xD6:m-Upojistka:w:0xFF:m
Po nakonfigurování pojistkových bitů je dalším krokem přenos zkompilovaného .hex souboru na cílovou desku a nastavení zámkových bitů. To vám umožní spustit program na desce. Ujistěte se, že jste ve stejném adresáři jako optiboot_atmega328.hex soubor před zadáním tohoto příkazu:
avrdude-b 19200 -Cusbtiny-pm328p-proti-E-Ublikat:w:hexfilename.hex-Uzámek:w:0x0F:m
Poznámka: Tyto příkazy jsou pro Arduino Uno. Budete muset zrefaktorovat pojistkové bity pro vaši desku, která se nachází v board.txt soubor a vyladit Parametry čísla dílu AVRDUDE i pro ně pracovat.
Co budete dělat s Arduinem dále?
Zavaděč Arduino je to, co usnadňuje programování, a to i pro začátečníky. Doufejme, že nyní můžete nahrát své vlastní náčrty do Arduina a obnovit bootloader pro budoucí projekty Arduino DIY.