česky english Vítejte, dnes je sobota 23. listopad 2024

Vývojový kit EvB 4.3 a možnosti programování AVR ATMEGA

DPS 3/2011 | Články
Autor: Ondřej Pavelka

Vývojové desky (=kity) jsou velmi často používané při vývoji elektronických zařízení. Tvoří přechodné řešení mezi prvotní ideou elektronického zařízení a prvním prototypem výrobku. Vývojové kity jsou velmi často dodávány samotnými výrobci, zvláště, pokud součástka potřebuje např. specifický druh napájení nebo je velmi citlivá na polohu a rozmístění ostatních podpůrných součástek. Vývojové kity se dodávají velmi často k mikroprocesorům – Atmel, Microchip, Texas Instruments, dodávají je i výrobci integrovaných obvodů, velmi často např. k obvodům pro napájecí spínané zdroje, kde je kritické rozmístění okolních součástek pro správnou činnost zdroje.

Vývojové kity však také vznikají nezávisle na výrobci součástek, protože ne vždy výrobce poskytuje nejlepší řešení. A tak např. pro mikroprocesory AVR Atmel existují i neoficiální vývojové kity, jako např. Ethernut [1], Arduino [2], časopis Elektor má svůj vývojový kit s mikroprocesorem ATmega88 – ATM18 [3] – tento projekt je dokonce podporován televizním seriálem, ve kterém se postupně ukazují různé projekty řešené pomocí vývojové desky ATM18.

Co je to vývojový kit?

Vývojový kit je zařízení obsahující klíčovou součástku, např. řídicí obvod spínaného zdroje, mikrokontrolér, zákaznický obvod a dále potřebné podpůrné součástky pro programování a správnou činnost této klíčové součástky v drtivé většině dle doporučeného zapojení výrobcem. Vývojový kit může být zapojen také jako typická aplikace, pro kterou je klíčová součástka určena. V případě spínaných zdrojů, nebo VF a NF zesilovačů jsou na obvody a zapojení kladeny specifické nároky na provedení plošného spoje, a tak vývojový kit pomáhá i konstruktérovi porovnat a ověřit správný návrh kritické a důležité části plošného spoje v okolí klíčové součástky.

Vývojový kit AVR EvB rev. 4.3

Podívejme se teď podrobně na vývojový kit EvB 4.3 – obr. 1, který je pravděpodobně nejzdařilejší kompilací výhod všech vymyšlených (továrních i amatérských) vývojových kitů, neboť obsahuje v základní sestavě displej, tlačítka a spoustu dalších periferií, přičemž zůstává malý a flexibilní a nechává zcela na libovůli uživatele, jaký programovací jazyk zvolí – zda Basic (například BASCOM- AVR [4]), Pascal (např. AVRco [5]) nebo C (např. CodevisionAVR [6] nebo pod licencí GNU avrgcc – WinAVR [7]).

Obr. 1 Vývojový kit EvB 4.3

Obr. 1 Vývojový kit EvB 4.3

Konstrukce celého kitu – obr. 2 – umožňuje velice flexibilní zapojení a konstrukci projektů. Veškeré periferie jsou sice součástí desky, ale využívají se většinou pouze napájecí větve spojů. Jejich vstupy nebo výstupy jsou vyvedeny na samostatné piny, stejně jako nevyužité brány mikroprocesoru, takže zůstává zcela na libovůli konstruktéra, kam periferie připojí. Mikrokontrolér má pevně připojený pouze krystalový oscilátor 16 MHz, tlačítko RESET a Pull-Up rezistory pro I2C sběrnici o velikosti 10 ka napájení. Ostatní (volné) porty jsou volně dostupné na propojovacích pinech. To znamená, že i LCD display si lze připojit takovým způsobem, na který je konstruktér zvyklý.

Obr. 2 Moduly kitu EvB 4.3

Obr. 2 Moduly kitu EvB 4.3

Vlastnosti a osazení kitu EvB rev. 4.3 je následující:

  • Procesor AVR ATmega16, ATmega32 nebo ATmega644p, krystal 16 MHz
  • Obvod reálného času PCF8583
  • Paměť EEPROM AT24C02
  • Infračervený přijímač TSOP4836
  • Teplotní čidlo DS18B20
  • Převodník sběrnice RS485/RS232 – SN75176BP
  • Soket (patici) pro kartu MMC/SD
  • 5 tlačítek
  • 8 indikačních LED diod
  • 2 potenciometry pro nastavení napětí
  • 4× sedmisegmentový LED zobrazovač
  • 5× výkonový výstup s otevřeným kolektorem ULN2003 (3×0,5 A, 2×1 A)
  • buzzer (beeper) (samovybuzující zvukový měnič)
  • podsvětlený displej LCD 2×16 znaků (zelený, modrý)
  • držák baterie CR1616/1620
  • USB konektor
  • ISP programovací konektor.

Jak naprogramovat mikrokontrolér ve vývojovém kitu AVR EvB?

Samotný výrobce mikrokontrolérů AVR Atmel nabízí následující možnosti programování, které volíme podle dostupných programátorů a skutečných aplikací:

  • paralelní programování
  • ISP sériové programování pomocí ISP10
  • programování pomocí JTAG rozhraní
  • ISP programování pomocí emulace na signálech sériovém portu.

Vývojový kit EvB „rozšiřuje“ tuto možnost ještě o tzv. programování pomocí Bootloaderu. V široké praxi se setkáváme zejména s SPI a JTAG programátory, paralelní programování se realizuje nejčastěji pomocí originální desky STK500 (popřípadě profesionálních programátorů externích firem) a slouží zejména k záchraně mikrokontrolérů při špatném naprogramování tzv. Fuse – např. nastavení externího krystalu jako zdroje hodinového kmitočtu, i když žádný připojený není, což má za následek „zamrznutí“ a „nekomunikativnost“ mikrokontroléru při spojení po SPI, popřípadě vypnutí JTAG a SPI rozhraní, takže není jiné možnosti jak modifikovat FLASH paměť. Projděme si tedy zmiňované možnosti programování.

ISP sériové programování

Standardem pro mikrokontroléry AVR Atmel se staly konektory ISP6 a ISP10, které jsou podporovány jednak původní vývojovou deskou STK500, tak i všemi následnými klony programátorů. Zapojení pinů tohoto konektoru je na obr. 3. Samotný kit je osazen konektorem ISP10. Při použití ISP6 je nutné si vyrobit redukci, ale drtivá většina programátorů počínaje STK500 používá právě ISP10 rozhraní, takže si stačí vyrobit jednoduchý spojovací kabel sestávající z 10žilového plochého kabelu a dvou samořezných konektorů PFL10.

Obr. 3 Standardní rozhraní ISP6 a ISP10

Obr. 3 Standardní rozhraní ISP6 a ISP10

Při používání ISP způsobu programování musí vývojář dodržovat některé zásady, aby nemusel použít už jen paralelní programování. Pokud není využit externí krystal jako zdroj hodinového kmitočtu, nesmí se při programování nastavit krystal jako zdroj hodin. Okamžitě totiž přestává mikrokontrolér po SPI sběrnici komunikovat a pro opravu tohoto stavu je třeba připojit nějaký krystal k vývodům k tomu určeným. Taktéž po zapnutí externího RC článku lze pro oživení tento článek připojit. Samozřejmě, pokud máme k dispozici profesionální programátor s paralelním programováním, je náprava snadná.

Programování pomocí ladícího rozhraní JTAG

JTAG rozhraním jsou vybaveny téměř všechny mikrokontroléry AVR ATMEGA, s výjimkou typů ATmega8, ATmega8A, ATmega8515, ATmega8535 a klonů ATmegaX8, což jsou mikrokontroléry s nejnižším počtem IO portů. Zapojení signálů je na obr. 4. Rozhraní JTAG umožňuje na rozdíl od SPI rozhraní nejen program do mikrokontroléru nahrávat, ale hlavně ladit, a to i za běhu. Můžete tedy modifikovat obsah všech pamětí, číst obsah čítače instrukcí, krokovat program, zastavovat program na určité adrese popř. při čtení/zápisu z/na určitou adresu, měnit stav vstupně/výstupních portů a také všech registrů. Jedná se o mocný nástroj, potřebujeme však poněkud dražší a sofistikovanější zařízení.

Obr. 4 Signály JTAG rozhraní

Obr. 4 Signály JTAG rozhraní

I zde si musíme dát při programování FUSE informací pozor, aby nedošlo omylem k vypnutí JTAG rozhraní na mikrokontroléru. Používání JTAG adaptéru – obr. 5 – je spojeno s využitím AVR studia, což je SW nástroj dodávaný zdarma výrobcem mikrokontrolérů Atmel. Umožňuje i integraci C překladače známého jako WinAVR, popř. AVR-GCC, což je výkonný překladač jazyka „C“ pro mikrokontroléry AVR ATMEL pod licencí GNU.

Obr. 5 Jedno z mnoha provedení JTAG adaptéru

Obr. 5 Jedno z mnoha provedení JTAG adaptéru

Bootloader – „programátor“ chudého vývojáře

Tato možnost je obrovskou výhodou vývojového kitu EvB 4.3 – mikrokontrolér obsahuje od výrobce tzv. bootloader neboli zavaděč, který si dokáže pomocí speciálního programu na PC stáhnout do své paměti programový soubor. Nepotřebujete tedy žádný programátor a tím ani žádné další náklady. Omezením je rychlost sériového rozhraní a nemožnost pracovat s nastavením FUSE bitů. Pro naprostou většinu základních programů však tento způsob programování vyhovuje. U starších verzí byla mírnou komplikací nutnost stisknout tlačítko RESET na kitu, aby se spustil nahrávací proces. Současná verze vývojového kitu EvB má signál RESET mikrokontroléru připojený přes kondenzátor na signál DTR, takže ovládání je realizováno softwarově z nahrávacího programu na PC, odpadá tedy složitá manipulace. Pokud dojde ke smazání bootloaderu, je možné jej obnovit, k tomu je však potřeba již externí programátor např. STK500, popř. simulace ISP procesu pomocí signálů standardního sériového rozhraní, jak je uvedeno dále.

Simulace ISP rozhraní pomocí standardního sériového rozhraní

Jestliže požaduje uživatel kitu EvB změnit FUSE bity, stále není naprosto nutné použít externí programátor. Softwarový nástroj AVRDUDE, což je univerzální programátor pro AVR mikrokontroléry dokáže simulovat signály MISO, MOSI, SCK a RESET pomocí řídících signálů standardního sériového rozhraní, kterým je kit EvB vybaven. Stačí propojit příslušné řídící signály vyvedené na kontaktní pole umístěné pod mikrokontrolérem – označené jako TS, SR, CD a RI s příslušnými piny v konektoru ISP10 a můžeme programovat nebo nastavovat FUSE. Nevýhodou je nízká rychlost, na druhou stranu se jedná o nouzové nastavení mikrokontroléru, popř. obnovu omylem smazaného bootloaderu, pokud v blízkosti není externí programátor. Využití tohoto způsobu programování však není pouze na osazený mikrokontrolér, ale lze touto metodou programovat libovolný AVR mikrokontrolér s ISP rozhraním.

Článek seznámil čtenáře s moderním vývojovým prostředkem pro práci s mikrokontroléry AVR Atmel a ukázal možnosti jejich programování, které kit EvB nabízí. Volba správné metody programování a ladění aplikací závisí na použitém programovacím způsobu a zejména na vývojáři, protože je pouze na něm, jaká metoda mu vyhovuje a kterou si zvolí.

Vývojový kit si můžete objednat v internetovém obchodě na webové adrese http://shop.onpa.cz/. Využijte speciální akce pro čtenáře DPS-AZ magazínu – pokud do poznámky v objednávce vyplníte heslo „DPS-AZ02“, pak obdržíte zdarma sadu propojovacích kablíků, USB kabel a v případě objednávky nad 1399 Kč s DPH také slevu 100 Kč na programátor AVR USB STK500v2. V tomto případě (jakož standardně i jiné objednávky nad 1399 Kč s DPH) neplatíte poštovné ani balné.

Literatura

[1] Vývojový kit Ethernut, http://www.ethernut.de/
[2] Vývojový kit Arduino, oficiální stránka http://www.arduino.cc/
[3] Vývojový kit ATM18, podporovaný časopisem Elektor, http://www.elektor. de/jahrgang/2008/april/atm18-das-elektor- cc2-avr-projekt.399247.lynkx
[4] BASCOM-AVR, http://www.mcselec.com/
[5] AVRco Pascal, http://www.e-lab.de/AVRco/index.html
[6] CodevisonAVR, http://www.hpinfotech.ro/
[7] GNU avrgcc – WinAVR, http://winavr.sourceforge.net/