Reklama

Začínáme s mikrokontroléry ATxmega – Úvod

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 mikrokontroléry 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:

  • Dostupnost vývojových prostředků. Ta je dnes dobrá jak u AVR, u ATxmeg, tak i u mikrokontrolérů ARM. Ať programujete cokoli, tak si v podstatě nemusíte moc lámat hlavu s tím, jestli najdete vhodné IDE a jestli se vám podaří sehnat programátor / debugger. Ale nebývalo to tak vždycky :)
  • Výpočetní výkon. Důležitý faktor v aplikacích, které pracují s grafikou nebo vyžadují zpracování většího množství dat. Dále výpočetní výkon vyžadují aplikace, které využívají sofistikovanější rozhraní (třeba Ethernet) a obecně aplikace, které se svým charakterem přibližují programům pro PC. V této kategorii dominují 32bitové mikrokontroléry. ATxmega má sice podstatně větší výkon než mikrokontroléry řady ATmega, ale k ARMům má ještě daleko. Ty díky svojí architektuře nativně pracují s 32bitovými čísly a běžně obsahují i hardwarovou podporu pro počítání s čísly s plovoucí desetinnou čárkou (float a double).
  • Složitost programování a strmost učící křivky. Na tomto poli přirozeně vítězí slabší mikrokontroléry. ATmegy se naučíte za pár víkendů. ATxmegy vám zaberou ještě pár dalších víkendů navíc. U ARMů už budete čas strávený učením počítat na měsíce. Samozřejmě za předpokladu, že budete využívat jejich periferie.
  • Dostupnost a cena mikrokontrolérů. Tato kategorie nejspíš nemá vítěze, protože za pár desetikorun seženete jak mikrokontroléry ATmega, tak mikrokontroléry Atxmega ale také i ARMy. Ale obecně tu ATxmegy trošku pokulhávají (mnoho výkonnějších ARMů lze sehnat levněji).
  • Podpora a dokumentace (návody, tutoriály a diskuzní fóra) je kategorie, ve které kralují 8bitové AVR. Krásný fakt je trochu zakalen tím, že valná část návodů na AVR je vyloženě ubohá, ale i po započítání pouze kvalitních návodů zůstává AVR pořád jasným vítězem. Cokoliv chcete udělat, tak na to najdete na internetu někde dobře zpracovaný návod. Špatně na tom nejsou ani ARMy. Třeba řada STM32 má celkem širokou komunitu uživatelů s funkčními diskuzními fóry a nemalým množstvím ukázkových kódů. Navíc není mezi články o STM32 tolik nekvalitních návodů, takže když na nějaký návod narazíte, tak je velká šance, že se z něj i něco dozvíte. ATxmega v této kategorii spíše prohrává, návodů není zrovna nejvíce.

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, tak lehce naznačím pár funkcí, které mají ATxmegy navíc proti ATmegám. Počítají rychleji a umí běžet až na 32 MHz. 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ý velmi usnadňuje synchronizaci různých periferií (typicky časovačů, externích událostí, AD a DA převodníků). Mají DMA (přímý přístup do paměti). Periferie tedy mohou svá data přenášet do paměti nebo z paměti bez účasti procesoru. Například spustíte A/D 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í D/A převodník, který může 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ž 4 ns, 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.

Malý rozcestník mikrokontrolérů ATxmega

Je docela možné, že si vyrobíte vývojový kit sami. Buďto sofistikovanější anebo jen jednoduchou obměnu desky, kterou jsem si připravil já (ukážeme si ji v příštím díle). A nejspíš si ji budete chtít vybavit mikrokontrolérem ATxmega 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é byste 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 mikrokontrolérů ř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é chyb “bugů” a 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 64 kB. 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.

  • Řada A: Je zastaralá a nahrazuje se řadou AU a její mikrokontroléry obsahují dost chyb. Principiálně je ale spolu s řadou AU tou nejvybavenější určenou pro nejnáročnější aplikace. Obsahují velké množství čítačů, USARTů, SPI, I2C, A/D a D/A převodníky, externí sběrnici pro připojení SRAM nebo SDRAM, šifrovací hardware a typicky je lze ladit i pomocí JTAG rozhraní. K dostání jsou od 100 kč.
  • Řada AU: Nahrazuje řadu A a má opravených mnoho chyb (zdaleka ne však všechny). Navíc obsahuje podporu USB, IrDA a má CRC generátor. Pokud chcete to nejlepší, tak až na výjimky vybírejte z řady AU. Stejně jako u řady A nejlevnější čipy seženete za necelou stokorunu.
  • Řada B: Zaměřuje se na aplikace s přímým řízením LCD panelu. Osobně s ní nemám žádné zkušenosti.
  • Řada C: Jde o levnou řadu s podporou USB ochuzenou o D/A převodník. Potěší u ní, že její seznam chyb je velice krátký. Bohužel vás ale nemůžu ujistit, jestli je to tím, že tam chyby opravdu nejsou, nebo že jen nejsou uvedeny :D Sáhnete po ní pokud budete potřebovat podporu USB za nízkou cenu.
  • Řada D: Opět jde o levnější mikrokontroléry ochuzené o D/A převodník a bez podpory USB, bez JTAGu a s menším množstvím periferií. Nejnižší varianta ATxmega16D4 začíná na 90kč za kus.
  • Řada E: Jde o nejlevnější řadu. Oproti ostatním řadám, kde mají nejmenší pouzdra 44 vývodů, lze v řadě E sehnat i menší čipy s 32 vývody. Hardwarových chyb je docela málo a mikrokontroléry obsahují jak A/D tak i D/A převodník. Navíc obsahují “custom logic” modul – tedy miniaturní konfigurovatelné logické pole. A aby toho nebylo málo, tak má k dispozici “enhanced” DMA, schopné filtrovat data. Nejspíš kvůli tak rozmanité výbavě jsou počty čítačů a komunikačních rozhraní nízké. Řady A měly například osm USARTů a čtyři I2C, u řady E jsou jen dva USARTy a jedno I2C (ale schopné pracovat až na 1 Mbps). K dostání jsou od 70kč. Na tyto mikrokontroléry se pak asi zaměřím v dalších částích návodu.

Seznam všech mikrokontrolérů můžete najít na stránkách Atmelu Atmelu. 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 USARTů, tak si můžete nechat zobrazit jen mikrokontroléry, které jich mají dostatek. Pokud máte strach z osazování SMD, tak volte mikrokontroléry 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í.

V příštím díle si vytvoříme vlastní vývojový kit a ukážeme si jednotlivé možnosti hardwaru.

 
 
Autor: Michal Dudka
 
 

Jiné příspěvky v kategorii:

Začínáme s mikrokontroléry ATxmega – Hardwarové prostředky
Začínáme s mikrokontroléry ATxmega – Programátory a “debuggery” NEJEN pro ATXmegy

 

 
Tajned facebook
 

Za případné chyby v textu, ve zdrojovém kódě, nebo ve schématickém zapojení se omlouváme.
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.