2. Vývojové nástroje

Pro vytváření programů pro mikrokontroléry AVR budeme potřebovat tři základní věci:

  1. Testovací hardware a programátor.

  2. Editor zdrojového kódu neboli vývojové prostředí IDE.

  3. Toolchain pro AVR, který obsahuje sadu nástrojů, jako překladač, linker, debugger a knihovny.

2.1. Hardware

Pro testovací účely byl zvolen mikrokontrolér ATtiny3217. Jedná se o mikrokontrolér 1-série, který má i přes svou velmi nízkou cenu (asi 25 Kč) velmi zajímavé možnosti. Pokud jste již pracovali se staršími mikrokontroléry AVR, tak určitě víte, že slovo "tiny" odpovídalo možnostem těchto součástek (periferie, paměť). U mikrokontrolérů nové generace odpovídá toto slovo již jen fyzickým rozměrům součástky. Nové ATtiny totiž nabízejí opravdu velmi zajímavé možnosti v porovnání se svými předchůdci.

Nevýhodou ATtiny3217 je jejich pouzdro. Vyrábějí se v pouzdrech SOIC a VQFN. Pouzdro SOIC lze při troše šikovnosti použít i při domácí výrobě DPS, avšak pouzdro VQFN už jen velmi obtížně. ATtiny3217 byl však vybrán s ohledem na počet dostupných pinů a velikost paměti.

Tabulka 1. Základní vlastnosti ATtiny3217

Počet vývodů

24

SRAM

2 KB

Flash

32 KB

EEPROM

256 B

Maximální taktovací frekvence

20 MHz

Čítač/Časovač

4

USART

1

SPI

1

TWI (I2C)

1

ADC

2

DAC

1

CCL (Configurable Custom Logic)

1

Event Systém - počet kanálů

6

Přehled dalších periferií naleznete na níže uvedeném obrázku. Detailnější informace naleznete samozřejmě v datasheetu. Všechny důležité periferie budou taktéž popsány v následujících kapitolách v tomto miniseriálu o programování mikrokontrolérů AVR.

block
Obrázek 5. Blokové schéma tinyAVR 1-série

Abychom se nemuseli trápit s vytvářením desky plošných spojů, použijeme pro testovací účely již vytvořenou desku ATTINY3217 CURIOSITY NANO EVALUATION KIT. Cena této desky je zhruba 250 Kč, což není mnoho. Dejte si však pozor při objednávání této desky na výši poštovného. Někteří prodejci účtují při malých objednávkách dost vysoké poštovné. Je proto potřeba zvolit vhodného dodavatele.

curiosityl
Obrázek 6. Curiosity Nano Evaluation Kit

Zakoupením této desky získáme nejen hotový prototyp, ale hlavně i programátor, který lze po menší úpravě využít i pro jiné součástky využívající rozhraní UPDI. Odpadnou tak mnohé starosti, čím součástku naprogramovat. Tuto desku připojíme k počítači pomocí USB a máme hotovo.

Pravdou sice je, že se nejedná o nějak převratnou vývojovou desku. Obsahuje vlastně pouze jedno tlačítko a LED diodu, nicméně vyvedené piny mikroprocesoru na hřebenový konektor nám umožní připojovat další součástky dle libosti. Vše důležité o této desce naleznete v manuálu na stránkách Microchipu.

2.2. MPLAB X IDE

Pro vytváření zdrojových kódů programu budeme potřebovat nějaký editor. V podstatě lze použít jakýkoli textový editor, ale pokud použijeme prostředí určené přímo pro AVR, práci si výrazně ulehčíme. Pokud používáte Visual Studio Code, lze nainstalovat rozšíření MPLAB Extension Pack. V tomto seriálu však budeme používat IDE (Integrated Development Environment – integrované vývojové prostředí) od Microchipu MPLAB X IDE.

Toto prostředí je zdarma a lze ho stáhnout zde. Lze ho nainstalovat na různé operační systémy a instalace není nijak náročná. Instalátor vás provede celým procesem. Po odsouhlasení podmínek se dostanete k následujícímu oknu:

setup

Zde doporučuji zrušit instalaci MPLAB X IPE, které je určeno pro programování součástek. Dále zrušte instalaci pro 16 a 32bitové součástky, pokud neplánujete tyto součástky používat. V tomto seriálu je používat nebudeme a ušetříte tak nemalý prostor na disku.

Dalším nastavením, které je doporučeno, je instalace ovladačů. Ušetříte si tak případné problémy s komunikací. Zde tedy zvolíme tlačítko "Instalovat".

ovladace

V posledním okně budete dotázáni na instalaci překladače XC8 a dalších. V tomto seriálu budeme používat avr-gcc překladač, takže instalaci XC překladačů zrušíme. Pokud však budete chtít používat XC8 překladač, určitě nic nezkazíte, ale rozhodně zrušte instalaci ostatních překladačů.

xc8

Po stisknutí tlačítka "Finish" se zobrazí hlavní okno MPLABu. Nyní již můžete připojit desku Curiosity Nano pomocí USB kabelu a mělo by dojít k navázání komunikace mezi deskou a vývojovým prostředím.

mplab

2.3. Toolchain pro AVR

Poslední věc, kterou je potřeba udělat, je instalace překladače, respektive všech potřebných nástrojů tzv. toolchainu. Tento toolchain stáhneme zde. V sekci download vybereme požadovanou platformu a vyčkáme na stažení. Jedná se o komprimovanou složku, kterou je potřeba rozbalit. V této ukázce jsem zvolil umístění přímo ve složce disku C, ale můžete zvolit i jiné umístění. Nyní musíme vývojovému prostředí sdělit, kam jsme tuto složku umístili.

Přejděte do MPLABu a v horním menu zvolte Tools → Options.

tools

V novém okně zvolte Embedded a poté záložku Build Tools a stiskněte tlačítko Add…​.

options

Nyní budete vyzváni k zadání bázové složky vašeho toolchainu, tedy cesty ke složce bin.

add

Pomocí tlačítka Browse vyberte složku bin právě rozbaleného toolchainu a zvolte Open. V mém případě se jedná o cestu C:\avr8-gnu-toolchainwin_32_x86_64\bin.

base

Tímto výběrem by mělo dojít k nastavení všech požadovaných údajů (cest). Poté stiskněte tlačítko Apply a OK. Nyní již zbývá jen restartovat MPLAB, tedy zavřít a znovu spustit MPLAB. Tím je vše nastaveno a připraveno k použití.

2.4. První program

Pro ověření, zda vše funguje jak má, vytvoříme náš první program. Pokud nemáte spuštěný MPLAB, učiňte tak a připojte desku Curiosity. Poté musíme založit nový projekt volbou File → New Project z hlavního menu. Tím se otevře nové okno.

new

Zde zvolíme kategorii Microchip Embedded a v pravém okénku zvolíme Application Project(s). Stiskem tlačítka _Next se přesuneme na volbu mikrokontroléru.

device

Zde zvolte rodinu mikrokontroléru, tedy 8-bit AVR MCUs (XMega/Mega/Tiny/AVR). Součástku vyberte _ATtiny3217. Dále vyberte Tools ATtiny3217 Curiosity Nano. Pokud nemáte připojenou vývojovou desku, tento tool neuvidíte. V tomto případě ponechte volbu No Tool. Dalším stiskem tlačítka Next budete vyzváni k volbě překladače.

compilator

Zvolíme náš kompilátor AVR-GCC. Posledním krokem pro založení projektu je zvolit jeho název a místo uložení. Ostatní nastavení ponechte ve výchozím stavu.

name
I když současné systémy pracují bezproblémově s českou diakritikou, tak se v názvech projektů a souborů českým znakům a mezerám raději vyhněte. Ušetříte si případné problémy při kompilaci (překládání) programu. To platí pro celou cestu k souborům. Obzvlášť pozor na jméno uživatele v cestě - vlastní nemilá zkušenost.

Nyní byste měli vidět založený projekt v levé části MPLABu.

projekt

Nás v tuto chvíli nejvíce zajímá složka Source Files, do které budeme vkládat naše zdrojové soubory. Jak si můžete sami vyzkoušet, je tato složka prázdná. Abychom mohli nějaký kód vytvářet, musíme zdrojový soubor do složky vložit. Klikněte pravým tlačítkem myši na složku Source Files a poté na New → Other.

file

Dále rozbalte složku Microchip Embedded, zvolte AVR Compiler a v pravém okně vyberte main.c a stiskněte Next.

main

V dalším okně přejmenujte soubor na main a klikněte na Finish.

rename

Konečně je vše připraveno a můžeme začít psát zdrojový kód. Ze složky Source Files otevřete soubor main.c a upravte ho dle výpisu níže.

#define F_CPU (3300000UL)
#include <avr/io.h>
#include <util/delay.h>

void main(void) {
    PORTA.DIRSET = PIN3_bm;         // LED0 on pin PA3

    while(1) {
        PORTA.OUTCLR = PIN3_bm;     // Switch LED on
        _delay_ms(500);             // Delay 500 ms
        PORTA.OUTSET = PIN3_bm;     // Switch LED off
        _delay_ms(500);             // Delay 500 ms
    }
}

V tuto chvíli si nebudeme vysvětlovat, jak program funguje. Jen si řekneme, že pomocí tohoto programu rozblikáme LED diodu na vývojové desce s frekvencí 1 Hz. Vaše okno MPLABu by mělo vypadat nějak takto.

build

Pokud je tomu tak, stiskněte v nástrojové liště tlačítko s ikonou kladívka. Tím dojde k překladu projektu. Vše by mělo proběhnout bez problémů. Informaci o průběhu překladu uvidíte ve spodní části MPLABu v okně Output.

Jestliže máte připojenou vývojovou desku, můžete program nahrát do ATtiny. To provedete pomocí tlačítka se zelenou šipkou (směrem dolů) v nástrojové liště.

load

Výsledek by se měl projevit okamžitě. Žlutá LED dioda bude blikat v sekundových intervalech.

Pokud jste se dostali až do této fáze, gratuluji. Tím jsme dokončili základní nastavení všech nástrojů potřebných pro programování. Příště se již budeme věnovat programování jako takovému a začneme používat periferie mikrokontroléru.

Doufám, že bylo vše popsáno srozumitelně a nenarazili jste na vážnější problémy. Pokud ano, napište na e-mail inbox@cbajt.cz, pokud ne, tak můžete napsat také. Stejně tak, pokud máte nějaký námět na konstrukce, které bychom mohli zde realizovat, pošlete návrh.