UniProg-USB v1.0

Transkript

UniProg-USB v1.0
PK Design
UniProg-USB v1.0
Programovací kabel modulárního vývojového systému MVS
Uživatelský manuál
Verze dokumentu 1.3 (20.03.2010)
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
5.5
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 – obecně .......................................................................................................................... 12
Význam vývodů konektoru UniProgu (bez redukce) .............................................................................................................. 13
5.5.1 Obecné významy vývodů (Virtual processor control, voltage logger...).......................................................................13
5.5.2 Význam vývodů v případě programování AVR mega přes ISP rozhraní.....................................................................13
5.5.3 Význam vývodů v případě programování AVR Xmega přes PDI rozhraní..................................................................14
5.5.4 Význam vývodů v případě programování XC3S250E-TQ144 přes JTAG rozhraní....................................................14
5.6 Význam vývodů JTAG redukce (zapojené do UniProg-USB) při programování AVR mega přes JTAG rozhraní ............... 14
5.7 Připojení k základové desce MB-ATmega16(128) přes ISP rozhraní .................................................................................... 15
5.8 Připojení k základové desce MB-ATmega16(128) přes JTAG rozhraní ................................................................................ 15
5.9 Připojení k základové desce MB-ATxMega-A1 přes PDI rozhraní ........................................................................................ 16
5.10 Připojení k základové desce MB-XC3S250E-TQ144 přes JTAG rozhraní ............................................................................ 17
6 Použití - Software ......................................................................................................................................... 18
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
Instalace ovladačů na PC a nastavení virtuálního COM portu ................................................................................................ 18
Programování AVR mega MCU přes ISP rozhraní – AVR ISP programmer ......................................................................... 23
Programování AVR mega MCU přes JTAG rozhraní – Atmel AVR Studio .......................................................................... 25
Programování AVR Xmega MCU přes PDI rozhraní – AVR PDI programmer ..................................................................... 28
Programování XC3S250E-TQ144 FPGA přes JTAG rozhraní – XC3S250E JTAG programmer ......................................... 29
Aktualizace firmware ............................................................................................................................................................... 30
Používání programu UniProg-USB Virtual Processor Control ............................................................................................... 33
Používání UniProg-u: Two channel voltage logger ................................................................................................................. 34
7 Literatura a odkazy ..................................................................................................................................... 35
8 Historie verzí dokumentace ........................................................................................................................ 35
Verze dokumentu 1.3 (20.03.2010)
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.3 (20.03.2010)
3 / 36
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
„PKDesign 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-VCC)
○ 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.3 (20.03.2010)
4 / 36
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.3 (20.03.2010)
5 / 36
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.3 (20.03.2010)
6 / 36
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.3 (20.03.2010)
7 / 36
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.3 (20.03.2010)
8 / 36
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 „USID“:
●
●
●
Kód instrukce USID (UART Send 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 „USID“, 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-080405 <-- 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.3 (20.03.2010)
9 / 36
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 „USID“ 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 USID, 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 - USID (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-080405(#13) <-- datumová část řetězce se může lišit podle aktuální verze firmware
Verze dokumentu 1.3 (20.03.2010)
10 / 36
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 USID).
Příklady instrukcí:
USID - UART Send device ID
USR8 - UART Send REG8[0..7]
USR8 - UART Send REG8[0..7]
Instrukce
=> 0
=> 44
=> 44
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.7 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.3 (20.03.2010)
11 / 36
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 – obecně
UniProg-USB se k programované aplikaci připojuje propojovacím kabelem typu PFL10-PFL10 (součástí dodávky) 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í 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.3 (20.03.2010)
12 / 36
PK Design
5.5
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Význam vývodů konektoru UniProgu (bez redukce)
1
2
3
4
5
6
7
8
9
10
Obr. 4 - konektor MLW10
Protože vývody UniProg-USB mají více funkcí v závislosti na právě používaném software na PC, je tato kapitola rozdělena na více
částí.
5.5.1 Obecné významy vývodů (Virtual processor control, voltage logger...)
Význam
Číslo
Význam
ADIO-0
1
2
ADIO-1 / PWM-OUT
VCC / VREF
3
4
GND
DIO-2
5
6
DIO-3
DIO-4
7
8
DIO-5
DIO-6
9
10
Nezapojovat
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 - VCC/VREF), v případě použití jako digitálních vstupů/výstupů se tyto vývody chovají jako 3stavová logika (každý pin je možné samostatně nastavit jako vstup či výstup).
PWM-OUT – výstup PWM (pulzně šířkového modulátoru).
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).
Nezapojovat – určeno pro test.
VCC / VREF – vývod pro připojení napájecího napětí, které je zároveň referenční napětí pro ADC UniProg-USB.
GND – vývod napájecího napětí.
5.5.2 Význam vývodů v případě programování AVR mega přes ISP rozhraní
Význam
Číslo
Význam
Nevyužit
1
2
Nevyužit
VCC
3
4
GND
SCK
5
6
MISO
MOSI
7
8
RST\
Nevyužit
9
10
Nezapojovat
Rozložení signálů na MLW10 konektoru je plně kompatibilní se systémem PK Design MVS (základové desky MB-ATmega16/32,
MB-ATmega128).
Verze dokumentu 1.3 (20.03.2010)
13 / 36
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
5.5.3 Význam vývodů v případě programování AVR Xmega přes PDI rozhraní
Význam
Číslo
Význam
PDI-DATA
1
2
PDI-CLK
VCC
3
4
GND
Nevyužit
5
6
Nevyužit
Nevyužit
7
8
Nevyužit
Nevyužit
9
10
Nezapojovat
Rozložení signálů na MLW10 konektoru je plně kompatibilní se systémem PK Design MVS (základová deska MB-ATxMega-A1).
5.5.4 Význam vývodů v případě programování XC3S250E-TQ144 přes JTAG rozhraní
Význam
Číslo
Význam
Nevyužit
1
2
Nevyužit
VCC
3
4
GND
TCK
5
6
TDI
TDO
7
8
TMS
Nevyužit
9
10
Nezapojovat
Rozložení signálů na MLW10 konektoru je plně kompatibilní se systémem PK Design MVS (základová deska MB-XC3S250ETQ144).
5.6
Význam vývodů JTAG redukce (zapojené
programování AVR mega přes JTAG rozhraní
do
Číslo
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
při
Význam
Obr. 5 - konektor redukce
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í.
Verze dokumentu 1.3 (20.03.2010)
14 / 36
PK Design
5.7
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Připojení k základové desce MB-ATmega16(128) přes ISP rozhraní
Při připojování UniProg-USB k základové desce MB-ATmega16/32/128 přes ISP rozhraní se UniProg-USB zapojí do ISP
konektoru desky kabelem PFL10-PFL10 přímo, tj. bez JTAG redukce.
Připojeno bez
jakékoliv redukce
(přímo)
Připojeno do
ISP konektoru
Obr. 6 - Připojení UniProg-USB k základové desce MB-ATmega16/32 přes ISP rozhraní - JTAG redukce se nepoužije
5.8
Připojení k základové desce MB-ATmega16(128) přes JTAG rozhraní
Při připojování UniProg-USB k základové desce MB-ATmega16/32/128 přes JTAG rozhraní se UniProg-USB zapojí do JTAG
konektoru desky kabelem PFL10-PFL10 za použití JTAG redukce.
Připojeno přes
JTAG redukci
Připojeno do
JTAG konektoru
Obr. 7 - Připojení UniProg-USB s JTAG redukcí k základové desce MB-ATmega16/32 přes JTAG rozhraní
Verze dokumentu 1.3 (20.03.2010)
15 / 36
PK Design
5.9
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Připojení k základové desce MB-ATxMega-A1 přes PDI rozhraní
Při připojování UniProg-USB k základové desce MB-ATxMega-A1 přes PDI rozhraní se UniProg-USB zapojí do PDI konektoru
desky kabelem PDI-PFL10 přímo, bez jakékoliv redukce.
PDI-to-PFL10
kabel
Připojeno bez
jakékoliv redukce
(přímo)
Připojeno do
PDI konektoru
Obr. 8 - Připojení UniProg-USB s JTAG redukcí k základové desce MB-ATmega16/32 přes JTAG rozhraní
Verze dokumentu 1.3 (20.03.2010)
16 / 36
PK Design
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
5.10 Připojení k základové desce MB-XC3S250E-TQ144 přes JTAG rozhraní
Při připojování UniProg-USB k základové desce MB-XC3S250E-TQ144 přes JTAG rozhraní se UniProg-USB zapojí do JTAG
konektoru desky kabelem PFL10-PFL10 přímo, tj. bez jakékoliv redukce. Toto je odlišnost oproti deskám MB-ATmegaXXX.
Připojeno do
JTAG konektoru
Připojeno bez
jakékoliv redukce
(přímo)
Obr. 9 - Připojení UniProg-USB k základové desce MB-XC3S250E-TQ144 přes JTAG rozhraní - JTAG redukce se ale nepoužije
Verze dokumentu 1.3 (20.03.2010)
17 / 36
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.3 (20.03.2010)
18 / 36
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.3 (20.03.2010)
19 / 36
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.3 (20.03.2010)
20 / 36
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.3 (20.03.2010)
21 / 36
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.3 (20.03.2010)
22 / 36
PK Design
6.2
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Programování AVR mega MCU přes ISP rozhraní – AVR ISP programmer
1) Připojte UniProg-USB bez jakéhokoliv adaptéru k základové desce kabelem PFL10-PFL10 do konektoru ISP.
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 PKDesign AVR ISP Programmer (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.3 (20.03.2010)
23 / 36
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.3 (20.03.2010)
24 / 36
PK Design
6.3
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Programování AVR mega MCU 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.3 (20.03.2010)
25 / 36
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 PKDesign 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.3 (20.03.2010)
26 / 36
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.3 (20.03.2010)
27 / 36
PK Design
6.4
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Programování AVR Xmega MCU přes PDI rozhraní – AVR PDI programmer
1) Připojte UniProg-USB bez jakéhokoliv adaptéru k základové desce kabelem PDI-PFL10 do konektoru PDI.
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 PKDesign AVR PDI Programmer (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ě).
7) 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.3 (20.03.2010)
28 / 36
PK Design
6.5
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Programování XC3S250E-TQ144 FPGA přes JTAG rozhraní – XC3S250E JTAG
programmer
1) Připojte UniProg-USB bez jakéhokoliv adaptéru k základové desce kabelem PFL10-PFL10 do konektoru JTAG.
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 PKDesign XC3S250E JTAG programmer (nejnovější verze je vždy dostupná na [1]).
6) Pokud není po spuštění programu automaticky nadetekován COM port, na kterém je UniProg-USB připojen, klikněte na
tlačítko Detect (na obrázku znázorněno červeně).
7) Pak již jen stačí zvolit příslušný programový soubor *.BIN (označeno modře) a naprogramovat jej buď přímo do FPGA a
nebo do konfigurační paměti pomocí tlačítka v příslušné sekci (označeno zeleně).
Programovací tlačítka při jejich stisku před samotným programováním vždy nejdříve načtou programovaný soubor, aby byl
vždy použit aktuální bez nutnosti zásahu uživatele.
Verze dokumentu 1.3 (20.03.2010)
29 / 36
PK Design
6.6
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.3 (20.03.2010)
30 / 36
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.3 (20.03.2010)
31 / 36
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.3 (20.03.2010)
32 / 36
PK Design
6.7
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.3 (20.03.2010)
33 / 36
PK Design
6.8
Programovací kabel UniProg-USB v1.0 – Uživatelský manuál
Používání UniProg-u: Two channel voltage logger
UniProg-USB je možné použít jako univerzální 2 kanálový voltmetr či dokonce jako zaznamenávač 2 napěťových signálů.
Zapojení je velmi jednoduché - je potřeba pouze připojit napájecí a zároveň i referenční napětí na pin číslo 3 (V CC & VREF), zemní
vodič na pin 4 (GND) a měřené signály na piny 1 a 2.
Napětí na vývodech Analog In-0 a Analog In-1 musí být v rozsahu 0V-Vref, jinak hrozí zničení mikrokontroleru UniProgu.
Analog In-0 (0V-Vref)
Vcc & Vref (2.7-5.0V)
Verze dokumentu 1.3 (20.03.2010)
1
2
3
4
5
6
7
8
9
10
Analog In-1 (0V-Vref)
GND
34 / 36
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.7 Používání programu UniProg-USB Virtual Processor Control.
v1.2 / 10.02.2010
Upraveny příkazy v příkladech pro Virtual processor (SUID na USID apod.) - podle akt. firmware
Opraven text: „měřící rozsah (0-2.5V)“ na „měřící rozsah (0-VCC)“
Přidány kapitoly:
Připojení k základové desce MB-XC3S250E-TQ144 přes JTAG rozhraní
Používání UniProg-u: Two channel voltage logger
v1.3 / 20.03.2010
Upravena kapitola: Význam vývodů konektoru UniProgu (bez redukce)
Přidány kapitoly:
Připojení k základové desce MB-ATxMega-A1 přes PDI rozhraní
Programování AVR Xmega MCU přes PDI rozhraní – AVR PDI programmer
Programování XC3S250E-TQ144 FPGA přes JTAG rozhraní – XC3S250E JTAG programmer
Verze dokumentu 1.3 (20.03.2010)
35 / 36
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.3)
PK Design
http://www.pk-design.net
[email protected]
20.03.2010
Verze dokumentu 1.3 (20.03.2010)
36 / 36

Podobné dokumenty

Manuál k základové desce MB-XC3S100/250E-TQ144

Manuál k základové desce MB-XC3S100/250E-TQ144 Základová deska MB-XC3SxxxE-TQ144 byla navržena pro vývojové a výukové účely, nikoliv pro instalaci do konečného zařízení. Vzhledem k faktu, že k základové desce je možné připojit velké množství ro...

Více

Manuál - PK Design

Manuál - PK Design elektromagnetického pole nikterak 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 modulem je nutné zabezpečit, aby nemohlo dojít k elektros...

Více

AQUA STEP - prodejní manuál

AQUA STEP - prodejní manuál Podlahy Aqua-Step lze čistit vodou a mýdlem a vykazují 0% bobtnání desek. Podlahy lze udržovat bez bakterií a bez plísní, což je ideální pro malé děti, které si rády hrají na podlaze, pro alergiky ...

Více

Základová deska MB-ATmega128 v4.0

Základová deska MB-ATmega128 v4.0 Vzhledem k faktu, že k základové desce je možné připojit velké množství rozšiřujících modulů či uživatelský hardware není možné specifikovat výslednou velikost elektromagnetického pole, které bude ...

Více

Manuál - Discobolos

Manuál - Discobolos • eSATA port pro vysokorychlostní připojení • USB 2.0 port pro zařízení jako fotoaparáty, disky a tiskárny • Pro připojení N5200 k vašemu počítači jako „mass storage device“ • Konektor RS232 pro se...

Více

elektronika A Radio

elektronika A Radio Jednoduchá aktivní anténa na dlouhé vlny ........................... 31/4 Pøenosná anténa Yagi pro pásmo 435 MHz ......................... 32/4 Vícepásmový dipól bez trapù ............................

Více

elektronika A Radio

elektronika A Radio Obousmìrné poèítadlo s pøedvolbou (DPS) .......................... 17/9 Jednoduchý funkèný 7a PWM generátor (DPS) .................... 19/9 Hodiny do automobilu (DPS) .................................

Více