Elektrotechnika

Jak přehrát bootloader desky Arduino s čipem ATmega 328PB – 2.část

25.5.2025 Upraveno 25.5.2025
spravce

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.

Připojení desky Arduino k PC

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.

Kód ArduinoISP

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.

Povolení Show verbose output

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í.

Čísla pinů pro propojení desek Arduino

Zapojení desek Arduino přes digitální piny

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.

Schéma ICSP headeru desek Arduino

Propojení desek Arduino přes ICSP header

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“.

Klikneme na 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.

Pro vstup do diskuze se prosím přihlašte