Cenová politika vývojových nástrojů Atmelu/Microchipu není (už mnoho let) úplně přívětivá. Například ve srovnání s politikou STmicroelectronics. Pro představu nejlevnější oficiální programátor/debugger od STmicroelectronics schopný pokrýt 95% aplikací stojí okolo 280kč. Vybavené Debuggery (převodník úrovní, různá rozhraní pro bootloadery atp.) pak okolo 1000kč. Vývojové kity z nichž každý je vybaven debuggerem začínají pod 300kč. U Atmelu/Microchipu stojí nejlevnější oficiální debugger (Atmel-ICE) 2900kč a to je jen holá DPS bez plastového krytu a kabelů. Za plastový kryt a primitivní káblík (s hodně omezeným použitím) si připlatíte 1600kč (slovy jeden tisíc šest set korun). A za použitelný káblík (který má individuální piny) a malou redukci s různými konektory 2500kč. Samozřejmě že plastový kryt si dnes vytisknete na 3D tiskárně za babku a káblík za hodinku zhotovíte svépomocí, ale tím neutečete investici do Atmel-ICE. Tři tisíce nejsou málo, zvláště pak pro studenta nebo pro školu. Pojďme se tedy podívat zda neexistuje nějaká alespoň trochu schůdnější alternativa pro "moderní" mikrokontroléry rodiny AVR.
Existuje (už). Můžete si za přibližně 700kč koupit některý z vývojových kitů "Curiosity Nano" (viz seznam níže). Tento vývojový kit se stává ze dvou částí, cílového mikrokontroléru a programátoru/debuggeru - nEDBG. Vývojový kit je navržen tak aby bylo možné nEDBG elektricky oddělit od cílového čipu a používat ho samostatně. Debugger zvládá i roli převodníku USB-UART, takže poslouží i pro komunikaci s PC pomocí VCP. Asi nejzajímavější vlastnost je nastavitelný zdroj napětí. Osobně jsem si již dávno zvykl napájet cílovou aplikaci ze samostatného zdroje, ale ještě si pořád dobře vzpomínám na své začátky, kdy bych přesně takovou vlastnost velmi ocenil. Seznam kitů, které jsou vybaveny nEDBG:
Pro následující ukázky budu používat konkrétně kit DM164151 (AVR128DA48). Krom již zmíněného nEDBG, kterému se budeme podrobněji věnovat je tento kit vybaven ještě tlačítkem, LEDkou a hodinovým krystalem. Kolíkové řady mají standardní rozteč 2.54mm a jsou opatřeny popisky. Dokumentace kitu obsahuje i kompletní schema, takže si můžete všimnout že všechny I/O nEDBG jsou vybaveny "level shiftery" a lze tedy debugovat cílové MCU provozované na různých napětích.
V této ukázce chceme upravit kit tak abychom mohli debugovat externí mikrokontrolér, který budeme napájet z kitu. Úprava je dobře zdokumentovaná i v uživatelském manuálu a zvládne ji každý. V prvním kroku musíme odříznout šest propojek ze spodní strany desky (viz obrázek). Rozumné je obdobným způsobem odpojit i napájení vedoucí k MCU na desce - rozdělením spoje "POWER".
Druhá úprava je softwarová. Je potřeba Atmel Studiu říct, že chceme pomocí nEDBG programovat i jiná MCU než jen ten jeden konkrétní, který byl na vývojovém kitu (v mém případě AVR128DA48). Tento krok je opět zdokumentovaný i v uživatelském manuálu (3.5.2 Software Configuration) a musíme:
Regulátor (MIC5353), který slouží na kitu jako zdroj napětí má svá omezení.
Nastavování napětí se provádí v Tools -> Device Programming -> Tool Settings. Posuvník nám sice umožňuje nastavovat napětí až do 5.5V, ale vzpomeňte si na to že je-li napájen z USB tak je tato hodnota nedosažitelná. V okně je přítomna i hodnota "measured", která ale podle mě nefunguje. V záložce Interface settings pak můžete nastavit komunikační rychlost. Což může být nutné v situacích kdy čip pracuje s nižším taktem.
Správu pamětí - tedy čtení, mazání a zápis do Flash, EEPROM a User Row lze ovládat ze záložky Memories. V záložce Fuses můžete přehledně spravovat "fuses" - tedy (globální) nastavení MCU. Například u čipů Attiny a Atmega volit frekvenci interního oscilátoru mezi 16MHz a 20MHz a spoustu dalších prvků. Záložka Lock bits je nogo zóna - nechoďte tam a nic tam neměňte dokud nebudete dobře vědět co děláte. Jinak si můžete "bricknout" (zablokovat) čip. V horní liště pak máte volbu programovacího nástroje (v našem případě nEDBG), cílového MCU (zde třeba Atmega4808), rozhraní (UPDI). Položka Target voltage slouží ke zjištění jaké napětí vidí debugger na VTG. Může vám případě napovědět zda je něco špatně s napájením čipu. Device Signature slouží k přečtení "podpisu" cílového čipu. Pokud se ho nepodaří přečíst, znamená to, že se debugger není schopen s cílovým čipem spojit a vy můžete začít hledat chybu. Výjimečně se může stát, že špatně zadáte typ MCU se kterým chcete pracovat a debugger na to při přečtení podpisu přijde a upozorní vás.
Kit, respektive debugger, se po připojení do PC přihlásí mimo jiné jako "USB flash disk". Přetažením hex souboru s programem, můžeme stylem "drag and drop" nahrát program do cílového čipu. Jak to dopadlo si pak můžeme přečíst ze souboru STATUS.TXT. Metodou "drag and drop" je možné posílat i konkrétní příkazy - formou textového souboru. Jmenovitě třeba "Erase" (mazání), "Power toggle" (vypnutí napájení na 100ms), či nastavit výstupní napětí. Detailněji to rozebírá kapitola "Mass Storage Device Implementation" uživatelského manuálu.
V jiném článku jsem popsal jak je možné obdobným způsobem využít kit Xplained Nano. Ten sice není vybaven nastavitelným zdrojem, ale ale dá se sehnat za přibližně 470kč. Bohužel není schopen plně debugovat všechny MCU ! Zmiňuji ho tedy jen proto že je to nejlevnější debugger o kterém vím.
Home
V1.00 15.6.2024
By Michal Dudka (m.dudka@seznam.cz)