PK Design UniProg-USB v1.0 Programovací kabel modulárního vývojového systému MVS
Uživatelský manuál
Verze dokumentu 1.1 (20.08.2007)
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Obsah 1 Upozornění ..................................................................................................................................................... 3 2 Úvod ................................................................................................................................................................ 4 2.1 2.2
Vlastnosti ................................................................................................................................................................................... 4 Použití ........................................................................................................................................................................................ 4
3 Provozní podmínky a parametry .................................................................................................................. 5 4 Popis ................................................................................................................................................................ 6 4.1 4.2 4.3
Základní informace .................................................................................................................................................................... 6 Hardware (obvodové zapojení) programátoru ........................................................................................................................... 6 Firmware (vnitřní program) programátoru ................................................................................................................................ 6 4.3.1 Bootloader firmware....................................................................................................................................................... 7 4.3.2 AVR JTAG firmware...................................................................................................................................................... 7 4.3.3 Virtual processor firmware............................................................................................................................................. 7 4.3.4 Funkce Virtuálního procesoru.........................................................................................................................................9 4.3.5 Instrukční sada virtuálního procesoru........................................................................................................................... 11
5 Použití - Hardware ....................................................................................................................................... 12 5.1 5.2 5.3 5.4
Napájení ................................................................................................................................................................................... 12 Připojení k osobnímu počítači ................................................................................................................................................. 12 Volba spuštění požadovaného firmware .................................................................................................................................. 12 Připojení k programované aplikaci .......................................................................................................................................... 12
6 Použití - Software ......................................................................................................................................... 15 6.1 6.2 6.3 6.4 6.5
Instalace ovladačů na PC a nastavení virtuálního COM portu ................................................................................................ 15 Programování přes ISP rozhraní (AVR ISP programmer) ...................................................................................................... 20 Programování přes JTAG rozhraní (Atmel AVR Studio) ....................................................................................................... 22 Aktualizace firmware ............................................................................................................................................................... 25 Používání programu UniProg-USB Virtual Processor Control ............................................................................................... 28
7 Literatura a odkazy ..................................................................................................................................... 29 8 Historie verzí dokumentace ........................................................................................................................ 29
Verze dokumentu 1.1 (20.08.2007)
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
1 Upozornění Při používání zařízení dodržujte provozní podmínky uvedené v této kapitole a v kapitole „Provozní podmínky a parametry“. Nedodržení těchto doporučených provozních podmínek může vézt k poškození či zničení programovacího kabelu, což může mít za následek poškození či zničení zařízení, ke kterému je připojen. Za poškození čí zničení programovacího kabelu a k němu připojených zařízení, důsledkem porušení doporučených provozních podmínek, nenese výrobce odpovědnost. UniProg-USB byl navržen pro vývojové a výukové účely. Není proto specifikována výsledná hodnota vyzařovaného elektromagnetického pole. Uživatel také musí brát v úvahu, že programovací kabel není proti vlivům elektromagnetického pole nikterak speciálně chráněn a jeho funkce může být při vysokých intenzitách tohoto pole ovlivněna. Při jakékoliv manipulaci s tímto zařízením je nutné zabezpečit, aby nemohlo dojít k elektrostatickému výboji, a proto vždy používejte ESD ochranné pomůcky (uzemňovací ESD náramek, vodivou antistatickou podložku apod.). Elektrostatický výboj může mít za následek zničení programovacího kabelu i připojeného zařízení. Není dovoleno vystavovat programovací kabel intenzivnímu slunečnímu záření, rychlým změnám teplot, vodě či vysoké vlhkosti. Není také dovoleno jej jakkoliv mechanicky namáhat. Kabel není odolný proti vlivům agresivních prostředí. Při čištění nesmí být použito rozpouštědel ani saponátů. Čistěte pouze suchým antistatickým hadříkem (dodržujte ESD podmínky z minulých odstavců).
Verze dokumentu 1.1 (20.08.2007)
3 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
2 Úvod 2.1
Vlastnosti
● Jednoduché připojení k osobnímu počítači přes USB port. ● Plnohodnotné galvanické oddělení. ● Vysoké komunikační rychlost s PC (až 921 600 baud). ● Programování přímo v aplikaci (výstupy jsou typu 3 stavová logika). ● Napájení 3.3V-5.0V. ● Vysoká univerzálnost vyplývající z použitého firmware, který je rozdělen na 3 samostatné části: ○ Bootloader – update dalších 2 částí firmware z PC. ○ AVR JTAG – programování a ladění obvodů Atmel AVR s JTAG rozhraním. ○ Virtual processor – provádí příkazy (ze spec. instrukční sady) zaslané z PC: ■ vysokorychlostní programování AVR přes ISP„low-voltage“ sériové rozhraní ■ harvardská architektura – paměť dat (512 bytes), paměť programu (256 bytes) ■ úplné řízení vnitřního SPI rozhraní (lze použít pro programování MCU, pamětí, řízení externích ADC, DAC,
IO expandérů, převodník USB<=>SPI atd.) ■ měření napětí pomocí integrovaného 2 kanálového 10bit ADC s možností zasláním naměřených hodnot ihned do
PC a nebo je uložit do vnitřní paměti dlouhé 256 vzorků zápis a čtení 7 třístavových digitálních vstupů/výstupů (DIOx) nastavení a používání vnitřního 16bit PWM generátoru s 1 výstupem deset 8-bit registrů (lze je používat po dvojicích jako 16-bit) pro základní operace add, sub, and, or, xor, compare instrukce pracující s : registry, konstantami, DIOx, SPI, UART, pamětí dat i programu instrukce provádějící : podmíněný skok, aritmetické a logické operace, definované zpoždění apod. instrukce je možné vykonávat ihned po přijetí z PC a nebo je možné je uložit do paměti programu a ten pak spustit jako celek (virtual processor pak pracuje velmi podobně jako normální MCU) ● Automatické spuštění 1 ze 3 částí firmware na základě detekce připojeného kabelu/redukce v konektoru MLW10. ● Programovací konektor (typ MLW10) je kompatibilní s ISP konektory základových desek systému MVS PKDesign. ● Velmi malé rozměry – obal je typu „redukce CAN9-CAN9“. ■ ■ ■ ■ ■ ■
2.2
Použití
● Vysokorychlostní programování mikrokontrolérů Atmel AVR přes ISP rozhraní pomocí volně dostupného programu
„Atmel AVR ISP programmer“, viz. [1]. MCU
FLASH
EEPROM
Read
Write
Read
Write
ATmega16 (16kB FLASH, 512B EEPROM)
0.34s
1.45s
0.06s
4.72s
ATmega128 (128kB FLASH, 4096B EEPROM)
2.41s
7.66s
0.11s
37.5s
Tabulka 1 - Příklad rychlostí čtení a programování pro plnou FLASH a EEPROM paměť (PC AthlonXP 1700+) ● Programování a ladění mikrokontrolérů Atmel AVR přes JTAG rozhraní pomocí volně dostupného programu
Atmel „AVR Studio“, viz. [2]. ● Programování libovolného mikrokontroléru či paměti s rozhraním SPI (je nutné vytvořit vlastní řídící program). ● Univerzální použití – základní vlastnosti jádra Virtual processor je možné ovládat programem „UniProg Virtual Processor Control“, viz. [1]. Je možné vytvořit např.: ○ systém pro nastavování a vyčítání 7 digitálních signálů ○ systém měření a záznamu 2 různých napěťových signálů (bez přídavného děliče pouze 0-2.5V) ○ generátor obdélníkového signálu s nastavitelnou frekvencí a střídou (PWM) ○ univerzální převodník USB <=> SPI, kterým je možné řídit např. IO expandér, externí ADC či DAC atd. Je možné vytvářet libovolné kombinace výše uvedených aplikací a doplnit je o další funkce.
Verze dokumentu 1.1 (20.08.2007)
4 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
3 Provozní podmínky a parametry Maximální dovolené napájecí napětí VCC............................................................................ 5.7V Maximální dovolené připojené napětí na vstupně/výstupních vývodech............................ VCC + 0.5V Maximální dovolený proud vstupně/výstupních vývodů..................................................... 10mA Provozní napájecí napětí VCC...............................................................................................2.7V – 5.5V Klidový odběr proudu (svítí všechny 3 LED diody)............................................................60mA Skladovací teplota okolí.......................................................................................................-10°C až +40°C Provozní teplota okolí..........................................................................................................+10°C až +30°C Všechna napětí jsou stejnosměrná a jsou vztažena k zemnímu vodiči GND (pokud není uvedeno jinak).
POZOR!!! Při nedodržení provozních podmínek zde uvedených, či nesprávném připojení k programované aplikaci (viz. kapitola Použití Hardware), hrozí zničení programovacího kabelu i připojeného hardware!
POZOR!!!
Verze dokumentu 1.1 (20.08.2007)
5 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
4 Popis 4.1
Základní informace
UniProg-USB je umístěn v krabičce redukce CAN9-CAN9, z jedné strany je přístupný USB konektor typu A, ze druhé konektor MLW10. Detaily připojení jsou popsány v kapitole Použití - Hardware. Na horní straně jsou pod průsvitným štítkem umístěny 3 LED diody s následujícími významy:
4.2
Jméno LED
Barva LED
Pwr
Zelená
Jtg
Žlutá
Act
Červená
Význam Indikuje připojení napájecího napětí Udává, zda je aktivní JTAG firmware (svítí) a nebo Virtual processor firmware (nesvítí) Zobrazuje aktivitu (např. programování apod.)
Hardware (obvodové zapojení) programátoru
Hardware programovacího kabelu UniProg-USB je vysoce univerzální a skládající se z následujících částí: • USB-A connector ............. konektor (zásuvka) pro připojení PC pomocí kabelu USB typu A-A „hub“ • FT232 .............................. integrovaný obvod převádějící USB na UART-TTL • Galvanic separation ......... obvody galvanicky oddělující programovanou aplikaci od PC (ochrana PC) • mega16L .......................... mikrokontrolér obsahující řídící program (firmware) = jádro programátoru • MLW10 connector ........... konektor pro připojení programované aplikace
USB-A connector
FT232
Galvanic separation
mega16L
MLW10 connector
Obr. 1 - Jednotlivé části UniProg-USB
4.3
Firmware (vnitřní program) programátoru
Vnitřní program (dále jen firmware) mikrokontroléru je složen ze 3 částí: Bootloader, AVR JTAG a Virtual processor. ATmega16L firmware AVR JTAG Bootloader Virtual procesor
Obr. 2 - Struktura firmware programátoru Tyto části firmware si je možné představit jako 3 různé aplikace. Volba, která z nich bude po připojení napájecího napětí v mikrokontroléru programátoru spuštěna, se provádí automaticky během startu podle typu připojení propojovacího kabelu PFL10PFL10 – toto platí pouze pro firmware-y AVR JTAG a Virtuální procesor. Firmware Bootloader je možné spustit pouze z již spuštěného firmware Virtuální procesor a aktivuje se speciálním programem „UniProg bootloader activator“, dostupný na [1]. Další informace jsou popsány v kapitole Použití - Hardware.
Verze dokumentu 1.1 (20.08.2007)
6 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
4.3.1 Bootloader firmware Umožňuje aktualizaci (update) dalších 2 částí firmware např. v případě vydání nové, vylepšené verze. Tyto aktualizace je možné zdarma získat na internetové stránce výrobce [1].
4.3.2 AVR JTAG firmware Umožňuje nejen programování, ale i ladění (debug) mikrokontrolérů Atmel AVR. Programovací kabel spolupracuje s originálním programem Atmel AVR Studio [2], ve kterém lze krokovat vykonávání instrukcí v mikrokontroléru, nastavovat hardwarové breakpointy, zobrazovat a měnit stav všech registrů, periferií a SRAM paměti.
4.3.3 Virtual processor firmware Virtual processor (virtuální procesor) je zde obecně pojat jako sekvenční automat, který se řídí předem vytvořeným programem (seznamem instrukcí). Slovo „virtuální“ zde znamená, že se nejedná o reálný/fyzický/hardwarový systém (procesor vytvořený na chipu), ale o virtuální/softwarový systém. Jinak řečeno, virtuální/softwarový procesor je program provádějící své vlastní předdefinované instrukce reálným/hardwarovým procesorem (v našem případě mikrokontrolérem ATmega16L).jedná se vlastně o emulaci reálného/hardwarového procesoru programově. Výhodou je, že instrukční sada, tj. veškeré instrukce, jsou nadefinovány programově (ne hardwarově výrobcem procesoru) a je možné je v budoucnu jednoduše rozšiřovat a měnit (pouhou změnou programu = firmware virtuálního procesoru). Další výhodou je možnost nekonečného počtu změn řídícího programu, který je uložen v paměti programu (Program memory), protože tato paměť je virtuálně vytvořena v paměti typu SRAM. Systém jako takový není omezen datovou šířkou slova (např. 8 bitů), protože je virtuální a tak je možné vytvořit instrukce pracující s daty libovolné délky (8bit, 16bit, atd.). Nevýhodou je ovšem daleko vyšší časová náročnost všech instrukcí, protože každá z nich je reálně složena z několika desítek instrukcí použitého procesoru, na kterém je tento virtuální procesor spuštěn. Popsaný systém je založen na podobné myšlence, jako je např. JAVA, takže v podstatě na hardware vůbec nezáleží a programový kód pro virtuální procesor je možné spustit na libovolném procesoru. Jako již bylo popsáno výše v sekci popisující hardware UniProg-USB, mikrokontrolér ATmega16L komunikuje s PC přes rozhraní USB pomocí obvodu FT232, což je převodník USB<=>UART. Virtuální procesor pracuje s následujícím nastavením UARTu:
921600 baud, 8 data bits, one stop bit, no parity, no hardware and no software handshaking Struktura a propojení virtuálního procesoru na reálné periferie je znázorněno na následujícím obrázku.
Virtual processor Program memory Data memory Registers
Virtual processor CORE Memory and registers controller
Real peripherals Digital IOs
DIO[0..6]
Timer/counter SPI I/F
Instructions decoder ALU
UART I/F
FT232
Obr. 3 - Struktura firmware virtuálního procesoru a jeho napojení na reálné periferie Paměť programu (program memory) Zde jsou uloženy instrukce, které má virtuální procesor vykonávat. Paměť je typu SRAM, takže je možné měnit její obsah bez snížení její životnosti (na rozdíl od paměti FLASH). Paměť dat (data memory) Obsahuje data, se kterými virtuální procesor pracuje (může je zasílat na SPI, UART, PWM, DIO a nebo data získaná z ADC, SPI, UART, DIO může do této paměti ukládat). Paměť je typu SRAM.
Verze dokumentu 1.1 (20.08.2007)
7 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Registry (registers) Virtuální procesor obsahuje 10 registrů (8-bit), které může využívat pro různé aritmeticko/logické operace apod. Tyto registry je však možné používat i po dvojicích jako 16 bitové. Následující tabulka popisuje vzájemné relace mezi 8 a 16 bitovými registry. Číslo
Registr 8bit
Číslo
Registr 16bit
0
REG-0
128
REG-01
1
REG-1
129
REG-12
2
REG-2
130
REG-23
3
REG-3
131
REG-34
4
REG-4
132
REG-45
5
REG-5
133
REG-56
6
REG-6
134
REG-67
7
REG-7
135
REG-78
8
REG-8
136
REG-89
9
REG-9 Tabulka 2- Registry virtuálního procesoru
Jádro virtuálního procesoru (virtual processor core) Provádí základní operace s pamětmi dat a programu, po spuštění programu načítá jednotlivé instrukce v paměti programu, dekóduje je a provádí. Jeho funkce je popsána v následující kapitole.
Verze dokumentu 1.1 (20.08.2007)
8 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
4.3.4 Funkce Virtuálního procesoru Firmware virtuálního procesoru provádí 3 základní funkce: ● přímé provádění instrukcí zaslaných z PC ● provádění speciálních příkazů pro práci s pamětmi ● provádění instrukcí z paměti programu
Přímé provádění instrukcí zaslaných z PC Firmware virtuálního procesoru umožňuje přímé provádění instrukcí, které se normálně provádějí z paměti programu (viz. text níže). Je to možné přirovnat ke speciálnímu ladícímu postupu, kdy se instrukce zasílají přímo přes USB z PC a ihned se vykonávají. Zasílá se přímo kód instrukce, bez nějakého doplnění o další byty (žádné CRC apod). Každá instrukce, která nevrací ze své podstaty hodnotu (tj. nezasílá svůj výsledek přes UART a následně USB do PC), je potvrzena procesorem zasláním potvrzovacího bytu „Ack“. Přímého provádění instrukcí se dá využít např. při vytváření programu – uživatel (programátor) si může jednotlivé instrukce ihned otestovat a ověřit si, že je používá správně. Samozřejmě není možné takto testovat všechny instrukce, např. instrukce podmíněného skoku nemají při tomto postupu žádný význam, protože se instrukce neprovádějí z paměti programu, ale přímo (zasláním z PC) a tak není možné skočit na zadanou adresu podmíněného skoku. Nevýhodou přímého zasílání instrukcí je, že je nutné po zaslání instrukce vyčkat na odeslání potvrzení jejího provedení, a to proto, aby nová instrukce nebyla do UniProg-USB zaslána dříve, než se dokončí instrukce předešlá. Kdyby tato časová návaznost nebyla dodržena, tak by došlo ke ztrátě části nově zasílané instrukce. Z tohoto důvodu byla také vytvořena další část virtuálního procesoru, tj. provádění instrukcí z paměti programu. Popis instrukční sady je uveden níže. Struktura dat při zaslání instrukce pro přímé (okamžité) provedení je:
Kód instrukce (1 byte) + DB# (1 byte) + (Data[0..7]) - parametry instrukce (0..8 bytů dle typu instrukce) Vysvětlivky: Instrukční kód.....datový (číselný) kód instrukce z instrukční sady DB#.................... počet bytů dat (Data Bytes number), které má instrukce zpracovat Data.................... data (parametry), která se zasílají společně s instrukcí, jejich počet musí být shodný s DB# Ack..................... potvrzovací byte – úspěšné provedení, 10(dec), 0x0A(hex) Příklad - přímé provedení instrukce „SUID“: ● ● ●
Kód instrukce SUID (send by UART device ID - viz. instrukční sada) je 0 a počet dat (parametrů), které má tato instrukce zpracovat je 0. Celý blok dat, který se přímo vyšle přes USB do UniProg-USB pak bude vypadat takto: „0 0“. UniProg-USB zašle do PC pouze odezvu na instrukci „SUID“, tj. svůj „ID string“ bez dalších potvrzovacích bytů. Celá komunikace vypadá takto: PC zašle DEC -> 0 0
UniProg-USB odpoví DEC
->
85 110 105 80 114 111 103 85 83 66 45 48 55 48 56 48 51
Pokud DEC hodnoty vyjádříme znakově, získáme: CHAR -> UniProgUSB-070803 <-- datumová část řetězce se může lišit podle aktuální verze firmware
Provádění speciálních příkazů pro práci s pamětmi Další funkcí virtuálního procesoru je přijímat speciální příkazy z osobního počítače PC přes USB prostřednictvím bloku UART (v mikrokontroléru ATmega16) a dále je vykonává. Je to vlastně velmi podobné přímému provádění instrukcí s tím rozdílem, že se neprovádí instrukce, ale speciální příkazy, které umožňují provádění základních operací s pamětmi dat (Data memory) a programu (Program memory). Konkrétně se jedná o příkazy: naplnění zvolené paměti zaslaným balíkem dat, vymazání paměti a spuštění programu, který byl uložen do paměti programu. Každá z těchto operací je potvrzena zasláním „odpovědi“ zpět do PC - Ack, RunStart a Fail. Při zasílání příkazu je možné předat daleko více dat (0..256) než v případě zasílání instrukcí (0..8). Struktura příkazu:
Kód příkazu (1 byte) + DB# (1 byte) + (Data[0..255]) - parametry příkazu (0..256 bytů dle typu příkazu apod.)
Verze dokumentu 1.1 (20.08.2007)
9 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál Popis
Kód DB# DEC min/max
Data
Odpověď (počet bytů)
Store C8[0..255] into DataMem, start addr = REG-89, REG-89 += DB
129
1 / 256
C8[0..255]
Ack / Fail (1)
Store C8[0..255] into InstrMem, start addr = 0, clear the rest space
138
1 / 256
C8[0..255]
Ack / Fail (1)
Store C8[0..255] into InstrMem, start addr = 0, clear the rest space, RUN
139
1 / 256
C8[0..255]
RunStart + prog. answers + Ack / Fail (1+?+1)
Store C8[0..255] into InstrMem, start addr = ADDR8
140
2 / 257
ADDR8, C8[0..255]
Ack / Fail (1)
Store C8[0..255] into InstrMem, start addr = ADDR8, RUN
141
2 / 257
ADDR8, C8[0..255]
RunStart + prog. answers + Ack / Fail (1+?+1)
Clear InstrMemory
142
0
-
Ack / Fail (1)
RUN instructions stored in InstrMemory
148
0
-
RunStart + prog. answers + Ack / Fail (1+?+1)
Tabulka 3 - Příkazy pro práci s pamětí dat a programu virtuálního procesoru Vysvětlivky – sloupce: Kód..................... datový (číselný) kód příkazu DB#.................... počet bytů dat (Data Bytes number), které má příkaz zpracovat, tabulka udává min. a max. počet, které lze použít (v případě, že se má zpracovat 256 bytů, je nutné zadat DB# = 0) Data.................... data, která se předávají společně s příkazem, jejich počet musí být shodný s DB# Odpověď.............byte, který je zaslán zpět do PC jako potvrzení příkazu či začátku provádění programu apod. Vysvětlivky – hodnoty v tabulce: C8[0..n]...............pole (balík) 8 bitových dat, která se mají uložit do dané paměti start addr............. 8 bitová adresa, na kterou se začnou přijatá data C8[0..n] do dané paměti ukládat Ack..................... potvrzovací byte – úspěšné dokončení, 10(dec), 0x0A(hex) RunStart..............potvrzovací byte – provádění programu spuštěno, 11(dec), 0x0B(hex) Fail......................potvrzovací byte – neúspěšné dokončení, 14(dec), 0x0E(hex) prog. answers......byty, vyslané programem samotným
Provádění instrukcí z paměti programu Při provádění instrukcí z paměti programu, tj. v okamžik, kdy byl do virtuálního procesoru zaslán speciální příkaz RUN, jsou z paměti programu instrukce načítány a následně vykonávány postupem „instrukce za instrukcí“. Na rozdíl od provádění instrukcí ihned po příjmu z PC, nezasílají jednotlivé instrukce prováděné z paměti programu potvrzení o jejich dokončení a tím nezatěžují přenosový kanál. Zasílání potvrzení není nutné, protože následující instrukce se začne provádět teprve až po té, co se aktuálně prováděná instrukce úplně dokončí. Tím se dosáhne bezpečného provádění sledu instrukcí a zároveň daleko vyšší rychlosti provádění instrukcí v porovnání s přímým prováděním. Příklad - vymazání paměti programu, uložení instrukce „SUID“ do paměti programu a okamžité spuštění programu: ● Příkaz pro vymazání paměti programu má kód 142 a počet dat, které se mají vyslat je 0 (viz. tabulka 3). Celý příkaz pak bude vypadat takto: „142 0“. Po odeslání tohoto příkazu je nutné počkat na příjem bytu Ack (0x0A) z UniProg-USB. ● Příkaz, který uloží data do paměti programu a po uložení program spustí má kód 139 (viz. tabulka 3). Instrukce SUID, kterou do paměti chceme uložit má instrukční kód „0 0“ (viz. instrukční sada), což jsou zároveň data, která budeme ukládat a jejichž počet je roven 2 (dva byty). Celý příkaz pak bude vypadat takto: „139 2 0 0“. Po odeslání tohoto příkazu je opět nutné počkat na příjem bytu, tentokrát se místo Ack vyšle potvrzení započetí spuštění programu RunStart (0x0B). ● V tomto okamžiku začne provádění programu, tj. spuštění první a zároveň jediné instrukce v paměti programu - SUID (send by UART device ID). UniProg-USB tedy zašle do PC svůj „ID string“ následovaný potvrzením o dokončení provádění programu Ack (0x0A) ● Celá komunikace vypadá takto: PC zašle
UniProg-USB odpoví
DEC -> 142 0
DEC
->
10
DEC -> 139 2 0 0
DEC
->
11 85 110 105 80 114 111 103 85 83 66 45 48 55 48 56 48 51 10
Pokud DEC hodnoty vyjádříme znakově, získáme: CHAR -> (#11)UniProgUSB-070803(#13) <-- datumová část řetězce se může lišit podle aktuální verze firmware
Verze dokumentu 1.1 (20.08.2007)
10 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
4.3.5 Instrukční sada virtuálního procesoru Instrukční sada je seznam instrukčních kódů, které virtuální procesor umožňuje vykonávat a to jak přímo (ihned po zaslání), tak i z paměti programu. Instrukce jsou přesně definovány programem mikrokontroléru (firmware) a jejich popis je uveden v tabulce 4. Instrukce je „balík dat“ o délce 2 až 10 bytů, skládající se z kódu instrukce, čísla udávajícího počet parametrů (dat) a parametrů (dat) samotných. Struktura instrukce:
Kód instrukce (1 byte) + DB# (1 byte) + (Data[0..7]) - parametry instrukce (0..8 bytů dle typu instrukce) Data[0..7] jsou uvedeny v závorkách ( ), protože je možné provádět instrukci i bez nich, instrukce je pak složena pouze z kódu instrukce a čísla udávajícího počet parametrů, které je v tomto případě 0 (viz. např. instrukce SUID). Příklady instrukcí: SUID - send by UART device ID => 0 SUR8 - send by UART REG8[0..7] => 44 SUR8 - send by UART REG8[0..7] => 44
Instrukce
0 1 5
0 0
1
2
3
4
Význam
Tabulka prozatím nedokončena Je však možné použít program UniProg-USB Virtual Processor Control, viz. kapitola
6.5 Používání programu UniProg-USB Virtual Processor Control, který umožňuje zobrazení všech instrukcí včetně jejích popisu a příkladu použití a umožňuje také sestavování programů.
Tabulka 4 - instrukční sada firmware Virtual Processor
Verze dokumentu 1.1 (20.08.2007)
11 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
5 Použití - Hardware 5.1
Napájení
Programovací kabel je nutné napájet napětím 2.7V – 5.5V, které se přivádí na programovací konektor CON2 (MLW10) přímo z programované aplikace (vývody VCC a GND). Pokud aplikace neumožňuje napájení tímto napětím, není možné programovací kabel použít. Programovací kabel není napájen z USB, protože obsahuje obvody galvanického oddělení. Při používání se základovou deskou systému MVS-PKDesign je UniProg-USB po propojení s deskou kabelem PFL10-PFL10 automaticky napájen.
5.2
Připojení k osobnímu počítači
Programátor UniProg-USB se k osobnímu počítači (PC) připojuje kabelem USB A-A typu „hub“.
5.3
Volba spuštění požadovaného firmware
Jak již bylo popsáno výše, volba firmware, který má být spuštěn (JTAG nebo Virtuální procesor, umožňující ISP), se provádí automaticky. UniProg-USB ihned po připojení napájecího napětí detekuje způsob, jakým je připojen k programované aplikaci a na základě tohoto připojení je pak automaticky zvolen příslušný firmware. Uživatel tak nemusí sám nic nastavovat. Propojovacím kabelem je zde myšlen např. kabel PFL10-PFL10. AVR JTAG
Propojovací kabel je připojen k programátoru přes „JTAG“ redukci (obr. ). POZOR!!! Redukci je nutné zapojit přímo do UniProg-u, ne až na konec kabelu PFL10-PFL10.
Virtual processor
Propojovací kabel je připojen přímo – bez redukce (obr. )
Bootloader
Postup je stejný, jako při spouštění firmware Virtual processor, bootloader se pak aktivuje speciálním programem „UniProg bootloader activator“, volně dostupným na [1] Tabulka 5 - Podmínky pro spuštění jednotlivých firmware
5.4
Připojení k programované aplikaci
UniProg-USB se k programované aplikaci připojuje propojovacím kabelem typu PFL10-PFL10 dodaným s kabelem a nebo jiným typem kabelu vytvořeným uživatelem, který umožní správné propojení vývodů programátoru a programového obvodu.
UniProg-USB
JTAG redukce
PFL10-PFL10 propojovací kabel
Číslování vývodů programovacího konektorů MLW10 a významy vývodů, pro připojení bez redukce a s JTAG redukcí, jsou uvedeny v níže.
POZOR!!! Redukci je nutné zapojit přímo do UniProg-u, ne až na konec kabelu PFL10-PFL10, viz. předešlý obrázek. Při připojování UniProg-u k programované aplikaci kabelem vlastního výroby zkontrolujte, že vývody konektoru UniProg-u a programované aplikace mají shodné významy (viz. následující tabulky). Při nesprávném spojení vývodů programovacího konektoru a vývodů konektoru v programované aplikaci, či nesprávném připojení JTAG redukce, může dojít ke zničení UniProg-u či programované aplikace! Propojování věnujte zvýšenou pozornost.
POZOR!!! Verze dokumentu 1.1 (20.08.2007)
12 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Význam vývodů konektoru MLW10 programovacího kabelu (bez redukce) 1
2
Význam
3
4
ADIO-0
1
2
ADIO-1 / PWM-OUT
5
6
VCC
3
4
GND
7
8
SCK – DIO-2
5
6
DIO-3 – MISO
9
10
MOSI– DIO-4
7
8
DIO-5 – RST\
DIO-6
9
10
Nezapojovat
Obr. 4 - konektor MLW10
Číslo
Význam
Tabulka 6 - přiřazení vývodů konektoru MLW10 programovacího kabelu (bez redukce)
Významy zkratek v tabulce: ADIO-0..1 – analogové vstupy a digitální vstupy/výstupy – v případě použití jako analogových vstupů je možné napětí na těchto vývodech digitalizovat (v rozsahu 0 - 2.5V), v případě použití jako digitálních vstupů/výstupů se tyto vývody chovají jako 3-stavová logika (každý pin je možné samostatně nastavit jako vstup či výstup). DIO-2..6 – digitální vstupy/výstupy – chovají se jako 3-stavová logika (každý pin je možné samostatně nastavit jako vstup či výstup). PWM-OUT – výstup PWM (pulzně šířkového modulátoru). Nezapojovat – určeno pro test. VCC, GND – vývody určené pro připojení napájecího napětí. SCK, MISO, MOSI, RST\ – základní signály při použití SPI komunikace – např. při programování Atmel AVR mikrokontrolérů přes low-voltage ISP rozhraní (viz. následující obrázek). Rozložení těchto signálů na MLW10 konektoru je plně kompatibilní se systémem PK Design MVS (základové desky MB-ATmega16/32, MB-ATmega128). Jak je z tabulky vidět, že některé vývody mají více funkcí. To, která z nich je aktivní je dáno pouze aktuálním nastavení UniProgUSB, které je možné průběhu měnit.
Připojeno bez jakékoliv redukce (přímo)
Připojeno do ISP konektoru
Obr. 5 - Připojení UniProg-USB (bez redukce) k základové desce PK Design MB-ATmega16/32 přes ISP rozhraní
Verze dokumentu 1.1 (20.08.2007)
13 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Význam vývodů konektoru MLW10 redukce JTAG (přímo zapojené do UniProg-USB) 1
2
Význam
3
4
TCK
1
2
GND
5
6
TDO
3
4
VCC
7
8
TMS
5
6
RST\
9
10
VCC
7
8
Nezapojeno
TDI
9
10
GND
Obr. 6 - konektor MLW10
Číslo
Význam
Tabulka 7 - přiřazení vývodů konektoru MLW10 redukce JTAG (zapojené do prog. kabelu)
Významy zkratek v tabulce: TCK, TMS, TDO, TDI a RST\ – základní signály rozhraní JTAG. Rozložení těchto vývodů je kompatibilní se standardem AVR JTAG ICE a také se systémem PK Design MVS (základové desky MB-ATmega16/32, MB-ATmega128), viz. následující obrázek. VCC, GND – vývody určené pro připojení napájecího napětí.
Připojeno přes JTAG redukci
Připojeno do JTAG konektoru
Obr. 7 - Připojení UniProg-USB s JTAG redukcí k základové desce PK Design MB-ATmega16/32 přes JTAG rozhraní
Verze dokumentu 1.1 (20.08.2007)
14 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
6 Použití - Software 6.1
Instalace ovladačů na PC a nastavení virtuálního COM portu
Kapitola popisuje instalaci ovladačů (drivers) pouze pro operační systém Windows XP, pro ostatní operační systémy je postup obdobný. Originální postupy v angličtině pro instalaci ovladačů pro všechny operační systémy Windows, ale i Linux je možné najít na stránkách firmy FTDI - http://www.ftdichip.com/Documents/InstallGuides.htm. Před samotnou instalací je nutné ovladače stáhnout a to buď z [1] a nebo přímo z internetové stránky firmy FTDI http://www.ftdichip.com. Při prvním připojení UniProg-USB k PC je nutné nainstalovat příslušné ovladače do operačního systému, aby programy v PC mohly správně komunikovat s hardwarem programátoru. Po instalaci je důležité zkontrolovat, na kterém virtuálním COM portu (VCP) bude UniProg-USB přístupný, protože pro případnou aktualizaci (update) firmware je nutné, aby byl nastaven port COM1-COM4 (program Atmel AVR PROG, který se při aktualizaci používá, pracuje pouze s těmito porty). Je také možné změnit parametry virtuálního portu tak, aby komunikace s UniProg-USB byla rychlejší. Postup instalace a nastavení je následující: 1) Připojte UniProg-USB k PC kabelem USB, prozatím nepřipojujte k základové desce MB-ATmegaXXX ani k jinému hardware. Na programátoru nebude svítit žádná LED dioda. Po chvíli operační systém Windows XP detekuje nově připojené zařízení a zobrazí v hlášku Nalezen nový hardware.
2) Po chvíli se zobrazí okno Průvodce nově rozpoznaným hardwarem. Zde zvolte Ne, nyní ne a zmáčkněte tlačítko Další.
3) V dalším okně zvolte Instalovat ze seznamu či daného umístění (pro zkušené uživatele) a zmáčkněte tlačítko Další.
Verze dokumentu 1.1 (20.08.2007)
15 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
4) V dalším okně zvolte zaškrtávací políčka podle obrázku (vyznačeno červeně) a zvolte pomocí tlačítka Procházet (označeno modře) adresář, ve kterém máte připravené ovladače (označen zeleně).
5) Poté dojde k nainstalování první části ovladačů – ovladače k zařízení USB Serial Converter. Zmáčkněte tlačítko Dokončit.
6) Po chvíli Windows XP z detekuje druhou část připojeného zařízení a zobrazí v hlášku Nalezen nový hardware.
7) Za okamžik se zobrazí okno Průvodce nově rozpoznaným hardwarem. Zde zvolte Ne, nyní ne a zmáčkněte tlačítko Další.
Verze dokumentu 1.1 (20.08.2007)
16 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
8) V dalším okně zvolte Instalovat ze seznamu či daného umístění (pro zkušené uživatele) a zmáčkněte tlačítko Další.
9) V dalším okně zkontrolujte, že adresář je stejný jako při instalaci první části ovladačů a zmáčkněte tlačítko Další.
10) Poté dojde k nainstalování druhé části ovladačů – ovladače k zařízení USB Serial Port – virtuální COM port. Zmáčkněte tlačítko Dokončit.
11) Po chvíli Windows XP oznámí, že ovladače byly v pořádku nainstalovány a zobrazí v hlášku Nalezen nový hardware – Nový hardware je nainstalován a připraven k použití.
Verze dokumentu 1.1 (20.08.2007)
17 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
12) Tímto byla instalace ukončena a teď je možné zkontrolovat, na kterém virtuálním COM portu (VCP) bude UniProg-USB přístupný. Klikněte pravým tlačítkem myši na ikonu Tento počítač (zobrazeno na levém obrázku) a zvolte Vlastnosti (zobrazeno na pravém obrázku).
13) Zobrazí se okno Vlastnosti systému, klikněna záložku Hardware a pak na tlačítko Správce zařízení.
14) Zobrazí se okno Správce zařízení, zde vidíte po rozbalení položky Porty (COM a LPT) číslo COM portu, na kterém je UniProg-USB přístupný – jedná se o položku USB Serial Port (COMx). Pokud je číslo COM portu vyšší než 4 a předpokládáte aktualizaci firmware programátoru, dvoj-klikněte na položku USB Serial Port (COMx) a postupujte podle dalších bodů. Také pokud zamýšlíte zvýšit rychlost komunikace s UniProg-USB a tím i jeho rychlost programování, pokračujte dal. V jiném případě již pokračovat není potřeba.
15) Po zobrazení okna USB Serial Port (COMx) – vlastnosti klikněte na záložku Port Settings a pak na tlačítko Advanced.
Verze dokumentu 1.1 (20.08.2007)
18 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
16) V okně Advanced Settings for COMx změňte COM port na hodnotu 1 – 4 (vyznačeno červeně). Při výběru mějte na paměti, že se zvolená hodnota nesmí být shodná s jiným zařízením. Dále můžete zvýšit rychlost komunikace mezi PC a UniProg-USB a tím rychlost programování změnou parametru Latency Timer [msec] na hodnotu 1 (znázorněno modře). Změny potvrďte tlačítkem OK.
17) Změny se projeví teprve až po odpojení a následném připojení UniProg-USB k PC a můžete je zkontrolovat v okně Správce zařízení. Tím je kontrola a nastavení virtuálního COM portu ukončena.
Verze dokumentu 1.1 (20.08.2007)
19 / 30
PK Design 6.2
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Programování přes ISP rozhraní (AVR ISP programmer)
1) Připojte UniProg-USB k základové desce kabelem PFL10-PFL10 do ISP konektoru bez jakéhokoliv adaptéru. 2) Zkontrolujte, že po připojení na UniProg-USB soustavně svítí zelená LED dioda a krátce blikne dioda červená. Předpokládá se, že základová deska má připojeno napájecí napětí. 3) Propojte UniProg-USB s PC USB kabelem. 4) V případě, že jste připojili UniProg-USB k PC poprvé, nainstalujte potřebné USB drivery (viz. kapitola Instalace ovladačů na PC a nastavení virtuálního COM portu). 5) Spusťte program Atmel AVR ISP Programmer v6.0 nebo novější (nejnovější verze je vždy dostupná na [1]).
6) Pokud není automaticky nastaven typ programátoru na PKDesign UniProg, tak jej zvolte ručně (na obrázku znázorněno červeně). Program následně nalezne připojený UniProg-USB na daném COM portu (znázorněno na obrázku modře) a pokusí se detekovat mikrokontrolér, ke kterému je UniProg-USB připojený (znázorněno zeleně).
Verze dokumentu 1.1 (20.08.2007)
20 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
7) Rychlost programování je závislá na frekvenci SPI sběrnice, přes kterou je UniProg-USB připojen k programovanému MCU. Pokud je MCU řízen krystalem s nízkým kmitočtem, je nutné snížit frekvenci SPI. Obecně lze říci, že frekvence SPI musí být minimálně 2x menší, než je frekvence krystalu. To samé platí i při použití interního RC oscilátoru a nebo externího zdroje hodinového signálu. Během detekce MCU se změna frekvence SPI provádí automaticky (snižuje se tak dlouho, dokud není detekce úspěšná). V případě problémů je však možné volbu provézt manuálně ovládacími prvky v sekci Programmer – Speed (znázorněno červeně na následujícím obrázku).
8) Pokud detekce proběhne v pořádku, je možné začít programovat FLASH a EEPROM paměti a také FUSE a LOCK bity.
Verze dokumentu 1.1 (20.08.2007)
21 / 30
PK Design 6.3
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Programování přes JTAG rozhraní (Atmel AVR Studio)
1) Připojte UniProg-USB k základové desce do JTAG konektoru za použití JTAG redukce. JTAG adaptér musí být zapojen přímo do UniProg-USB, nikoliv do základové desky. Při připojení do základové desky bez JTAG redukce a nebo při nesprávném připojení redukce hrozí zničení UniProg-USB i základové desky. 2) Zkontrolujte, že po připojení na UniProg-USB soustavně svítí všechny 3 LED diody. Předpokládá se, že základová deska má připojeno napájecí napětí. 3) Propojte UniProg-USB s PC USB kabelem. 4) V případě, že jste připojili UniProg-USB k PC poprvé, nainstalujte potřebné USB drivery a zkontrolujte, na který COM port byl virtual COM port driver (VCP) nainstalován (vše viz. kapitola Instalace ovladačů na PC a nastavení virtuálního COM portu). 5) Spusťte program Atmel AVR Studio, není potřeba otevírat projekt a tak v úvodním okně Welcome to AVR Studio klikněte na tlačítko Cancel (zobrazeno na pravém obrázku).
6) Spusťte JTAG ICE – programovací nástroj AVR studia, ve kterém zvolte menu Tools – Program AVR – Connect..
7) V nově otevřeném okně Select AVR Programmer zvolte platformu JTAG ICE, port Auto a nebo přímo COM port, na který je UniProg-USB připojen. Pak zmáčkněte tlačítko Connect...
Verze dokumentu 1.1 (20.08.2007)
22 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
8) Pokud se zobrazí chybové okno Connect failed – Select AVR Programmer (viz. následující obrázek), tak komunikace AVR Studia s UniProg-USB neproběhla úspěšně. Zkontroluje, že jste provedli předchozí body správně.
9) Pokud se zobrazí jiné chybové okno (viz. následující obrázek), tak komunikace AVR Studia s UniProg-USB proběhla úspěšně, ale UniProg-USB se nemohl připojit k MCU přes JTAG rozhraní kvůli jedné z následujících příčin: a) UniProg-USB je k MCU připojen špatně b) MCU nemá povoleno JTAG rozhraní c) MCU má povoleno JTAG rozhraní, ale obsahuje program, který JTAG rozhraní softwarově zakázal – v tomto případě postačí zatrhnout checkbox Activate target device external reset upon connect a zmáčknout tlačítko Retry
Kontrola a případně i povolení JTAG rozhraní se provádí přes ISP rozhraní např. programem Atmel AVR ISP programmer – jedná se o fuse bit JTAGEN (viz. následující obrázek, detaily viz. datasheet k danému MCU). Po zaškrtnutí JTAGEN fuse je nutné provézt zápis tlačítkem Write (v sekci Fuse bits). Ověření zápisu se provede tlačítkem Read.
Verze dokumentu 1.1 (20.08.2007)
23 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
10) Pokud je vše v pořádku a chybové hlášky z předešlých 2 bodů se nezobrazí, objeví se okno JTAG ICE – hlavní okno programátoru. V záložce Program zvolte typ programovaného MCU (např. ATmega128). V tuto chvíli na UniProg-USB již svítí pouze zelená a žlutá LED dioda. Červená bliká pouze v aktivním stavu, tj. např. při programování, verifikaci apod.
11) Pak ověřte správnost volby MCU v záložce Advanced načtením Signature bytes (3 byty identifikující programovaný MCU) tlačítkem Read. Shodnost je potvrzena nápisem Signature matches selected device. Pokud typ připojeného MCU neodpovídá zvolenému typu, tak volbu upravte (viz. minulý bod) a ověření zopakujte. V záložce Advanced je také možné změnit komunikační rychlost přenosu dat mezi PC a UniProg-USB, např. na maximálních 115200baud.
12) Pak už je možné v záložce Program vymazat MCU tlačítkem Erase device (znázorněno modře), dále zvolit HEX soubor, který se má do MCU uložit, tlačítkem “...“ v sekci Flash (znázorněno červeně). Naprogramování a verifikace se provede tlačítky Program a Verify (znázorněno zeleně). Stejně tak je možné uložit HEX soubor i do paměti EEPROM.
Verze dokumentu 1.1 (20.08.2007)
24 / 30
PK Design 6.4
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Aktualizace firmware
1) Připojte UniProg-USB k základové desce kabelem PFL10-PFL10 do ISP konektoru bez jakéhokoliv adaptéru. 2) Zkontrolujte, že po připojení na UniProg-USB soustavně svítí zelená LED dioda a krátce blikne dioda červená. Předpokládá se, že základová deska má připojeno napájecí napětí. 3) Propojte UniProg-USB s PC USB kabelem. 4) V případě, že jste připojili UniProg-USB k PC poprvé, nainstalujte potřebné USB drivery a zkontrolujte, na který COM port byl virtual COM port driver (VCP) nainstalován (vše viz. kapitola Instalace USB driverů). 5) Spusťte program „UniProgUSB Bootloader activator (070614)“ (volně dostupný na [1]) a zmáčkněte tlačítko Find UniProg and activate bootloader. Program se pokusí najít všechny UniProg-USB připojené k PC a aktivovat v nich bootloader.
6) Výsledek hledání je následně zobrazen v sekci List of found and activated UniProgs. V případě, že žádný UniProg nebyl nalezen, zobrazí je se nápis No UniProgUSB found on COM1-16. V tomto případě zkontrolujte, že jste postupovali dle bodů 1 - 5 správně. Jinak se zobrazí seznam všech nalezených UniProg-USB a u každého z nich bude uvedeno číslo COM portu, na kterém byl nalezen (na pravém obrázku znázorněno modře) a také verze broadcasteru (na pravém obrázku znázorněno zeleně).
7) Pokud aktivace bootloaderu proběhla v pořádku, bude na UniProg-USB svítit zelená a blikat žlutá LED dioda. V tomto okamžiku je možné program UniProgUSB bootloader activator zavřít a spustit program AVR PROG. Ten je možné najít v adresáři AVR Studia (….\AVR Tools\AvrProg\AvrProg.exe) a nebo jej spustit z menu AVR Studia (Tools – AVR Prog...).
8) Pokud se zobrazí chybová hláška (viz. následující obrázek), tak je pravděpodobně virtual COM port, přes který se UniProgUSB připojuje, nastaven na hodnotu větší než 4 (AVR PROG umožňuje komunikaci pouze s porty COM1-COM4). Ověření a nastavení jiného COM portu pro UniProg-USB je popsána v kapitole Instalace ovladačů na PC a nastavení virtuálního COM portu.
Verze dokumentu 1.1 (20.08.2007)
25 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
9) V případě, že je vše v pořádku, zobrazí se okno AVR PROGu. Tlačítkem Browse zvolte soubor s firmwarem, který chcete do UniProg-USB zapsat (nejnovější verze je vždy dostupná na [1]).
10) Před programováním je však nutné vymazat paměť UniProg-USB. Zmáčkněte tlačítko Advanced, kterým se vyvolá okno Advanced a v něm pak zmáčkněte 4x po sobě tlačítko Chip Erase. Při 4. zmáčknutí se na UniProg-USB rozsvítí červená LED dioda asi na 1 sekundu – tím je vymazání paměti hardwarově potvrzeno. Pak okno Advanced opět zavřete.
11) V tuto chvíli je již vše připravené k naprogramování zvoleného firmware do UniProg-USB, zmáčkněte tlačítko Program v sekci Flash.
Verze dokumentu 1.1 (20.08.2007)
26 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
12) Pokud nebyla paměť UniProg-USB řádně vymazána, zobrazí se chybová hláška Programming failed.
13) V případě, že během programování žádná chyba nenastala, zobrazí se nad pruhem indikujícím průběh programování hláška Erasing Device... Programming... Verifying... OK (na obrázku znázorněno modře). Během programování na UniProg-USB svítí všechny 3 LED diody (žlutá chvílemi lehce pohasíná).
14) Po dokončení programování na UniProg-USB svítí zelená a bliká žlutá LED dioda. Odpojte UniProg-USB od základové desky a opět připojte a zkontrolujte, že po připojení na UniProg-USB soustavně svítí zelená LED dioda a krátce blikne dioda červená. V tuto chvíli je již update nového firmware dokončen a s UniProg-USB je možné začít ihned pracovat.
Verze dokumentu 1.1 (20.08.2007)
27 / 30
PK Design 6.5
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Používání programu UniProg-USB Virtual Processor Control
Program UniProg-USB Virtual Processor Control, volně dostupný na [1], umožňuje základní ovládání programátoru UniProgUSB v režimu virtuálního procesoru (tedy bez redukce JTAG). Je zde zobrazen seznam instrukcí včetně volby jejich parametrů s uvedením detailního popisu a také příkladem použití. Instrukce je možné buď přímo provádět (viz. kapitola Přímé provádění instrukcí zaslaných z PC) tlačítkem Run a nebo z nich sestavovat programy tlačítky Add, Insert, Replace v sekci Instruction a také tlačítky Up, Down, Delete, Clear v sekci Program. Vytvořené programy je možné nahrát do/z UniProg-USB tlačítky Write a Read a následně provádět (viz. Provádění instrukcí z paměti programu) tlačítkem Run a nebo také uložit či načíst na/z pevný disk PC pro pozdější použití tlačítky Load a Save, vše v sekci Program . Instrukce v programu je možné zobrazit ve tvaru instrukčních kódů a nebo instrukčních jmen volbou Show, což zvyšuje čitelnost programu (při zobrazení jmen připomíná ASM kód). Velikost volné paměti programu je zobrazena v bytech, položka Free mem v sekci Program. Program dále umožňuje načtení a zobrazení stavu všech registrů tlačítkem Read v sekci Registers. Dále je možno provádět operace s pamětí dat, tj. načtení a zápis dat do/z UniProg-USB tlačítky Read a Write, uložení a načtení dat na/z pevný disk tlačítky Load a Save a generování dat za pomocí speciálního okna generátoru (cont, ramp up, ramp down, sine), které se zobrazí tlačítkem Generate, vše v sekci Data. Odpovědi, tj. data vyslaná z UniProg-USB zpět do PC, jsou zachytávána a zobrazována v 1 ze 3 formátů: DEC, HEX, ASCII. Zachytávána jsou jak data vyprodukovaná instrukcemi SUxxxx (Send UART something), tak data potvrzovací, jako jsou např. byty Ack, RunStart a Fail. Na následujícím obrázku je možné vidět příklad nastavení programu UniProg-USB Virtual Processor Control, ve kterém byl vytvořen jednoduchý demonstrační příklad. Funkcí tohoto příkladu je nastavit registr REG8-0 na hodnotu 0, vyslání jeho hodnoty UARTem, inkrementace jeho hodnoty o 1 a následné porovnání, zda-li je jeho hodnota menší než 5. Pokud ano, program se skočí zpět na instrukci inkrementující hodnotu registru, jinak program skončí.
Popis okna programu s příkladem: ●
Červeně je znázorněno nastavení komunikačního VCP portu, na který je UniProg-USB připojen.
●
Modře je označena oblast znázorňující verzi instrukční sady, kterou program při svém spuštění nahrál z pevného disku a také verzi firmware virtuálního procesoru UniProg-USB. Tyto verze musí být stejné, jinak program nebude umožňovat funkce RUN.
●
Zeleně je znázorněna označená instrukce programu.
●
Fialově označená oblast je seznam instrukcí aktuálního programu.
●
Hnědě je označena oblast s daty, které byly odeslány virtuálním procesorem UniProg-USB po spuštění programu tlačítkem RUN v sekci Program. Před tím bylo nutné program do UniProg-USB uložit tlačítkem Write v téže sekci. Je důležité si povšimnout, že přijatá data obsahují kromě bytů s hodnotami 0 až 4 také hodnotu 11, což je odpověď UniProg-USB RunStart a hodnotu 10, což je Ack (dokončení vykonávání programu).
Verze dokumentu 1.1 (20.08.2007)
28 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
7 Literatura a odkazy [1] ... www.pk-design.net [2] ... www.atmel.com
8 Historie verzí dokumentace Verze / datum
Změny
v1.0 / 30.07.2007
Vytvoření dokumentace.
v1.1 / 20.08.2007
Upraveno číslování kapitol. Upravena kapitola 4.3.4 Funkce Virtuálního procesoru. Doplněno nastavení komunikace v kapitole 4.3.3 Virtual processor firmware. Přidána nová kapitola 6.5 Používání programu UniProg-USB Virtual Processor Control.
Verze dokumentu 1.1 (20.08.2007)
29 / 30
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
UniProg-USB v1.0 Programovací kabel modulárního vývojového systému MVS Uživatelský manuál (verze dokumentace v1.1) PK Design http://www.pk-design.net
[email protected] 20.08.2007
Verze dokumentu 1.1 (20.08.2007)
30 / 30