Doby, kdy se mikroprocesory programovaly separátně v různých externích programátorech připojených k PC přes paralelní nebo sériový port, budou brzo minulostí. Současný trend jednoznačně směřuje k metodám programování obvodů v cílovém systému. Jedná se o přístup, kde není nutné součástku (mikroprocesor, paměť, programovatelný logický obvod atd.) vkládat do programátoru. Výrobní postupy spojené s manipulací při programování jednoznačně zvyšují pravděpodobnost mechanického či elektrostatického poškození programovaného obvodu. Důsledkem může být vznik různých skrytých poruch, které snižují spolehlivost a životnost celého zařízení.
Metody programování
ISP (In-System Programming) – metoda, umožňuje programování obvodů přímo v zařízení pomocí vyhrazených vodičů určených pro komunikaci při programování. Obvykle není potřeba vyšší napájecí napětí než je jmenovité napájecí napětí programovaného obvodu. Běžně používaná rozhraní pro ISP jsou
-
SPI (Serial Peripheral Interface) - rozhraní pro sériovou synchronní komunikaci,
-
JTAG (Joint Test Actoin Group) - rozhraní pro diagnostiku a testování integrovaných obvodů,
-
UART (Universal Asynchronous Receiver Transmitter) - rozhraní pro sériovou asynchronní komunikaci.
Metodou ISP nelze nahrávat (aktualizovat) firmware zařízení bez toho, aby nedošlo k přerušení vykonávání jeho funkce (programovaný obvod je nutné přepnout do režimu programování).
IAP (In-Application Programming) – jedná se o modifikaci ISP metody a umožňuje aktualizaci firmwaru bez nutnosti přerušit provoz zařízení. Paměť kódu programu lze zapisovat a číst přímo z aplikace (speciální instrukce mikroprocesoru). K aktualizaci firmwaru lze použít libovolného rozhraní a tak nahrání aktuální verze programu po lokální sítí či z Internetu není v současné době neřešitelný problém [4].
UISP
Projekt UISP (Micro In-System Programmer) má za cíl vytvořit nástroj k programování mikroprocesorů AVR firmy Atmel. Program je volně ke stažení na Internetu [1] včetně zdrojových kódů, což dovoluje jeho snadné šíření i na další operační systémy. Ovládání programu se provádí z příkazové řádky a je ho možno snadno integrovat do libovolného vývojového prostředí, V dnešní době UISP podporuje většinu AVR mikroprocesorů, které lze programovat metodou ISP přes integrované SPI rozhraní.
Základní vlastnosti UISP
-
autodetekce připojeného mikroprocesoru,
-
čtení, zápis, smazání a kontrola paměti flash a eeprom,
-
programování konfiguračních a zabezpečovacích bitů,
-
podpora formátu Intel-HEX a Motorola,
-
ovládání z příkazové řádky (snadná integrace do libovolného vývojového systému),
-
multiplatformní řešení (MS Windows, Linux, FreeBSD,…),
-
podpora ISP programátorů na paralelní a sériový port.
Programovací řetězec sestává ze tří částí
-
osobní počítač s OS MS Windows nebo Linux,
-
ISP programátor,
-
programovaný obvod (mikroprocesor AVR).
ISP programátor
Celá řada obvodů programovaných metodou ISP využívá SPI rozhraní. Důsledkem toho je existence několika typů velice levných ISP programátorů pro různé obvody (CPLD, EEPROM atd.), které se připojují na sériový nebo paralelní port PC. K propojení AVR mikroprocesoru s programátorem slouží kromě napájení (v případě, že programátor nemá vlastní napájení) a země ještě další čtyři datové signály:
-
MOSI (Master Out – Slave In) – sériový vstup dat do mikroprocesoru,
-
MISO (Master In – Slave Out) - sériový výstup dat z mikroprocesoru,
-
SCK (Serial clock) – sériové hodiny (synchronizace komunikace),
-
/RESET – nulování mikroprocesoru
Program UISP podporuje následující typy ISP programátorů připojované na
a) sériový port PC
pAVR Project - Atmel AVR serial programmer [2], Atmel STK500 kompatibilní [8].b) na paralelní port PC
Parallel Starter Kit STK200, STK300 [6], Altera ByteBlasterMV Parallel Port Download Cable, Xilinx HW-JTAG-PC Cable (parallel), AVRDUDE - AVR Downloader/UploaDEr [5], a další..
V následujícím textu bude popsáno použití UISP s programátorem STK200.
Obr.1 Programovací adaptér STK200
Volba ISP programátoru
Základním kritériem podle, kterého můžeme dělit ISP programátory je způsob připojení k PC. Zpočátku převažovaly jednoduché konstrukce na paralelní port. Jejich obrovskou výhodou je, že ke stavbě stačí jeden oddělovač (74HC244, 74HC367) a několik pasivních součástek. Celá inteligence je ukryta v obslužném programu na PC. Takovýto programátor si může s minimálními náklady lehce postavit kdokoliv doma. Nevýhodou jednoduchých programátorů na paralelní port je, že jsou relativně pomalé pokud programujeme větší soubory (víc jak 50 kB).Průběhy jednotlivých signálů z hlediska časování se mohou v závislosti na použitém operačním systému a hardwaru PC značně měnit. Vzájemná „nekompatibilita“ výrobců paralelních portů a náchylnost k poškození vedla k postupnému přechodu k sériovému portu.
Programátory obsluhované přes sériový port tvoří převodník úrovní RS232/TTL a mikroprocesor. Jednoznačně jsou rychlejší, ale díky někdy nevhodně navrženým sériovým komunikačním protokolům dochází k degradaci max. dosažitelného výkonu. Největší slabinou je komunikace mezi PC a mikroprocesorem v ISP programátoru. Komunikační protokoly navrhuje firma Atmel a aplikuje do svých vývojových kitů a ladících nástrojů. Ostatním nezbývá než se z důvodů kompatibility podřídit.
Ukázkovým příkladem je STK500 protokol. U obyčejného programátoru na paralelní port stačí ovládat vodiče MOSI, MISO, SCK, /RESET podle popisu uvedeného v katalogovém listu programovaného obvodu což je velice triviální a nemění se. Komunikace po sériovém portu není o nic víc složitější, ale pokud v rámci aktualizace firmwaru mikroprocesoru ISP programátoru dojde i ke drobné změně komunikačního protokolu je problém na světě.
Problém se dotýká všech co se snaží o stavbu ISP programátorů kompatibilních s vývojovými nástroji firmy Atmel (AVR-STUDIO) a těch co píší programy pro obsluhu originálních ISP programátorů od Atmelu.
Nejnovější trend je používání JTAG rozhraní k ISP programování. JTAG nabízí snad vše, co si může vývojář embedded zařízení přát. Bohužel realita a praxe je trochu jinačí. Výrobcem adaptéru JTAG-ICE (In-circuit Emulator) je firma Atmel a cena zařízení činí 300$.
Na Internetu se objevily náznaky, že JTAG-ICE lze postavit i v domácích podmínkách [7]. Nárůst rychlosti programování oproti jinačím řešením postavených na sériový port je zanedbatelný. Úzkým hrdlem nadále zůstává max. přenosová rychlost sériového portu 115200 Bd (z důvodu kompatibility nelze nastavit vyšší rychlost). Je třeba též podotknout, že JTAG rozhraní se vyskytuje až u modernějších typů AVR mikroprocesorů.
Každý sám musí zvážit, která z nastíněných variant je pro něho optimální. Ten kdo se zabývá programováním menších AVR mikroprocesorů bohatě vystačí s jednoduchým programátorem na paralelní port.
Složitější věci je nutné řešit s ISP programátorem na bázi STK500 protokolu, který dnes podporuje většina programů na PC. Zdařilá konstrukce jednoho takového programátoru je zde [2] nebo přímo koupit hotové zařízení od firmy Atmel.
Instalace programu na OS MS Windows
Program UISP je vyvíjen na OS Linux. Používání na OS Windows umožňuje prostředí CYGWIN [9], kde lze navíc sestavit vždy aktuální verzi programu ze zdrojových kódů. Komunikace s ISP programátorem vyžaduje přímý přístup na paralelní port PC. V operačních systémech, které brání v přímém přístupu na paralelní port (Windows 2000 a vyšší) je nutné nainstalovat ovladač giveio.sys.
Instalace ovladače giveio.sys
Na OS WinNT, Win2k, WinXP je přímý přístup na paralelní port možný pouze v režimu jádra. Uživatelské aplikace, aby nemohly přistupovat a měnit kritická data OS běží v uživatelském režimu. Ovladač giveio.sys je spuštěn v režimu jádra a zpřístupňuje programu UISP paralelní port.
K instalaci ovladače slouží program loaddrv.exe a přiložené dávkové soubory.
-
install_giveio.bat – instalace ovladače (nastaví automatické zavedení ovladače po startu OS),
-
remove_giveio.bat – odstranění ovladače,
-
status_giveio.bat – informace o stavu ovladače.
Minimální instalace programu UISP
Cygwin je UNIXové prostředí pod OS MS Windows vyvíjené firmou Red Hat. Skládá se ze dvou částí. První je knihovna cygwin1.dll, která emuluje UNIXové chování. Druhou pak je sada utilit přenesených z UNIXu, které emulují chování UNIXu/Linuxu. Velikost prostředí v závislosti na množství nainstalovaných utilit může dosáhnout desítek až stovek MB. Pro samotnou funkci programu UISP plně postačuje knihovna cygwin1.dll (1 MB). Minimální instalaci programu UISP sestává z uisp.exe a knihovna cygwin1.dll.
Instalace programu na OS Linux
Postupně je UISP začleňováno ve formě instalačních balíčků do jednotlivých distribucí OS Linux. Jak již bylo dříve zmíněno UISP lze sestavit ze zdrojových kódů, že to není nic složitého dokazuje následující popis. Tento postup je aplikovatelný i v prostředí Cygwin pokud jsou nainstalovány potřebné programy (GCC, autoconfig, make atd.).
1) získání zdrojových kódů
Zdrojové kódy programu (aktuální stabilní verze) jsou k dispozici na webové stránce projektu
http://savannah.nongnu.org/download/uisp/ nebo je lze stáhnout přímo z CVS (Concurrent Versions System) serveru (vývojová verze)
cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/uisp login
Dotaz na heslo je jedno zmáčknutí klávesy enter.
cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/uisp co uisp
2) sestavení programu
V adresáři uisp zadáme následující příkazy
./bootstrap … vytvoření konfiguračních skriptů (nutné pouze u verze stažené z CVS serveru)
./configure … vytvoření souborů makefile v závislosti na použitém OS a dostupných programech
make … překlad a sestavení programu
make install … instalace programu do systému
Poznámka: Program je standardně přeložen s ladícími informacemi od překladače, které zbytečně zvětšují velikost souboru uisp (v prostředí Cygwin uisp.exe). Tyto informace se odstraní programem strip uisp.
Obsluha programu
Před samotným programováním je třeba připojit ISP programátor a programovaný obvod k PC. Paralelní port je lehce poškoditelný a proto je nutné postupovat velmi obezřetně. Připojování a odpojování od paralelního portu by se mělo provádět pouze při vypnutém napájecím napětí počítače a programovaného obvodu.
Ovládání programu je řešeno z příkazové řádky a základní parametry jsou uvedeny v následujícím seznamu:
- -dprog=stk200 … typ ISP programátoru (např. stk200, stk500, xil atd.),
- -dlpt=0x378 … adresa paralelního portu (0x378, 0x278, 0x3BC) popř. název zařízení par. portu v Linuxu (/dev/parport0, /dev/parport1 atd.),
- -dserial=COM1 … sériový port (COM1, COM2, atd.) popř. název zařízení sér. portu v Linuxu (/dev/ttyS0, /dev/ttyS1 atd.),
- -dspeed=115200 … použitá přenosová rychlost, standardně 19200,
- -dpart=ATmega128 … typ programovaného obvodu (např. ATmega8515, ATtiny12 atd.), v případě, že není tento parametr uveden popř. je nastaveno –dpart=auto, tak se program pokusí o automatické zjištění typu programovaného obvodu,
- --upload … zápis segmentu paměti do mikroprocesoru ze souboru udaného parametrem if,
- --verify … kontrola (porovnání) segmentu paměti mikroprocesoru s obsahem souboru udaného parametrem if,
- --download … načtení segmentu paměti mikroprocesoru do souboru udaného parametrem of,
- --erase … vymazání paměti flash, eeprom a zabezpečovacích bitů mikroprocesoru,
- --segment=eeprom … volba segmentu paměti (flash, eeprom, fuse),
- - if=jméno souboru … vstupní soubor ve formátu Motorola nebo Intel-HEX, který se použije u parametrů --verify a --upload,
- - of=jméno souboru … výstupní soubor ve formátu Motorola kam se uloží výsledek čtení u parametru --download.
- --help … nápověda programu,
- --version … zobrazení verze programu,
- -v=2 … množství vypisovaných informací během vykonávání programu (min=0 až max=4),
Základní použití programu je demonstrováno na elementárních příkladech s mikroprocesorem ATmega128.
a) načtení paměti eeprom
uisp -dprog=stk200 -dlpt=0x378 -dpart=ATmega128 --segment=eeprom --download of=eeprom.mot -v=3
b) zápis paměti eeprom
uisp -dprog=stk200 -dlpt=0x378 -dpart=ATmega128 --erase --segment=eeprom --verify --upload if=eeprom.mot -v=3
c) načtení paměti flash
uisp -dprog=stk200 -dlpt=0x378 -dpart=ATmega128 --segment=flash --download of=flash.mot -v=3
d) zápis paměti flash
uisp -dprog=stk200 -dlpt=0x378 -dpart=ATmega128 --erase --segment=flash --verify --upload if=flash.mot -v=3
e) načtení konfiguračních bitů
uisp -dprog=stk200 -dlpt=0x378 -dpart=ATmega128 --segment=fuse --download of=fuse.mot -v=3
f) zápis konfiguračních bitů
uisp -dprog=stk200 -dlpt=0x378 -dpart=ATmega128 --segment=fuse --verify --upload if=fuse.mot -v=3
Pro doplnění je uvedeno ovládání ISP programátoru STK500 připojeného na COM1 (/dev/ttyS0)
uisp -dprog=stk500 -dserial=/dev/ttyS0 -dspeed=115200 -dpart=ATmega128 --erase --segment=flash --upload --verify if=uarts.hex -v=3
Tipy, triky, praxe
Následující výčet obsahuje popis několika základních problémů a stavů, které se vyskytly při praktickém používání programu UISP a dalších během programování AVR mikroprocesorů. Nečiní si však nárok na úplnost a má posloužit ostatním pouze jako vodítko v případných svízelných situacích.
Programování konfiguračních bitů
Jedná se o jeden z největších zdrojů problémů při programování AVR mikroprocesorů. Programovaný obvod je připojen vodiči MOSI, MISO, SCK, /RESET a navíc vyžaduje externí zdroj hodinového signálu (XTAL) z krystalového rezonátoru. Nevhodným nastavením konfiguračních bitů lze aktivovat interní zdroj hodinového signálu a tím pádem znemožnit běžným způsobem znovu naprogramovat AVR mikroprocesor. Příčinou tohoto stavu může být
- úmyslné nastavení konfiguračních bitů uživatelem,
- chyba programu při zapisování konfiguračních bitů. Výskyt této situace může nastat pokud násilně přerušíme běh programu či jinak nekorektně manipulujeme s programem nebo programovaným obvodem.
Východiskem z této situace je
- použití JTAG adaptéru a oprava nastavení konfiguračních bitů, nelze použít pokud bylo dříve zakázáno JTAG rozhraní nebo není u daného obvodu k dispozici,
- přivedení externího zdroje hodinového signálu na vstup XTAL např. z funkčního generátoru,
- nastavení konfiguračních bitů v paralelním režimu (klasický programátor).
Kontrola obsahu paměti
Přestože se program jeví, že obsah paměti byl úspěšně zapsán nemusí být tomu z různých důvodů vždy pravda. Zkušenosti z programování pamětí flash a eeprom v embedded zařízeních jednoznačně dokazují, že je nezbytné vždy kontrolovat obsah programované paměti.
Chyba - flash error at address 0xXYZ: file=0xXX, mem=0xYY
Během kontroly obsahu naprogramované paměti mikroprocesoru došlo k detekci chyby na adrese 0xXYZ. Příznaky tohoto typu mohou často vést k problémům se svévolným nastavením konfiguračních bitů. Možné důvody jsou
- nevhodná délka a uspořádání programovacích vodičů (MOSI, MISO, SCK), může docházet k přeslechům a odrazům (vznik parazitních hran),
- problémy s časováním při programování paměti, parametrem -dt_sck=PERIODA lze prodloužit periodu signálu SCK (hodnota se udává v mikro sekundách),
- nekompatibilní(ne příliš vhodný) paralelní port pro ISP programování,
- fyzická chyba programované paměti, výrobce udává u každého obvodu počet zaručených programovacích a mazacích cyklů pro paměť flash a eeprom.
Zamezení přepisování/mazání paměti eeprom
Paměť eeprom může obsahovat různé konfigurační informace. Je nepříjemné o tyto údaje přijít při aktualizaci firmwaru. U obvodů s pamětí eeprom lze nastavením konfiguračního bitu EESAVE zabránit smazání jejího obsahu (bližší informace viz katalogový list použitého obvodu).
Po restartu OS nefunguje aplikace s AVR mikroprocesorem
Během startu OS a detekce periferií PC některé OS manipulují s paralelním portem. V případě, že je na něj připojen ISP programátor tak s velkou pravděpodobností dojde k ovlivnění připojeného obvodu (přepnutí do programovacího režimu, nechtěný zápis do paměti atd.).
Po návratu z úsporného režimu nefunguje ISP programátor
Praktické používání ISP programátorů připojených na paralelní port ukázalo, že po návratu z úsporného režimu na OS MS Windows98 dojde k odepření přístupu uživatelským aplikacím na paralelní port. Jediné řešení je restart počítače.
ISP programátory kompatibilní s STK500
Existuje několik ISP programátorů kompatibilních s protokolem STK500. Bohužel protokol počítá s fixní velikostí vyrovnávací paměti 256 B (stránka flash paměti). Klony postavené z cenových důvodů na mikroprocesorech (např. AT90S2313), které tuto paměť nemají k dispozici musí a nemusí vždy správně fungovat.
Další problém který se objevil při používání STK500 kompatibilních ISP programátorů je, že nelze korektně naprogramovat a zkontrolovat obvod s krystalem nižším než je hodnota krystalu osazeného v ISP programátoru.
Například klon STK500, který se v ČR prodává na obchod.HW.cz, vychází z programátoru k vývojovému kitu Ethernut a oba typy mají popsané problémy
- Frekvence programovaného MCU by měla být cca 4MHz a vyšší, protože jinak nastává problém s nedostatečnou RAM v programátoru a programátor nefunguje.
- Originální Atmel STK500 umožňuje po sériové lince nahrát do programátoru aktuální firmware, ale tyto klony to neumožňují, je proto třeba používat je s posledními verzemi AVR studia 3.x a 4.x (Atmel udržuje nadále obě verze), které počítají s opraveným komunikačním protokolem.
Jiné projekty programátorů
PonyProg
Jednoduchý programátor na sériový a paralelní port. Využívá hardware portů počítače a snaží se vnější elektroniku omezit na minimum. Vyniká velmi propracovaným softwarem a šíří podporovaných obvodů v rámci čehož jsou zahrnuty i AVR mikroprocesory. Oproti UISP je mnohem pomalejší (existuje podpora pouze pro programátory na par. port) což je poznat zvláště při programování mikroprocesorů ATmega. Starší verze programu obsahovaly chybu, která způsobovala špatné nastavení konfiguračních bitů a zablokování mikroprocesoru.
AVRDUDE
Program původně vyvinutý pro OS FreeBSD pod označením AVRPROG, odkud se rozšířil na další operační systémy. Co do filozofie řešení je velice podobný UISP. Výhodou je, že popis programování jednotlivých podporovaných obvodů a ISP programátorů je v konfiguračních souborech. Na rozdíl od UISP lze přidat nový obvod bez toho, aby bylo nutné znovu sestavit celý program. Používá vlastní konstrukci ISP programátoru na paralelní port.
AVRSTUDIO a jiné programy firmy Atmel
Firma Atmel postupně opustila podporu levných ISP programátorů na paralelní port typu STK200. Současné verze programů podporují pouze nové programátory na bázi STK500, JTAG-ICE atd., které se připojují na sériový port (přínosem je nárůst rychlosti a spolehlivosti při programování). Jestliže chceme nadále provozovat ISP programátory připojované na paralelní port, tak nezbývá než šáhnout po starších verzích programů. Ty už nejsou oficiálně k dispozici a navíc neumí programovat nové AVR mikroprocesory.
Ostatní dostupná řešení na Internetu
Většinu těchto řešení lze souhrnně označit za snahu individualistů v dobré víře vytvořit nástroj na programování AVR mikroprocesorů. Řada podporovaných mikroprocesorů je ohraničena na typy, které používají ve vlastních aplikacích nebo s nimi jinak přišli do styku. Práce na dalším vývoji programu v závislosti na časových možnostech a prioritách daných lidí ve valné většině záhy končí.
Bootloader aneb jde to i bez ISP programátoru
V dosavadním textu bylo uvažováno složení programovacího řetězce ve kterém figuroval fixně ISP programátor. Nesporné klady použití ISP jsou zřejmé, ale přesto přinejmenším částečně přicházíme o vývody, které slouží k programování. Na samém začátku byla zmíněna metoda IAP, kdy je mikroprocesor schopen sám zapisovat a číst vlastní paměť kódu programu. Toto umožňuje tzv. zavaděč (bootloader), který je implementován u řady mikroprocesorů ATmega.
Paměť flash je rozdělena do dvou částí. První část tvoří samotná aplikace a druhou volitelnou částí je zavaděč. Velikost jednotlivých částí se nastavuje pomocí konfiguračních bitů BOOTSZ (Boot Size). Čtení a zápis paměti provádí instrukce LPM (Load Program Memory) a SPM (Store Program Memory), které se vykonají pouze v paměťové části určené pro zavaděč. Standardně se po zapnutí (resetu) obvodu provádějí instrukce od adresy nula. Zavaděč je však umístěn na samý vrchol paměti flash. Je proto nezbytné nastavit konfigurační bit BOOTRST (Boot Reset) čímž se po startu začne na adrese zavaděče. Další chování závisí na použitém zavaděči. Např. pokud splníme určitou podmínku dojde k aktualizaci firmwaru nebo se spustí aplikace v paměti flash.
V závislosti na typu zařízení můžeme navrhnout vlastní proprietární komunikační protokol nebo implementovat některý ze stávajících protokolů. První varianta poslouží těm, kteří potřebují garantovat, že nedojde k neautorizované změně obsahu paměti mikroprocesoru. Druhá varianta je praktičtější, protože odpadá nutnost vývoje vlastní aplikace na obslužném PC. Volně dostupná implementace zavaděče s podporou protokolu STK500 je k dispozici zde [3].Detailní popis sestavení zavaděče a použití s mikroprocesorem ATmega128 je uveden v článku „STK500 Protocol AVR Bootloader“.
Použití zavaděče nemůže však zcela nahradit klasický ISP programátor. Zavaděč neumožňuje plnohodnotnou manipulaci s konfiguračními a zabezpečovacími bity. V plném rozsahu je lze pouze číst, zápis je omezen jen na několik vybraných bitů. Ve výsledku to znamená, že konfigurace mikroprocesoru a nahrání zavaděče musí proběhnout pomocí paralelního nebo ISP programátoru. Přesto využití zavaděče k aktualizaci firmwaru mikroprocesoru, představuje zajímavou variantu, která najde své uplatnění v řade aplikací.
Závěr
Důvodem k napsání tohoto článku byla snaha vyplnit informační mezeru týkající se programování mikroprocesorů AVR. Najít vhodný nástroj, který dobře funguje a usnadňuje práci místo, aby ji přidělával není lehké. Když jsem měl naprogramovat svůj první AVR mikroprocesor, narazil jsem na celou řadu problémů. Našel jsem na Internetu množství programů prohlašujících o sobě, že jsou schopny ISP programování. V reálu jich většina zvládala jen ty nejzákladnější typy mikroprocesorů. Nakonec jsem skončil u AVR-Studia. Posléze jsem však s rozčarováním zjistil, že můj programátor STK200 na paralelní port už není dávno podporovaný a starší verze zase neznaly ATmega128.
Počátky s UISP nebyly jednoduché, ale nakonec se ukázalo, že se jedná o velice silný nástroj, který má za sebou několik let vývoje. Nejedná se o snažení jednotlivce, ale skupiny lidí což zaručuje budoucnost tomuto projektu. V neposlední řadě tím, že program používá víc lidí dochází ke vzniku zpětné vazby a pokud se vyskytne chyba je brzy odhalena a opravena. Záhy poté co je uveden na trh nový AVR mikroprocesor a není doposud v UISP podporován, tak se určitě někdo najde kdo ho používá a doplní.
Běžní uživatelé mohou namítnout, že ovládání programu z příkazové řádky je nepraktické a zdlouhavé. Pokud se však hlouběji podíváme jak jsou koncipované nástroje v různých integrovaných vývojových prostředích tak zjistíme, že samotná výkonná část programující mikroprocesor je oddělený program ovládaný z příkazové řádky. Uživatel ovládá program přes grafické rozhraní, který pak spustí program s nastavenými parametry. Jestliže je znám způsob ovládání program lze se zcela vyhnout použití grafického rozhraní pokud k tomu existují nějaké důvody.
DOWNLOAD & odkazy
- [1] AVR In-System Programmer http://savannah.nongnu.org/projects/uisp
- [2] KYLE, J. P. pAVR Project http://www.avr1.org/pavr/pavr.html
- [3] KYLE, J. P. STK500 Protocol AVR Bootloader http://www.avr1.org/stk500boot/stk500boot.html
- [4] KIPP, H. Ethernet boot loader http://www.ethernut.de/en/eboot/index.html
- [5] DEAN, B. S. AVR Downloader/UploaDEr http://savannah.nongnu.org/projects/avrdude
- [6] LANCONELLI, C. PonyProg serial device programmer http://www.lancos.com/prog.html
- [7] KOSTOMLATSKÝ, M. AVR JTAG ICE - A co na to zlaté (nejen) české ručičky http://www.mcu.cz/modules/news/article.php?mode=flat&storyid=353
- [8] Atmel Corporation homepage http://www.atmel.com
- Článek na HW serveru - STK500 Protocol AVR Bootloader
- UISP version 20030618 - uisp.zip
giveio.zip - Utilita nutná pro funkci UISP na Windows 2000 a vyšších (ovladač LPT) -
- Knihovna emulující UNIXové chování na operačních systémech MS Windows - cygwin1.zip