Začínáme s Atxmega

Proč Atxmega ?

Předpokládám, že většina z vás přichází z platformy AVR a má předchozí zkušenosti s čipy Atmega nebo Attiny. K Atxmegám vás nejspíš žene zvědavost nebo potřeba většího výpočetního výkonu, případně vidina dokonalejších periferií. Atxmega je z mého pohledu jakýsi kompromis na cestě od AVR k ARM. A každé větší rozhodnutí je právě o těch kompromisech. Takže se na ně ve stručnosti podívejme. Dle mého názoru hrají při rozhodování největší roli následující faktory:

Proč tedy volit Atxmega ? Je to prosté, mají výhodný poměr mezi složitostí a výkonem. Chcete-li se naučit jen minimum věcí a získat za to co největší možnosti, je vhodné přejít z Atmegy na Atxmegu. To je všechno. Žádný další důvod neznám. Po dvouleté zkušenosti s STM32 mi ale tento důvod začal pro hobby aplikace připadat jako ten nejdůležitější.

Ochutnávka možností

Abych vás namotivoval lehce naznačím pár funkcí, které mají Atxmegy navíc proti Atmegám. Počítají rychleji, a umí běžet až na 32MHz. Mají více USARTů a snadněji se jim konfiguruje komunikační rychlost (není třeba volit speciální krystal). Mají Event systém, který může rychle a bez zásahu PC distribuovat informace mezi periferiemi. Dokáže dobře realizovat časové souslednosti různých události. Mají DMA (přímý přístup do paměti). Periferie tedy mohou svá data přenášet do nebo z paměti bez účasti procesoru. Například spustíte AD převodník a necháte ho změřit 10000 vzorků a on je s pomocí DMA sám uloží do paměti a řekne vám až je hotovo a jádro se mezi tím může zabývat jinou činností. Mají DA převodník, můžete tedy přímo ovládat analogové periferie a generovat napěťové průběhy. Mají větší množství mnohem vybavenějších čítačů / časovačů. Umí generovat PWM s rozlišením až 4ns, obsahují mnoho vstupních i výstupních kanálů, lze je různě kaskádovat, spouštět, resetovat a mazat. A to jsem zdaleka neřekl všechno, ale to bychom tu byli příliš dlouho. Postupme tedy dále.

Programátory a debuggery nejen pro ATXmega

Většina návodů pro mikrokontroléry začíná blikáním LEDkou. A ani my nebudeme vyjímkou. Smyslem takového návodu většinou není naučit uživatele blikat LEDkou, ale sprovoznit celý vývojový řetězec od překladu programu až k jeho nahrání do čipu. A tím jak nahrát program do čipu (a případně jak ho debugovat) se budeme zabývat právě zde. Jestliže chcete začít programovat mikrokontroléry ATXmega, nejspíš použijete některý z níže uvedených programátorů a proto není od věci udělat si menší přehled toho co je k tomuto účelu k dispozici. Nečekejte nějaký vyčerpávající kompletní návod. Budu se snažit vás jen uvést do problematiky, tak abych vám usnadnil výběr nástroje. A protože se vývojové nástroje a mikrokontroléry různě prolínají, tak čas od času odbočím s nějakou poznámkou i k AVR nebo SAM.

Programátory a debuggery

Programátorů a debuggerů existuje celá řada. Já se přirozeně nebudu věnovat všem, ale ve stručnosti zmíním ty se kterými mám nějakou zkušenost. Na obrázku a jsou ty kterým se budu věnovat. Vyjmenuji je zleva: AVR PROG MKII, AVR-ISP-MKII (Olimex), AVR Dragon, ATMEL-ICE PCBA, ATMEL-ICE. Stručně si teď povíme silné i slabé stránky každého z nich, včetně orientační ceny, protože ta bude pro bastlíře docela důležitým faktorem. Ještě než se dám do rozebírání jednotlivých nástrojů, zrekapituluji ve zkratce rozdíl mezi programátorem a debuggerem. Programátor vám umožňuje pouze zapisovat/číst/mazat paměti čipu (ať už flash kde je samotný program nebo EEPROM kde jsou data). V případě rodiny AVR ještě měnit FUSES a LOCK bity. Oproti tomu Debugger vám umožňuje krom těchto operací také "debugovat" program. To znamená krokovat program, nechat ho běžet, zastavovat, číst a měnit obsah RAM, sledovat a měnit obsah všech registrů a proměnných, používat breakpointy a mnoho dalšího. Je to tedy nástroj pro ladění programu.


Obrázek a - zleva: AVR PROG MKII, AVR-ISP-MKII (Olimex), AVR Dragon, ATMEL-ICE PCBA, ATMEL-ICE

AVR PROG MKII

Jedná se o programátor (nelze s ním tedy debugovat), který už bohužel v ČR není k dostání. Jádrem je AT90USB162 a v principu by ho tedy neměl být problém zreplikovat. Na toto téma existuje na webu mnoho návodů (třeba zde). Programátor zvládá rozhraní ISP (běžné Atmega a Attiny), TPI (miniaturní Attiny) a PDI (Atxmega). Na mé verzi byl bohužel malý bug a hodnoty dvou rezistorů byly nevhodně zvolené. Musel jsem proto udělat malou úpravu a změnil jsem rezistor 10k za 100R (viz obrázek b). Firmware programátoru je potřeba volit podle toho v jakém prostředí pracujete. Výrobce dává na svých webových stránkách k dispozici firmware pro práci s Atmel studiem, AVR studiem, AVRDUDE, BASCOM (a možná i další). Firmware je možné měnit s pomocí programu FLIP a návod je na stránkách výrobce. Programátor umožňuje pracovat na napětí 5V nebo 3.3V a je z něj možné cílovou aplikaci i napájet. Většinu prací to usnadňuje, ale programovat návrhy pracující třeba na 1.8V nebude bezpečné (nebo to bude přinejmenším komplikované). S tímto úskalím se ale setkáte u většiny levnějších programátorů. V Polsku se dá sehnat mezi 400-500kč. Osobně jsem ho testoval a používal na AVR studiu 4.


Obrázek b - nutná úprava hodnoty rezistoru (upravit by nejspíš potřebovaly oba)

AVR Dragon

AVR Dragon je programátor a debugger. Programovat umí ISP, HVSP, PP, PDI, aWire a JTAG. Rozhraní aWire neznám, takže se mu nebudu věnovat. HVSP a PP (paralelní programování) využijete leda v situaci kdy si špatnou volbou fuses zablokujete procesor. K debugu slouží rozhraní JTAG, kterým je možné programovat i debugovat některé ATXmegy ale také spoustu čipů řady Atmega. Dále k debugu slouží rozhraní PDI, debugWIRE (Attiny a Atmega) a aWire. Dragon je citlivý na hrubé zacházení, takže aplikace jako různé spínané měniče řízené Atmelem a podobné záležitosti z jeho portfolia raději vynechte. Při hrubším zacházení jsem na něm zničil analogový přepínač. Naštěstí byla jeho náhrada k dostání asi za desetikorunu. Ale výměna není kvůli rozměrům úplně triviální. Pokud pracujete na Atmegách nebo plánujete pracovat s Xmegami, měl by vám na většinu aplikací stačit. Bohužel nepatří k nejlevnějším variantám. Na Farnellu ho seženete za 1340,- bez DPH (1620,- s DPH). Osobně jsem ho používal s Atmel studiem 7 a AVR studiem 4 s rozhraním JTAG vcelku spokojeně. S PDI rozhraním bývají potíže, takže s ním lze programovat a debugovat Atxmegy pouze s JTAG rozhraním. V dnešní době bych po něm asi nesáhnul, pokud bych vyloženě nepotřeboval HVSP nebo paralelní programování.

ATMEL-ICE

ATMEL-ICE je asi nejsilnější nástroj, který jsem měl na programování Atmelů k dispozici. Umí programovat i debugovat Tiny, Megy, Xmegy, SAMy (ARMy) i AVR32. V podstatě celé portfolio Atmelů. Pracovat s ním můžete v Atmel studiu (nikoli však v AVR studiu). Jak je na tom spolupráce s AVRDUDE netuším. Vzhledem k tomu že jde o debugger, tak ani neočekávám, že ho budete chtít provozovat s AVRDUDE (které slouží pouze k programování, nikoli k debugování). Koupit se dá v několika provedeních. Nejlevnější z nich je očesaná verze ATMEL-ICE PCBA. V té dostanete do ruky pouze holé zařízení bez krabičky a bez kabelu. Konektor má "nevhodnou" (rozumněj debilní) rozteč (viz obrázek e). Vy jste asi zvyklí na rozteč vývodů 2.54mm (vpravo) ale na ATMEL-ICE je rozteč 1.27mm. Atmel prodává redukci (káblík opatřený na jednom konci konektorem s malou roztečí a na druhém s velkou roztečí), ale zaplatit by jste za něj museli 600,- bez DPH. Předpokládám, že za takových okolností si budete chtít vyrobit kabel svépomocí. To naštěstí není tak složité. Nejtěžší na celé akci je najít konektor s 1.27mm roztečí. Vzhledem k tomu, že Farnell (Mouser nebo RS) mají na skladě 50000 typů konektorů, je potřeba dlouho hledat. A na konci hledání na vás čeká toto. Pak si někde sežeňte starší IDE kabel z PC (obrázek d2). A pak s páječkou a trochou šikovnosti můžete vyrobit potřebnou redukci (obrázek d1). Na jednom konci je nasazený samořezný konektor s roztečí 1,27mm. Na druhém konci mám kousek drážkovaného kuprextitu. K němu jsou připájeny potřebné vodiče z plochého kabelu a vyvedeny vhodnějším způsobem :) Protože ATMEL-ICE umí používat vícero programovacích rozhraní, je potřeba pro každé z nich používat jiné vývody. Můžete si proto připravit buďto jeden kabel a vyvést si z něj všech 10 vývodů a pak ty vhodné z nich připojovat k cílové aplikaci (podle použitého rozhraní) a nebo si vyrobit samostatné kabely pro každé rozhraní. To co vidíte na obrázku d1 slouží k programování rozhraním SWD (procesory SAM). Zapojení všech rozhraní přirozeně najdete v dokumentaci k programátoru / debuggeru třeba zde. Případně můžete redukci vyrobit neelegantním způsobem jako na obrázku c (pak nepotřebujete shánět ani kabel ani konektor), ale kabelová verze je rozhodně lepší. Přirozeně na webu najdete i elegantnější řešení jako je třeba toto. Nejlevnější variantu ATMEL-ICE PCBA jsem našel na Farnellu zde. Podobnou cenu můžete najít i na Mouseru (fy Mausel dováží do čr za běžné poštovné). Cenově se tedy pohybujete stejně jako s AVR Dragon. Který z nich pro vás bude vhodnější záleží na tom co programujete. Pokud cílíte na AVR a Atxmegy, je to vcelku jedno. S Dragonem dostáváte do rukou možnost HVSP a paralelního programování, naproti tomu s ATMEL-ICE se vám otevírá možnost programovat ARMy (SAM).


Obrázek e - Atmel nás učí trpělivosti. Je potřeba vyrobit redukci z konektoru s 50mil (1.27mm) roztečí (vlevo) na rozteč 100mil (2.54mm).


Obrázek d1 - Primitivní redukce


Obrázek d2 - Vhodný kabel (rozteč žil 0.635mm) naleznete na každém rohu (IDE rozhraní z PC)


Obrázek d3 - Konektory s roztečí 50mil (1.27mm)


Obrázek c - Ultraprimitivní redukce

AVR-ISP-MKII (Olimex)

Jde o programátor velice podobný prvnímu jmenovanému (AVR PROG MKII). V ČR ho lze koupit. Nejlevnější jsem našel za 540,- bez DPH (653,- s DPH) na TME.cz ale možná bude i jinde. Opět umožňuje pouze programování a to rozhraními ISP,TPI A PDI. Tedy všechny Attiny, Atmega a Atxmega. Opět programátor pracuje s napětím 5V nebo 3.3V a je potřeba jeho firmware přehrát pokud má spolupracovat třeba s AVRDUDE. Po připojení programátoru k PC nezapomeňte nainstalovat driver (z webu výrobce). Windows si přiřadí driver z Atmel studia (pokud ho máte nainstalované), ale ten není správný, takže se nenechte zmást.

Připojení programátoru

Programovat Atxmega je možné pomocí dvou rozhraní. PDI (Programming device interface) mají všechny čipy Atxmega, některé pak mají i JTAG. Obě rozhraní je v principu možné použít jak k programování tak k debugování. K PDI rozhraní se připojíte pomocí pinu PDI a RESET. Datasheet v sekci "pinout and block diagram" vás pobaví, protože na něm budete marně hledat PDI_CLK a PDI_DATA, musíte si zalistovat hlouběji aby jste se dočetli že PDI_CLK je nutné připojit k lince RESET a PDI_DATA k lince PDI (pokud vám pojmenování připadá zmatečné, nejste sami). Vzhledem k tomu, že se připojujete přes vývod RESET je velmi vhodné zařídit aby během programování byl vývod RESET volný a nebyl ovládán jiným obvodem (externí watchdog) nebo člověkem (tlačítko) případně zablokován kondenzátorem. Jestliže budete využívat výhradně PDI rozhraní, můžete si pomocí fuses vypnout podporu JTAG. Tím si uvolníte k dispozici piny na něž je JTAG namapován. Stejná situace je i u AVR. Například u čipů Atmega16/32/64 je při výrobě zapnuta podpora JTAG a piny PC2,3,4,5 jsou tímto rozhraním blokovány (pokud máte ve fuses JTAG zapnutý). Vzhledem k tomu, že na čipech Atxmega používám JTAG jen výjimečně (na rozdíl od řady AVR), nebudu se mu tady věnovat. PDI rozhraní pak ještě potřebuje připojit GND a VCC. O tom zda příslušný programátor umí napájet cílovou aplikaci už byla řeč výše..

Bootloader

Výše uvedený návod nebyl ani zdaleka vyčerpávající. Mimo další programátory/debuggery existují i další prostředek jak čip naprogramovat. Tím prostředkem je bootloader. V čipu může být od výrobce nahraný program, schopný komunikovat nějakým rozhraním (typicky USART nebo USB) a přepsat zbytek paměti programu. Díky tomu se mnohdy můžete obejít bez programátoru (této koncepce využívá Arduino). Osobně ale nemám s tímto způsobem programování zkušenosti, takže jej zmiňuji jen pro úplnost.

Provoz v Atmel studiu

Programujete-li v Atmel studiu (což varianta s debuggerem asi vyžaduje) bude tato krátká poznámka pro vás. Všechny základní možnosti programátoru uvidíte v okně Tools -> Device programming. Kde nejprve zvolíte nástroj v sekci Tool, pak čip v sekci Device a v případě potřeby i rozhraní v sekci Interface. Po stiknutí Apply se vám zpřístupní všechny možnosti programátoru, od nastavení fuses až přes zápis a mazání paměti. Jestliže chcete program debugovat, musíte v sekci Project -> Properites -> Tool vybrat programátor / debugger a parametry jeho provozu.

Poznámka k AVR

Zajisté jste si stihli všimnout, že Atmel reflektuje moderní trendy a začal vydávat relativně levné vývojové desky nesoucí název "xplained". Seženete na nich oblíbené čipy jako Atmega328PA, Atmega168PA, Atmega328PB dále několik horkých novinek jako Attiny104 nebo Attiny817 (na první pohled velice našlapaná Tina) a v neposlední řadě i 32bitové mikrokontroléry (viz níže). Ceny se pohybují okolo krásných 300kč s DPH. Doposud nic zázračného. To co je ale na deskách důležité se skrývá pod značením mDEBG. Součástí desky je totiž plně funkční debugger / programátor a ještě kombinovaný s převodníkem USART/USB. Za tři stovky si tedy můžete užít programování s kompletní debug podporou (skrze DebugWIRE rozhraní). Debugger má velmi pozitivní vliv na množství stresových hormonů, protože výrazně usnadňuje ladění programů. Filozofií jak s deskou pracovat je mnoho. Můžete ji naprogramovat a nechat celou přímo v aplikaci, nebo na ní můžete pečlivě odladit program a ten pak jen nahrát do libovolné aplikace a desku si nechat pro příští projekty. Rozložení pinů je kompatibilní s platformou Arduino, ale názvy pinů jsou Atmelovské (díky za to). Deska umí pracovat na napětí 5V i 3.3V (stačí připájet jumper). Přirozeně ale debugger nerozběhnete nikde jinde než v Atmel Studiu. Prototypovací plocha vypadá účelně rozložená. Nechybí ani pořádné množství VCC a GND pinů (slabé místo velkého množství vývojových desek).


Atmega328PA Xplained mini (převzato z www.Atmel.cz)

K dokonalosti (kterou reprezentují desky STM32Discovery) chybí už jen plnohodnotnost debuggeru. Je schopen programovat/debugovat jen ten typ čipů, který je na desce. Pokud tedy máte desku s Atmega328PA tak pouze čipy Atmega328PA a žádný jiný. A taky není jeho rozhraní vyvedeno na konektor. Přitom samotný debugger má velký potenciál, čipy mega328P jsou na drtivé většině Arduino desek. Stačí Atmegu na Xplained desce odpájet a programovací rozhraní vyvést mimo desku k jinému Atmega328P a můžete ladit laciná arduina. Bohužel konstrukce desky tento "hack" dosti komplikuje. DebugWIRE rozhraní provádí nahrání a debugování programu skrze RESET pin a ten je na desce připojen opravdu velmi tenkou cestičkou, ke které nebude úplně snadné připájet nějaký vývod. Je to opravdu škoda, stačilo tak málo a z celé desky mohl být mnohem mocnější nástroj. Pokud by tato možnost debugger "hackovat", někoho z vás nadchla, budu rád, když se s námi o své řešení podělíte.

Pokud zkoušíte desku provozovat v Atmel studiu, nelekněte se při prvním zapnutí. Napřed se mDEBG bude chtít aktualizovat. To mu přirozeně dovolte. Když pak plni nedočkavostí napíšete první program, přeložíte ho a kliknete na Debug -> Start debugging and break. Vyskočí na vás varovná hláška, že debugWIRE není povolen. Ten je totiž nutné povolit pomocí fuses. Atmel studio vám ale v takové situaci rovnou nabídne jeho povolení. S povolením debugWIRE ale zakážete ISP rozhraní. Pokud pak budete chtít debugWIRE vypnout, je potřeba spustit debug (libovolného programu) a po rozběhnutí kliknout na Debug -> Disable debugWIRE and close. Teprve pak lze čip opět programovat pomocí ISP. To je ale funkce kterou budete potřebovat jedině pokud se vám podaří k debuggeru připojit nějaký jiný čip... tedy když desku "hacknete".

Poznámka k SAM

Atmel vyrábí hned několik rodin mikrokontrolerů. Kromě AVR, také AVR32 nebo SAM. Rodina SAM je velice široká a jedná se o 32bit mikrokontroléry s jádrem ARM. Aby začátečníkům co nejvíce zjednodušil přechod na tuto řadu procesorů zařadil mezi nově vydané "Xplained" desky, také jednu s mikrokontrolérem SAM D10. Ačkoli s jedná o jeden z "nejslabších" typů s jádrem Cortex M0+, bude jeho výpočetní výkon nejspíš o poznání vyšší jak u většiny 8bitových mikrokontrolerů. Avšak takové srovnání není cílem tohoto textu. Jde mi v podstatě o to vás pouze upozornit, že na trhu je k dostání bezvadný startovací kit, pro zájemce o ARMy (opět se pohybuje okolo příjemných 300kč). Prohlédnout si ho můžete níže na obrázku. Parametry desky jsou podobné jako Xplained pro Atmega. Piny jsou rozloženy tak aby byly mimo jiné kompatibilní i s Arduino shieldy a programátor / debugger (mDEBG) slouží zároveň jako převodník USB/UART.


SAM D10 Xplained

Než se ale vrhnete na programování mikrokontrolerů s jádrem ARM, měli by jste dobře zvážit zda to opravdu potřebujete. většina základních funkcí od zobrazování na displeji, přes blikání LEDkami, či měření různými čidly vás bude stát skoro jistě větší úsilí než na 8bitových platformách. Jinak řečeno většina "jednoduchých" aplikací, které lze bez komplikací rozběhnout i na AVR, bude na SAMech zdlouhavější a pracnější. Opravdový užitek vám SAM začne přinášet až s aplikacemi, které se na 8bitových mikrokontrolerech programují pracně nebo běží pomalu (hlavně v důsledku jejich nižšího výpočetního výkonu nebo chudších periferií). Teprve pak se vám začne vložené úsilí do zvládnutí 32bit architektury vyplácet. Přirozeně ti z vás, kteří programují pro radost si s tím nemusí lámat hlavu a mohou se vesele vrhnout do zkoušení. Možná že se mezi vámi najdou zájemci, pravděpodobně ze "staré školy", které bude děsit představa náročné SMD montáže. V tom případě vás jistě potěší, že jsou k sehnání mikrokontroléry ve velmi příjemném pouzdře SO-14 přibližně za padesátikorunu. Procesor je tak možné osadit na "redukci" klidně i trafopájkou.


Páreček Atmelů SAM D09 v příjemné velikosti

Hardware pro pokusy s Atxmega

Pokud jste se rozhodli Atxmegy vyzkoušet, zvolili programátor i prostředí čeká vás ještě rozhodnutí na jakém hardwaru budete své první programy testovat. K dispozici máte v podstatě tři varianty. Ta nejméně pracná a nejvíce nákladná je pořídit nějakou vývojovou desku. Atmel jich nabízí hned několik.

Nesou si sebou relativně bohatou výbavu (displeje, čidla, RAM) a nejsou zrovna nejlevnější (okolo 1000kč). Vybavení řadou periferií vám v mnohém ulehčí práci, ale také vám ji může komplikovat v situaci, kdy periferie (například displej nebo čidlo) obsazuje piny, které plánujete využívat jinak. Přirozeně existuje ještě mnoho dalších komerčních vývojových desek pro tuto platformu, je tedy možné že najdete nějakou další, která vám bude vyhovovat.

Další variantou je využít nějakého návrhu vývojové desky z internetu. Například:

Pokud si vystačíte s minimalistickým designem nebo se vám nechce utrácet můžete si desku vyrobit sami. Návrh jednoduché varianty najdete v odkazu pod článkem. Na desku jsem vybral Atxmega32E5, protože jde o jednu z nejlevnějších a nejmenších (co do počtu pinů) variant a přesto je vybavena vším zajímavým (snad krom USB, kterému stejně nerozumím). Dále na desce najdete programovací rozhraním, stabilizátor napětí, krystal a jako bonus ještě externí referenci pro AD a DA převodníky. Přirozeně pokud něco z toho nevyužijete, nemusíte to ani osazovat. Vývody mikrokontroléru tvoří jednoduché pájecí body 2x2mm. To se může zdát na první pohled nepraktické. Navíc mnozí z vás jsou možná ještě zbrklí a představa, že budete muset káblíky "zdlouhavě" pájet vám nevoní. Pak vám přirozeně nic nebrání desku upravit a pájecí body nahradit otvory pro konektorové hřebínky. Ale já doporučuji volit řešení s pájecími body. Protože čas strávený hledáním "uvolněného" káblíku zdaleka převyšuje těch pár minut navíc potřebných k jeho připájení. Jednoduchou desku můžete vidět na následujícím obrázku.


Jednoduchá vývojová deska pro Atxmega32E5 (nebo také 8E5 a 16E5)

Jako stabilizátor napětí je použit 78L33 (v pouzdře SO8) a můžeme ho označit za nutnou součást desky. Ti kteří potřebují mohou osadit desku krystalem o potřebné frekvenci (i když jak v příštích dílech uvidíte, nebude volba frekvence tak důležitá). Uživatelé AD a DA převodníku, kterým nebude stačit interní napěťová reference mohou osadit externí v podobě obvodu TL431 (v pouzdře SO8) - doporučuji. Krom samotného Atmelu už stačí doplnit jen pár kondenzátorů a programovací konektor a je hotovo. Osazenou desku (bez krystalu) můžete vidět na následujícím obrázku. U napěťové reference je osazen rezistor o hodnotě 150R. Jeho hodnota záleží na tom jaký proud plánujete z reference odebírat, s tímto odporem lze spolehlivě odebírat proud větší jak 4mA. Na několik pájecích bodů je pak vyvedeno výstupní napětí 3.3V z regulátoru. Vstupní napětí modulu je omezeno možnostmi stabilizátoru 78L33. Nesmí překročit hodnotu 30V, zátěž nesmí být větší jak 100mA a přirozeně ho nesmíte přehřát (tedy nezatěžovat více jak 1W). Zmiňuji to hlavně pro případ, že by jste chtěli napájet třeba LCD displej s podsvícením a podobně. Napájecí napětí pro regulátor by správně mělo být větší jak 5.3V, ale při menším proudovém zatížení stabilizuje i z 5V. Návrh v programu Eagle si můžete stáhnout zde.


Jednoduchá vývojová deska pro Atxmega32E5 (nebo také 8E5 a 16E5 )


Malá ukázka práce na podobné desce - dole připojen LCD displej, vpravo teplotní čidla

Malý rozcestník čipů Atxmega

Je docela možné, že si vyrobíte vývojový kit sami. Buďto sofistikovanější a nebo jen jednoduchou obměnu desky, kterou jsem si připravil já. A nejspíš si ji budete chtít vybavit xmegou dle vašeho výběru. V takovém případě se vám bude hodit malý rozcestník, který vám pomůže se ve variantách čipů Atxmega zorientovat. Nebudu v něm diskutovat možnosti, které mají všechny čipy a zaměřím se jen na odlišnosti jednotlivých variant a na informace, které by jste měli před výběrem vědět. Jako první vás musím upozornit na jeden fakt, který jste u spolehlivých čipů řady Atmega nejspíš nemuseli nikdy řešit. A to jsou hardwarové chyby. Atxmegy starších výrobních sérií (tzv. revizí) bývají plné "bugů", někdy tak kritických, že defakto znemožňují použít postiženou periferii. A aby to nebylo příliš jednoduché, nezjistil jsem zda a jak je možné při nákupu zjistit výrobní sérii. Takže si při výběru vždy důkladně prohlédněte sekci "errata" na konci datasheetu. A teď k samotnému výběru. Číslo v názvu čipu poukazuje na velikost paměti Flash. S její velikostí je typicky svázána i velikost RAM. Atxmega64A4 má kapacitu paměti flash 64kB. Za číslem pak následuje řada (A,B,C,D a E). Ta vypovídá o skladbě periferií čipu a je klíčem k výběru. Ve stručnosti si je tedy představíme.

Seznam všech čipů můžete najít na stránkách Atmelu zde. Případně můžete využít Product finder. V něm lze pomocí Show/hide parameters vybrat parametry pomocí nichž můžete filtrovat. Pokud tedy vaše aplikace vyžaduje mnoho UARTů, můžete si vypsat jen čipy, které jich mají dostatek. Pokud máte strach z osazování SMD, volte čipy v pouzdrech TQFP-32, TQFP-44 nebo TQFP-64 (jako na naší "vývojové" desce). Ty mají větší rozteč vývodů a s pájecí kapalinou / pastou je lze osazovat trafopájkou s menším hrotem. Větší pouzdra už pak mají menší rozteč a k jejich osazení bude hrotová pájka, dobrý zrak a pevnější ruka nutností.

Snad se vám podaří sehnat příslušný hardware bez zbytečných komplikací a těším se na shledanou u dalších dílů návodu.