ATmega328 - instalace zavaděče

24.04.2020 Arduino #atmega #arduino

Před programování procesoru ATmega328 je nutné nahrát zavaděč. Zde je návod jak na to pomocí Arduino UNO.


Každá deska Arduino UNO má mikrokontrolér ATmega328p. Je to mozek operací, bez něj by Arduino nebylo schopno dělat žádnou z věcí, které známe.

Znakem Arduina je to, že obsahuje vše na jedné desce, a tím poskytuje jednoduchý úvod do programování elektroniky. Deska obsahuje všechny doplňkové komponenty potřebné pro hladký chod čipu - včetně rezistorů, kondenzátorů, krystalů a regulátorů napětí. Disponuje tak někdy zbytečně velkým množstvím komponent, které ne vždy využijeme a celá deska je tak zbytečně robustní a mnohdy neskladná pro účely, které chceme realizovat. Samotná deska Arduino je primárně tvořena samotným procesorem a ten lze použít zcela samostatně, jen s opravdu nejnutnějšími součástmi. Abychom mohli procesor ATmega328 použít samostatně, musíme do něj nahrát zavaděč.

Samotný procesor se umístí na nepájivé pole a deska Arduino se použije jako programátor.

Co je ATmega328p?

Rodina čipů megaAVR byla vytvořena společností Atmel a později společnost Microchip Technology, která společnost Atmel v roce 2016 koupila. ATmega je vlajkovou lodí této řady a od samého začátku tvoří základ desek Arduino.

Chcete-li nainstalovat ATmega na nepájivé pole, budete potřebovat verzi DIP čipu. Ta umožní čip zasunout do středu nepájivého pole a tím tak mít přístupné všechny piny čipu pro zapojení dalších komponent.

Co dělá ATmega328p na Arduino UNO?

Z určitého hlediska je ATmega328p Arduino. Vaše sketche jsou uloženy ve vnitřní paměti a všechny pokyny v ní obsažené zvyšují a snižují napětí a načítají externí vstupy.

Co je bootloader?

Co je bootloader a proč je tak důležitý? Možná jste se s tímto termínem seznámili z vašeho stolního počítače. V tomto provedení je bootloader program, který se spustí, jakmile je stroj zapnutý a jeho úkolem je spustit operační systém. Ačkoli Arduino postrádá operační systém, stále má bootloader, což je vlastně malý kus softwaru, který umožňuje instalaci nového firmwaru na čip bez potřeby externího poskytovatele internetových služeb. Pokud na čipu není žádný zavaděč, neexistuje způsob, jak zavést nový firmware, což znamená, že každý zavaděč bude muset být nainstalován alespoň jednou pomocí externího poskytovatele internetových služeb.

Proč používat ATmega328 samostatně?

Proč se zabývat samostatným procesorem ATmega328, když deska Arduino již všechno obsahuje a má připravené k použití. Existuje několik důvodů:

  • Vaše potřeby mohou vyžadovat přizpůsobenou desku s více nebo méně funkcemi, než jaké jsou na standardní desce Arduino.
  • Na desce Arduino máte vytvořený prototyp a chcete ji používat v dalších projektech. Tím, že vytvoříte odzkoušený obvod jenom na procesoru si desku uvolníme a můžeme prototypovat dál.
  • Ukazuje se, že odlehčením obvodu pouze na nutné komponenty snížíte spotřebu.

Instalace zavaděče

Instalace mini-core

Balíček „MiniCore“ od společnosti MCUDude je hardwarový balíček, který přidává podporu pro řadu zařízení ATmega v arduino IDE, konkrétně:

  • ATmega8
  • ATmega48
  • ATmega88
  • ATmega168
  • ATmega328
  • ATmega328PB

Krok 1

Otevřete Arduino IDE a přejděte na předvolby. Ve spodní části okna je prázdné pole vedle položky „Správce dalších desek URL“. Zkopírujte následující adresu URL:

https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

additional-boards-manager-atmega328

Krok 2

Přejděte do správce desek, který je v nabídce Nástroje > Vývojová deska > Manažer desek. Zde najdete seznam desek, se kterými Arduino umí pracovat.

arduino-board-manager

Krok 3

Do vyhledávacího pole zadejte „minicore“ a zobrazí se příslušná položka. Budete si moci vybrat ze seznamu předchozích verzí, ale pokud nemáte na mysli konkrétní cíl, je nejlepší zvolit si nejnovější. Klikněte na 'install' a počkejte na dokončení. Poté zavřete okno správce desek.

minicore-on-boards-manager

Instalace ArduinoISP

Do desky Arduino UNO se musí nahrát programátor ISP. Je to velmi snadné. Stačí si otevřít vestavěné příklady v IDE Arduino. Soubor > Příklady > ArduinoISP > ArduinoISP. 

atmega328-sketch-examples-arduino-isp

Jedná se o standardní Sketch, takže jej nahrajte do desky Arduino UNO standardním způsobem.

Zapojení

Nyní připojíme hardware tak, aby Arduino UNO bylo připojeno k mikrokontroléru na nepájivém poli. Spolu s vodiči budete v ideálním případě potřebovat čtyři další komponenty, aby vše fungovalo. Jedná se o:

  • 10k rezistor.
  • Dva keramické kondenzátory 18-22pF.
  • Krystal 16 MHz nebo 8 MHz.

Rezistor slouží k odstínění vysokého napětí na resetovacím kolíku, kdykoli není aktivní. Tím se zabrání náhodnému resetování zařízení, kdykoli je na kolíku šum. Krystal a kondenzátory jsou tu proto, aby poskytovaly čipu informace o časování. I když je možné zavést bootloader bez těchto komponent a místo toho se spoléhat na interní hodiny 8MHz čipu, bývá s nimi menší problémy.

Vše se zapojí následujícím způsobem:

at328pbootloader

Závěrečné nastavení

Nyní se již provedou závěrečná nastavení, která jsou, ale velmi důležitá. Všechna nastavení se nacházejí v nabídce „Nástroje“.

V nabídce Nástroje přejděte do nabídky desek a vyberte položku ATmega328. Pokud používáte jiný čip, můžete svůj výběr odpovídajícím způsobem změnit.

step7

Vyberte krystal, který budete používat k hodinám. Jak bylo uvedeno, použijeme krystal 16 MHz. Pokud používáte krystal 8MHz, vyberte ten. Frekvence krystalu by měla být zapsána velkými písmeny na horní straně pouzdra.

crystal-16mhz-vs-8mhz-clock-settings

Nakonec nastavte programátora jako Arduino jako ISP. Jsi skoro hotový!

atmega328-programmer-avrisp

Vypalte Bootloader!

Nyní je čas vypálit bootloader. Použijte možnost „Vypálit zavaděč“ ve spodní části nabídky Nástroje. Pokud jste udělali vše správně a nic se nezměnilo, stačí to udělat jen jednou. Poté můžete odstranit propojovací dráty spojující kolíky 10-13 desky Arduino s nepájivým polem.

atmega328-burn-bootloader

Nyní je již procesor připraven k práci. Pro programování stačí využít FTDI USB UART pro nahrávání standardního progamu z Arduino UNO.Lze také doplnit napájení +5V. Tím bude procesor zcela nezávislým zařízením.

Pokud budete instalovat zavaděč do více procesorů je výhodné si udělat shield pro desku Arduino UNO. Schéma shieldu a výrobu desky naleznete v samostatném článku.