UnISProg uniwersalny programator ISP

Podobne dokumenty
ZL11PRG v.2. Uniwersalny programator ISP. Odpowiednik: Byte Blaster II DLC5 Programmer AT89ISP STK-200 Lattice ISP ARM Wiggler

Programator ZL2PRG jest uniwersalnym programatorem ISP dla mikrokontrolerów, o budowie zbliżonej do STK200/300 (produkowany przez firmę Kanda).

Klocki RS485, część 4

Nowe układy CPLD firmy Altera

ZL19PRG. Programator USB dla układów PLD firmy Altera

Klocki RS485, część 3

Klocki RS485, część 2

Oscyloskop cyfrowy, kit AVT 891. Sukces w nowoczesnoúci Projektanci uk³adûw ZMD przygotowali

Układy programowalne, część 2

Zdalnie sterowana karta przekaźników

Programator mikrokontrolerów PIC współpracujący z programem MPLAB AVT 5100

ZL10PLD. Moduł dippld z układem XC3S200

Klocki RS485, część 1

Tester aparatów telefonicznych

ZACHODNIOPOMORSKI UNIWERSYTET TECHNOLOGICZNY

Przełącznik optyczny SPDIF

Uniwersalny programator JTAG/ISP

Układ do automatycznego wzywania Pogotowia Ratunkowego

Uniwersalny programator

Funkcje bezpieczeństwa

Uniwersalny programator

Bezprzewodowy sterownik węża świetlnego

ZL8AVR. Płyta bazowa dla modułów dipavr

Na ³amach Elektroniki Praktycznej (EP 10/97) zosta³ opisany generator funkcyjny, ktûry moim zdaniem jest przyrz¹dem w zasadzie

ZL6PLD zestaw uruchomieniowy dla układów FPGA z rodziny Spartan 3 firmy Xilinx

Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów AVR

Sprzętowy emulator procesorów AVR

Samochodowy wzmacniacz 25 W w klasie D, część 1

Sterownik wyświetlacza multipleksowanego w VHDL

Programator WillemProg 3.0, część 1

Uniwersalny szeregowy. sterownika wyúwietlacza

kit AVT 900 Stereofoniczny tuner FM

Wyświetlacz bezprzewodowy

Firma Wobit opracowuje i produkuje

ZL11AVR. Zestaw uruchomieniowy z mikrokontrolerem ATtiny2313

Bezprzewodowy regulator

Wysokosprawny wzmacniacz audio 2x250W, część 1

Programator procesorów rodziny AVR AVR-T910

w dowolny sposûb. Prezentacja zmierzonego napiícia jest wykonywana przy uøyciu specjalizowanego

micro Programator ISP mikrokontrolerów AVR zgodny z STK500v2 Opis Obs³ugiwane mikrokontrolery Wspó³praca z programami Podstawowe w³aœciwoœci - 1 -

ZL11ARM. Uniwersalna płytka bazowa dla modułów diparm

U W A G I D O M O N T A ś U Z E S T A W U L A B O R A T O R Y J N E G O A B C 0 1 U S B 3, A B C 0 2

Detektor ruchu z głosowym automatem informacyjnym

Zestaw edukacyjny dla mikrokontrolerów ST62

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

Układy FPGA w przykładach, część 1

Emulator programator mikrokontrolerów AVR i '51 do każdego typu komputera, część 1

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Sterownik Silnika Krokowego GS 600

Selektor linii telewizyjnych

Kieszonkowy odtwarzacz MP3,

Programator termostatów cyfrowych firmy Dallas,

ZL11ARM. Uniwersalna płyta bazowa

Dekoder dzia³a podobnie jak w telefonach komûrkowych: wyúwietla

MikloBit ul. Cyprysowa 7/ Jaworzno. rev MB-AVR-ISP programator

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Interfejs graficznych wyświetlaczy LCD

Przełom na rynku narzędzi EDA

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

yoyo ver. 6.0

Samsung TV LCD Bordeaux 19 rozwiązywanie problemów, edycja danych EDID

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

Yampp 3 Sprzętowy odtwarzacz MP3, część 1

Tester samochodowych sond lambda

Programowany 4 kanałowy komparator/woltomierz

Bardzo uøyteczne i nadaj¹ce sií do wykorzystania w rûønych zastosowaniach. AT89C2051/1051 naleø¹ do rodziny

ARMputer, część 1 AVT 922

Niew¹tpliwie uøytkownicy mikrokontrolerûw

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy

Mikroprocesorowy regulator temperatury z czujnikiem Pt100

Kaøda przerwa w zasilaniu stanowi


Punch Programator uniwersalny, część 1

JTAG Isolator. Separator galwaniczny JTAG dla ARM, AVR i FPGA

miejsca, gdzie p³ytki by³y ze sob¹

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Transmisja szeregowa w podczerwieni. w komputerowym úwiecie. Interfejs. promieniowania podczerwonego

linkprog programator USB

Programator termostatów cyfrowych firmy Dallas,

Mikrokontrolery AVR techniczne aspekty programowania

Asystent telefoniczny

Programator mikrokontrolerów

Programator procesorow AVR do kompilatora BASCOM AVR (zgodny z STK200)

12 kanałowy regulator mocy sterowany sygnałem DMX512

Urz¹dzenie zaprojektowano bez uøycia jakichkolwiek elementûw mechanicznych, tak regulacyjnych jak i prze³¹cznikûw wyboru.

Samochodowy alarm ze zdalnym sterowaniem, część 1

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

Altare wzmacniacz audio dla audiofili

AVT Radiowy pilot do PC

Jak zaprogramować procesor i. wgrać firmwar-e do yampp3usb. Copyright SOFT COM sp. z o. o.

Mikser audio ze sterowaniem cyfrowym, część 1

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

generatorze funkcyjnym,

Programowany zegar ze zdalnym sterowaniem

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

Instrukcja obsługi programatora AVR Prog USB v2

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Instrukcja obsługi programatora AVR Prog USB v2

Transkrypt:

UnISProg uniwersalny P R programator O J E K T ISP Y UnISProg uniwersalny programator ISP AVT 560 Praktycznie kaødy producent mikrokontrolerûw z pamiíci¹ Flash i wspû³czesnych uk³adûw programowalnych opracowa³ do ich programowania w³asny, wyspecjalizowany programator. Wskutek tego zastosowanie w jednym projekcie mikrokontrolera AVR, uk³adu CPLD firmy Altera i ispgal-a firmy Lattice zmusza projektanta do korzystania z trzech (sic!) rûønych programatorûw. Tak nie musi byê, o czym zamierzam przekonaê CzytelnikÛw tego artyku³u. Rekomendacje: opisany w artykule programator jest narzídziem niezbídnym w pracowni wszystkich elektronikûw korzystaj¹cych z uk³adûw PLD pochodz¹cych od rûønych producentûw. ìprzy okazjiî moøna go takøe wykorzystaê do programowania ISP mikrokontrolerûw AVR. SytuacjÍ, gdy do zaprogramowania ISP trzech uk³adûw potrzebne by³y trzy rûøne programatory, moøna by³o uznaê za naturaln¹ na pocz¹tku wdraøania interfejsûw ISP (10 lat temu), lecz nie teraz. Jest to tym bardziej absurdalne, øe dziíki powszechnemu stosowaniu uniwersalnych jízykûw opisu sprzítu (HDL) do realizacji projektûw w uk³adach PLD, korzystanie z uk³adûw pochodz¹cych od rûønych producentûw (choêby z powodu cen) jest rzecz¹ zupe³nie naturaln¹. Problem zosta³ czíúciowo rozwi¹zany przez producenta programatorûw Uprog (www.rk-system.- com.pl), ktûre wyposaøono w interfejs JTAG, za pomoc¹ ktûrego moøna zaprogramowaê zdecydowan¹ wiíkszoúê uk³adûw PLD. Nie zawsze jednak zakup programatora o tak duøych moøliwoúciach (Uprog to rodzina programatorûw uniwersalnych) jest uzasadniony i moøliwy, w zwi¹zku z czym w naszym laboratorium powsta³ uniwersalny programator, za pomoc¹ ktûrego moøna programowaê w systemie uk³ady CPLD/FPGA firm: Altera, Atmel, Lattice i Xilinx oraz mikrokontrolery AVR. ISP vs JTAG vs SPI Na pocz¹tek wyjaúnienie pojíê, ktûre czísto s¹ mylone, a ktûrych rozrûønienie jest istotne. AVR-y, jako pierwsze z grupy mikrokontrolerûw popularnych wyposaøono w moøliwoúê programowania w systemie. Atmel zastosowa³ do tego celu interfejs SPI Możliwości programatora UnISProg: emuluje programatory ISP: ByteBlaster MV, DLC-5, Lattice Cable, ispdownload i STK200, programuje uk³ady CPLD firm: Altera (MAX3000, MAX7000S/A/B, MAX9000), Atmel (AT1500/1500S/ASL), Lattice (ispmach, ispgal22lv10, ispgal22v10av/ab) oraz Xilinx (XC9500/9500XL, CoolRunner), programuje uk³ady FPGA firm: Altera (zasilane napiêciem od 3,3 do 5 V), Lattice (ORCA) oraz Xilinx (zasilane napiêciem od 3,3 do 5 V), programuje uk³ady ispgdx i isppac firmy Lattice, mo e byæ stosowany do programowania uk³adów wyposa onych w interfejs isplattice (CPLD starszych generacji, jak na przyk³ad isplsi2000, ispgal22v10), programator jest zasilany z urz¹dzenia z programowanym ukadem (5 V), wspó³praca z PC odbywa siê poprzez interfejs Centronics. 21

Rys. 1. W łańcuchu JTAG można wybrać, które układy będą programo wane, a które nie (Serial Peripherial Interface), ktûry w specyficznych warunkach spe³nia rolí interfejsu wejúciowego dla wbudowanego w mikrokontrolery programatora pamiíci Flash. Dane s¹ wprowadzane i odczytywane szeregowo w sposûb synchroniczny. Nieco inaczej jest w przypadku uk³adûw PLD, ktûre w wiíkszoúci wyposaøono w interfejs JTAG (zgodny z jedn¹ z norm: IEEE1149 lub IEEE1532) - tak jest w wiíkszoúci uk³adûw CPLD - lub synchroniczny interfejs szeregowy s³uø¹cy do konfiguracji uk³adûw FPGA. ZarÛwno w przypadku klasycznego JTAG-a, jak i interfejsûw przystosowanych do konfigurowania uk³adûw FPGA istnieje moøliwoúê programowania/konfigurowania pojedynczego uk³adu lub wielu uk³adûw po³¹czonych w tzw. ³aÒcuch JTAG (rys. 1). Niezaleønie od rodzaju interfejsu zastosowanego do programowania (JTAG/SPI, czasami takøe RS232), programowanie/konfigurowanie uk³adu zamontowanego w urz¹dzeniu jest nazywane ISP od In System Programmable. Programator prezentowany w artykule emuluje interfejsy JTAG oraz SPI w trybach umoøliwiaj¹cych konfigurowanie najpopularniejszych rodzin uk³adûw PLD (FPGA) i mikrokontrolerûw AVR w systemie (ISP). (U2), w ktûrym zintegrowano wszystkie bloki funkcjonalne emulowanych interfejsûw. Projekt przygotowano w jízyku VHDL (ürûd³a i plik wynikowy s¹ dostípne na CD-EP1/2004B), dziíki czemu moøna go zmodyfikowaê stosownie do w³asnych potrzeb, na przyk³ad dodaj¹c opisy HDL kolejnych interfejsûw ISP. Na rys. 3 pokazano uproszczony schemat blokowy programatora zaimplementowanego w uk³adzie U2. Co to znaczy ISP? Mianem ISP (In System Programmable) jest określany sposób programo wania pamięci Flash/ EEPROM wbudowanej w układy scalone (przede wszystkim mikrokontrolery, PLD i pamięci nieulotne) po ich zamontowaniu w urządze niu docelowym. Programo wanie ISP odbywa się zazwyczaj poprzez interfejs SPI, JTAG lub RS232. Uk³ad U2 naleøy do rodziny XC9500XL produkowanej przez firmí Xilinx. Jest on przystosowany do zasilania napiíciem 3,3 V, ale wszystkie jego linie wejúciowe s¹ przystosowane do wspû³pracy z uk³adami cyfrowymi zasilanymi napiíciem 5 V, a poziomy napiíê na liniach wyjúciowych s¹ zgodne ze standardem TTL. Opis uk³adu Schemat elektryczny programatora pokazano na rys. 2. Jego budowa jest bardzo prosta dziíki zastosowaniu uk³adu programowalnego firmy Xilinx Rys. 2. Schemat elektryczny programatora 22

Rys. 5. Przypisanie sygnałów w trybie pracy JTAG Rys. 3. Uproszczony schemat blokowy projektu zaimplementowanego w układzie U2 Fot. 4. Tryb pracy programatora ustala się za pomocą jumperów JP3 i JP4 NapiÍcie zasilaj¹ce jest stabilizowane przez uk³ad U1 (stabilizator LDO - Low Drop Out), na wejúcie ktûrego jest podawane napiície +5 V z urz¹dzenia, w ktûrym znajduje sií programowany uk³ad. NapiÍcie zasilaj¹ce na wejúciu stabilizatora nie moøe byê niøsze niø ok. 3,7 V, poniewaø nie bídzie on pracowa³ prawid³owo. Jumpery JP3 i JP4 s³uø¹ do ustalenia trybu pracy programatora (fot. 4). WybÛr uøytkownika jest sygnalizowany za pomoc¹ trzech diod LED (D2, D3 i D4), przy czym w trybie STK200 úwiec¹ jednoczeúnie diody D2 (LED_ALT) i D4 (LED_LATT). Dioda D1 s³uøy do monitorowania sygna³ûw zegarowych kaødego z interfejsûw, a dioda D5 sygnalizuje do³¹czenie zasilania do z³¹cza JP2. Z³¹cze to s³uøy do do³¹czenia programatora do programowanego uk³adu, a wyprowadzenie na nim sygna³ûw jest zgodne z ByteBlasterem, ByteBlasterem MV oraz interfejsem isp- DOWNLOAD. Na rys. 5 pokazano przypisanie sygna³ûw wyprowadzeniom JP2 w trybie pracy JTAG, na rys. 6 w trybie konfiguratora uk³adûw FPGA firmy Altera (Passive Serial), na rys. 7 w trybie konfiguratora uk³adûw FPGA firmy Xilinx, a na rys. 8 w trybie programatora uk³adûw z interfejsem isp- Lattice. Przed rozpoczíciem korzystania z programatora naleøy zaprogramowaê uk³ad U2, do czego s³uøy z³¹cze JP1. Jego styki do- ³¹czono do wyprowadzeò interfejsu JTAG uk³adu U2. Funkcje stykûw JP1 opisano na p³ytce drukowanej, co u³atwia programowanie uk³adu. Do zaprogramowania U2 potrzebny bídzie dowolny programator przystosowany do programowania (w systemie) uk³adûw XC9536XL. Egzemplarz modelowy programowano za pomoc¹ programatora ZL4PRG (http:// www.btc.pl/index.php?id=zl4prg) oraz stacjonarnego programatora Uprog 48HS. Aby zminimalizowaê k³opoty CzytelnikÛw decyduj¹cych sií na zakup kitûw, uk³ady dostarczane w zestawach bíd¹ przylutowane do p³ytki i zaprogramowane. Montaø i uruchomienie Widok rozmieszczenia elementûw na p³ytce drukowanej programatora pokazano na rys. 9. Montaø (w przypadku zakupu samej p³ytki drukowanej bez zamontowanego uk³adu U2) naleøy Rys. 6. Przypisanie sygnałów konfiguratora układów FPGA firmy Altera (Passive Serial) Rys. 7. Przypisanie sygnałów konfiguratora układów FPGA firmy Xilinx Rys. 8. Przypisanie sygnałów w trybie pracy isplattice rozpocz¹ê od przylutowania uk³adu U2. Doskonale sprawdzi³ sií najprostszy sposûb: po precyzyjnym u³oøeniu uk³adu na Kłopot z programowaniem Zastosowany w projekcie układ XC9536XL musi być przed użyciem zaprogramo wany, za pomocą programatora ISP. Z tego powodu w kitach układy te będą dostarczane przylutowane do płytki i zaprogramowane. 23

JP2 (z obudow¹, z zatrzaskiem, ìgo³eî szpilki z³ocone itp.). Nastawniki JP3 i JP4 moøna zast¹piê dowolnymi innymi prze³¹cznikami dwupozycyjnymi. Rys. 9. Rozmieszczenie elementów na płytce drukowanej punktach lutowniczych (trzeba sprawdziê po³oøenie wyprowadzenia numer 1!), jedno ze skrajnych wyprowadzeò przygrzewamy grotem lutownicy do cyny znajduj¹cej sií na powierzchni punktu. NastÍpnie w ten sam sposûb przygrzewamy wyprowadzenie znajduj¹ce sií po przek¹tnej. Pozosta³e wyprowadzenia tak przymocowanego do p³ytki uk³adu lutujemy, korzystaj¹c ze spoiwa o úrednicy 0,38 mm lub zbliøonej. Po przylutowaniu uk³adu U2 z powierzchni p³ytki warto usun¹ê resztki topnika za pomoc¹ ktûregoú z dostípnych úrodkûw chemicznych (np. KON- TAKT PCC). KolejnoúÊ montaøu pozosta- ³ych elementûw jest obojítna. Nie jest takøe wymagana szczegûlna precyzja montaøu. W zaleønoúci od obudowy moøna zastosowaê rûøne rodzaje z³¹cza Eksploatacja Programator wspû³pracuje z oryginalnym oprogramowaniem udostípnianym bezp³atnie przez firmy produkuj¹ce uk³ady PLD oraz dostípnym bezp³atnie na kilku niezaleønych portalach internetowych (dotyczy to programowania mikrokontrolerûw AVR). Pod³¹czenie programatora do komputera wymaga zastosowania kabla BD25M/DB25M (jego zalecana d³ugoúê wynosi 1 metr), natomiast po³¹czenie z programowanym uk³adem wymaga zastosowania p³askiego kabla taúmowego zakoòczonego z dwûch stron wtyczkami ZWS10 (fot. 10). D³ugoúÊ tego kabla takøe nie powinna przekraczaê 1 metra, co wynika z doúê wysokiej czístotliwoúci sygna³u zegarowego synchronizuj¹cego transfer danych. PracÍ z programatorem naleøy rozpocz¹ê od ustalenia za pomoc¹ JP3 i JP4 rodzaju emulowanego interfejsu. W zaleønoúci od typu programowanych uk³adûw naleøy zastosowaê odpowiednie oprogramowanie (udostípniamy je na p³ycie CD-EP1/2004B): - uk³ady PLD firmy Altera moøna programowaê za pomoc¹ programûw ASAP lub Quartus Programmer - programator powinien pracowaê w trybie Byte- Blaster MV, - uk³ady CPLD firmy Atmel moøna programowaê za pomoc¹ programu AtmelISP, przy czym programator powinien pracowaê w trybie ByteBlaster MV (w menu Cable Types naleøy wybraê Rys. 11. Podczas programowania układów CPLD firmy Atmel za pomocą programu AtmelISP w menu Cable Types należy wybrać ByteBlaster MV ByteBlaster MV, jak na rys. 11), - uk³ady PLD, isppac i ispgdx firmy Lattice moøna programowaê za pomoc¹ programu ispvm System - programator naleøy skonfigurowaê do pracy w trybie ispdownload/lattice Cable (rys. 12), - uk³ady PLD firmy Xilinx moøna programowaê na dwa sposoby: - korzystaj¹c z niezaleønych programûw s³uø¹cych do programowania uk³adûw z rodzin XC9500, FPGA i XPLA (programator moøe pracowaê w trybie ByteBlaster lub DLC5), - korzystaj¹c z programu obs³uguj¹cego programator, wbudowanego w system projektowy WebPack ISE (programator musi byê skonfigurowany jako DLC5), - mikrokontrolery AVR moøna programowaê za pomoc¹ programu IC-PROG, programator musi byê skonfigurowany jako STK200. W kolejnym kroku naleøy pod- ³¹czyÊ programator do urz¹dzenia, w ktûrym znajduje sií programo- Fot. 10. Kabel połączeniowy powinien być zakończony z dwóch stron wtyczkami ZWS10 Niestandardowa możliwość Programator UprogHS 48 może pracować jako programator konfigurator układów wyposażonych w interfejs JTAG. Programator jest przystosowany do obsługi JTAG a w standardach napięciowych: 2,7/3,3 i 5 V (zrzut ekranu poniżej), a pliki wejściowe muszą być przygotowane w formacie SVF lub JAM. 24

Rys. 12. Podczas programowania układów PLD, isppac i ispgdx firmy Lattice za pomocą programu ispvm System należy wybrać opcję Lattice w oknie selekcji Cable Type wany uk³ad. Urz¹dzenie powinno mieê w³¹czone zasilanie, a do z³¹cza s³uø¹cego do do³¹czenia programatora powinno byê dostarczane stabilizowane napiície +5 V (pobûr pr¹du przez programator nie przekracza 40 ma). Pierwszy krok do PLD Programator UnISProg będzie podstawowym narzędziem wykorzystywanym podczas kursu układów programowalnych, który rozpoczniemy w EP3/2004. W zaleønoúci od po³¹czenia programowanych uk³adûw (pojedynczy, ³aÒcuch JTAG itp.) naleøy odpowiednio skonfigurowaê oprogramowanie steruj¹ce, za³adowaê plik/pliki JED/SVF/POF/HEX/ SOF/BIN (w zaleønoúci od programowanego uk³adu) i rozpocz¹ê programowanie. Piotr Zbysiñski, EP piotr.zbysinski@ep.com.pl Wzory p³ytek drukowanych w formacie PDF s¹ dostípne w Internecie pod adresem: pcb.ep.com.pl oraz na p³ycie CD-EP1/2004B w katalogu PCB. WYKAZ ELEMENTÓW Rezystory R1, R2, R18...R22: 22Ω R3, R11...R17: 10kΩ R4...R10, R23, R24: 100Ω R25: 2,2kΩ R26, R27: 1kΩ R28: 1,2kΩ Kondensatory C1, C2, C8, C9: 100nF C3...C7: 10pF C10: 2,2µF/16V Półprzewodniki U1: LP2950 33 U2: XC9536XL 10VQ44C (zaprogramowany) D1, D2, D3, D4, D5: diody LED prostokątne Różne J1: DB25F do druku JP2: ZWS10 G JP1: gold pin 6x1 JP3, JP4: 2 gold piny 3x1 + jumpery 25