Jak přehrát bootloader desky Arduino s čipem ATmega 328PB – 2.část
V tomto článku budeme pokračovat v popisu postupu přehrání bootloaderu nejen na desce Arduino UNO s čipem Atmega 328PB. Ač je tato minisérie zaměřená hlavně na tuto variantu řídícího čipu, postup je při drobných úpravách použitelný i pro ty ostatní. Pokud nechcete pročítat tuto sérii článků zhlédněte mé video, kde vše pečlivě shrnuji. Toužíte-li po fotodokumentaci, koukněte na moji galerii, kde je vše přehledně seřazeno. První díl článku najdete na tomto odkazu.
Minule jsme skončili výčtem typů desek a jejich řídících čipů, které budou v tomto postupu figurovat. Začneme tím, že si otevřeme Arduino IDE. Následně pomocí USB kabelu připojíme k počítači naši programovací desku. To je ta, která nám nahradí externí programátor a zajistí přehrání bootloaderu v cílové desce.
Dále postupujeme v Arduino IDE. Otevřeme si nabídku „File -> Examples -> ArduinoISP -> ArduinoISP“. Otevře se nám nové okno s připraveným kódem, na kterém nemusíme nic měnit. Nyní musíme nastavit v Arduino IDE parametry desky, na kterou tento kód budeme nahrávat. Pro zjednodušení budeme celou dobu používat pro přístup k deskám knihovnu MiniCore. Jdeme tedy na „Tools -> Board -> MiniCore“ a zvolíme typ našeho řídícího čipu. V našem případě se jedná o ATmega328. Dále se pohybujeme opět v nabídce „Tools“ a zvolíme nabídku „Variant“. Zde v tuto chvíli vybereme „328P / 328PA“. Poslední potřebný parametr je „Port“. Ten ale bývá již ve výchozím stavu nastaven správně, dle dostupných možností našeho počítače. Teď už jen v levém horním rohu klikneme na tlačítko „Upload“ a počkáme až se kód nahraje do čipu desky. Pokud chceme, můžeme ještě předtím nechat kód zkompilovat tlačítkem „Verify“. V tomto případě jsem to vynechal, protože se jedná o předpřipravený kód.
Ještě,než budeme pokračovat v dalších krocích, doporučuji v nabídce „Preferences“, tedy tam, kam jsme vkládali URL adresu projektu „MiniCore“ upravit určité nastavení. Zhruba v polovině tohoto okna se nachází popisek „Show verbose output during“ a vedle něj jsou dvě zaškrtávací políčka. Zaškrtneme jak políčko „compile“, tak políčko „upload“. Tím se nám zobrazí podrobné informace o těchto procesech, což může být užitečné při hledání případných chyb. Teď můžeme pokračovat v propojování desek.
Existují dva způsoby, jak pro přehrání bootloaderu propojit programovací a cílovou desku. Oba jsou zaručeně použitelné pro varianty Uno, Nano i Mega.
První způsob: propojení desek přes piny
Pro tento způsob potřebujeme celkem šest breadboard vodičů typu samec – samec. Piny pro zapojení zvolíme dle konkrétních typů desek, které máme. Jejich čísla při různých kombinacích uvádí tabulka níže. Pro názornost se můžete podívat také na schéma reálného zapojení.
Druhý způsob: propojení desek přes ICSP header
Tento způsob zapojení jsem použil ve svém vlastním postupu. Funkčně je zcela totožný jako ten předcházející. Potřebujeme k němu pět breadboard vodičů typu samice – samice a jeden typu samec – samice. Osobně toto zapojení preferuji, protože je velmi jednoduché a není toho na něm moc, co splést. Propojujeme totiž pouze identické piny jak na programovací tak na cílové desce. Jediný rozdíl je v pinu reset na cílové desce. Ten musíme připojit na pin číslo deset na desce programovací. Na podrobnosti se můžete podívat v tabulce výše a schématech níže.
Teď, když máme desky správně propojené, můžeme pokračovat na samotné přehrání bootloaderu. V programovací desce máme již nahraný potřebný kód. V tuto chvíli si tedy v záložce „Tools“ musíme nastavit parametry naší cílové desky. Jako „Board“ využijeme opět „MiniCore“ a nastavíme čip „ATmega328“. Tentokrát nastavíme variantu čipu „328PB“. Postupujeme dále do záložky „Programmer“ a zvolíme možnosz „Arduino as ISP“. Port bychom měli jíž mít defaultně nastavený. Potřebné parametry pro komunikaci s deskou jsou tedy nastavené a zbývá už jen kliknout na volbu „Burn Bootloader“.
Jestliže jsme vše správně nastavili a propojily, měli bychom vidět jen sérii blikání diody na cílové desce. Ve spodním poli pro výstup „Verbose output“ by se nám měla na závěr zobrazit hláška o úspěšném nahrání bootloaderu. Tím máme prakticky hotovo. Abychom si funkčnost desky vyzkoušeli můžeme si do ní nahrát třeba jeden z příkladů kódu, které jsou ve výchozím stavu dostupné v Arduino IDE. Velmi užitečný je třeba kód „Blink“, který nám rozbliká diodu připájenou na desce. Pokud se nám při nahrání nezobrazí žádná chyba a dioda se rozbliká, máme jistotu, že jsme bootloader nahráli správně.
To je k tomuto tématu ode mě zatím vše. Přeji mnoho úspěchů nejen při opravách desek Arduino a budu se na vás těšit někdy příště. Jen připomínám, že první díl tohoto článku najdete na tomto odkazu.