Mvision | STX-5 USB | Instrukcja obsługi | Pobierz PDF - Elektronika Praktyczna
Add to my manuals
6 Pages
advertisement
WYBÓR KONSTRUKTORA
Programatory ISP dla mikrokontrolerów
Dodatkowe materiały na CD/FTP
i układów PLD – przegląd
Trudno jest to teraz sobie wyobrazić, ale jeszcze
10 lat temu laboratorium konstrukcyjne prawdziwego
„mikroprocesorowca” musiało być wyposażone w programator stacjonarny z dużą liczbą dodatkowych adapterów. Koszt programatora i niezbędnego osprzętu (porównywalny z ówczesną ceną fabrycznie nowego Fiata 126p) już na starcie eliminował większość elektroników zainteresowanych tematyką mikrokontrolerową i mikroprocesorową. Możliwość dostępu do programatorów (lub szczególny upór w docieraniu do niego) tworzyła elity…
Ze względu na obszerne zestawienia pełną treść artykułu publikujemy na płycie CD-EP9/2011 i serwerze FTP
Rewolucja In System Programming (ISP) dokonywała się stopniowo, a – o czym nie wszyscy pamiętają – zaczęła się od układów
PLD firmy Lattice z pierwszych serii ispL-
SI1000, które wyposażono w synchroniczny interfejs szeregowy o nazwie LatticeISP. Dość szybko został zastąpiony przez JTAG, który został przyjęty jako powszechny interfejs do programowania, konfigurowania i testowania w systemie przez wszystkich producentów układów PLD.
Przełom w programowaniu ISP mikrokontrolerów zawdzięczamy firmie Atmel, która wyposażyła w taki interfejs pierwsze mikrokontrolery z rodziny AVR, co miało miejsce w 1996 roku. Obecnie mikrokontrolery pozbawione możliwości programowania pamięci w systemie praktycznie zniknęły z rynku.
W artykule przedstawiamy przegląd interfejsów i programatorów ISP stosowanych do programowania i konfigurowania układów scalonych różnych producentów, niektóre z nich mogą spełniać także rolę sprzętowych emulatorów-debuggerów wspomagających uruchamianie programów i projektów sprzętowych implementowanych
62 w układach FPGA i CPLD. Prezentowane urządzenia skatalogowano zgodnie z obsługiwanymi układami, bowiem pomimo zestandaryzowania niektórych interfejsów programowania w systemie (jak np. JTAG) nie ma na rynku zbyt wielu uniwersalnych programatorów ISP. Zaczniemy – zgodnie ze światowymi trendami – od mikrokontrolerów z rdzeniami ARM.
Programatory ISP mikrokontrolerów z rdzeniami firmy ARM
Standaryzacja rdzeni we współczesnych mikrokontrolerach i mikroprocesorach znacznie ułatwiła ujednolicenie sposobu programowania ich pamięci programu oraz obsługę interfejsu wspomagającego uruchamianie
(debugowanie) programu. Wszystkie mikrokontrolery z rdzeniami starszych generacji
(ARM7, ARM9 i ich pochodne), a także ze
„współczesnymi” rdzeniami z serii Cortex-M
Dodatkowe materiały na CD/FTP: ftp://ep.com.pl
, user: 19623 , pass: 6c5r20n3
• kompletne zestawienie
/Cortex-R, wyposażono w interfejs JTAG, za pomocą którego użytkownik może modyfikować zawartość pamięci Flash, a także monitorować wykonywanie programu. Schemat połączeń standardowego interfejsu JTAG stosowanego w 32-bitowych mikrokontrolerach pokazano na rysunku 1.
Linie sygnałowe interfejsu JTAG są jednokierunkowe, co upraszcza implementację sprzętową urządzenia pośredniczącego pomiędzy komputerem z zainstalowanym oprogramowaniem służącym do programowania i debugowania a mikrokontrolerem. Oprócz rozwiązań komercyjnych, do których przejdziemy za chwilę, dużą popularnością wśród początkujących konstruktorów cieszą się proste do wykonania programatory-debuggery z USB bazujące na projekcie programistycz-
ELEKTRONIKA PRAKTYCZNA 9/2011
Programatory ISP dla mikrokontrolerów i układów PLD – przegląd fejs o nazwie SWD (Single Wire Debug) umożliwiający – tak jak JTAG – programowanie pamięci i debugowanie pracy CPU, ale wykorzystujący zaledwie dwie (lub w skrajnym przypadku trzy) linie do dwukierunkowej transmisji danych. W większości przypadków interfejs SWD
Rys. 1. Schemat połączeń interfejsu JTAG stosowanego w mikrokontrolerach 32-bitowych nym OpenOCD ( http://openocd.berlios.de/web/ ), dla którego popularną w naszym kraju wersję sprzętu o nazwie JTAG-lock-pick (bazującą oczywiście na układzie interfejsowym firmy
FTDI OCDlink) przygotował autor strony http:// www.freddiechopin.info
. Na rynku dostępnych jest wiele klonów programatorów-debuggerów wykonanych na układach FTDI (zazwyczaj
FT2232 w różnych wersjach). Ze względu na łatwość ich wykonania we własnym zakresie
(m.in. dzięki powszechnie dostępnym schematom i kompletnym projektom) pominęliśmy je w prezentowanym zestawieniu.
Większość mikrokontrolerów z rdzeniami
Cortex-M i Cortex-R wyposażono w nowy inter-
REKLAMA
Rys. 2. Schemat elektryczny ilustrujący sposób dołączenia programatora z SWD do mikrokontrolera STM32F10x
ELEKTRONIKA PRAKTYCZNA 9/2011 63
WYBÓR KONSTRUKTORA
Tab. 1. Zestawienie podstawowych cech najpopularniejszych uniwersalnych interfejsów JTAG z USB przeznaczonych dla mikrokontrolerów z rdzeniami firmy ARM
Interfejs Wygląd JTAG SWD Obsługiwane rdzenie Obsługiwany przez… Uwagi
Cena brutto
[PLN]
J-Link
J-Link Lite
J-Link EDU
+
+
+
+
ARM7/9/11
Cortex-A5/A8
Cortex-M0/M1/M3/M4
Cortex-R4
IAR EWARM
KEIL mVision
Rowley Crossworks
CodeSourcery G++
GDB-Server
+
+
ARM7/9/11
Cortex-A5/A8
Cortex-M0/M1/M3/M4
Cortex-R4
IAR EWARM
KEIL mVision
Rowley Crossworks
CodeSourcery G++
GDB-Server
ARM7/9/11
Cortex-A5/A8
Cortex-M0/M1/M3/M4
Cortex-R4
IAR EWARM
KEIL mVision
Rowley Crossworks
CodeSourcery G++
GDB-Server ok. 1500
Dostępny wyłącznie w zestawach ewaluacyjnych
–
Tania wersja J-Linka bez licencji komercyjnej ok. 300
ULINK2 + +
ARM7/9
Cortex-M0/M/M3/M4
8051
C166
Keil mVision IDE ok. 1600
ULINK-ME + +
ARM7/9
Cortex-M0/M1/M3/M4 Keil mVision IDE
Wbudowane złącze
10-pin Cortex Debug
Connector.
Dostępny wyłącznie z zestawami ewaluacyjnymi.
ok. 500 z zestawem
STM3210B-SK/
KEI
Opella-XD-ARM + +
ARM7/9/11
Cortex-M0/M1/M3
Cortex-R4
Cortex-A5/A8
ARM RDI
GDB server
GNU/Eclipse
IAR (C-Spy)
Keil (mVision) ok. 5900
BF30 + –
ARM7/9/11
Cortex-M0/M1/M3
Cortex-R4
Cortex-A5/A8
GDB server
GNU/Eclipse
Umożliwia także programowanie ISP mikrokontrolerów AVR8.
ok. 90 występuje jednocześnie z JTAG-iem. Schemat elektryczny ilustrujący sposób dołączenia programatora z SWD do mikrokontrolera pokazano na rysunku 2.
W tabeli 1 zestawiono podstawowe cechy najpopularniejszych, uniwersalnych interfejsów JTAG z USB dla mikrokontrolerów z rdzeniami ARM, przy czym pominięto niektóre ich wersje, cieszące się z różnych powodów niewielką popularnością oraz pracujące z systemami operacyjnymi innymi niż Windows. Znaczące różnice cen prezentowanych interfejsów wynikają z różnej gamy ich zaawansowanych możliwości, które zazwyczaj nie są wykorzystywane w typowych aplikacjach mikrokontrolerowych. Dobierając interfejs do własnych potrzeb warto zwrócić uwagę na fakt, że nie zawsze 20-krotnie wyższa cena oznacza proporcjonalnie większą funkcjonalność – szczegóły warto
W tabeli 2 zestawiono najważniejsze cechy wyspecjalizowanych interfejsów-programatorów, przystosowanych do obsługi wybranych rodzin mikrokontrolerów. W tabelach nie uwzględniono dostępnych na rynku pirackich wersji oryginalnych interfejsów, które niskimi cenami zachęcają do zakupu, ale nie zawsze są w stanie spełnić pokładane w nich (techniczne) nadzieje.
W prezentowanych zestawieniach nie uwzględniono zaawansowanych możliwości debugowania oferowanych przez niektóre urządzenia (traktujemy je jako dodatek do podstawowej funkcji programatora), uwzględniono natomiast możliwości programowania ISP oferowane przez niektóre typy programatorów stacjonarnych.
Początkujący konstruktorzy systemów z mikrokontrolerami wyposażonymi w rdzenie firmy ARM mogą wykorzystać do programowania ich pamięci i/lub debugowania ich pracy proste interfejsy z układami firmy FDTI. W Internecie dostępnych jest wiele opisów kompletnych rozwiązań bazujących na GDBserver, których możliwości są wystarczające dla większości aplikacji.
Programatory ISP mikrokontrolerów AVR8/32
Jak wspomniano, mikrokontrolery AVR8 wykreowały wśród mikrokontrolerów trend programowania ISP. Pierwotnie do tego celu był wykorzystywany interfejs ISP-SPI (AVR8
– rysunek 3), nieco później wprowadzono
JTAG (AVR8/32), interfejsy aWire (AVR32) i dwuliniowy PDI (Program and Debug Inter- face – rysunek 4), a także debugWIRE, który
– podobnie do JTAG-a – jest przeznaczony do debugowania pracy mikrokontrolerów.
W tabeli 3 zestawiono wybrane typy modułów programujących i debugujących, wszystkie są wyposażone w interfejsy USB.
Praktycznie wszystkie przedstawione urządzenia są obsługiwane przez pakiet AVR
Studio 4.x, większość przez AVR Studio 5.x oraz IDE Bascoma.
Warto jeszcze wspomnieć o dużej liczbie dostępnych na naszym rynku klonów rozwiązań udostępnionych przez firmę Atmel, co powoduje, że ceny prostych funkcjonalnie programatorów ISP są bardzo niskie,
64 ELEKTRONIKA PRAKTYCZNA 9/2011
Programatory ISP dla mikrokontrolerów i układów PLD – przegląd a urządzenia te są łatwo dostępne. Bez trudu można także znaleźć odnaleźć w Internecie opisy kompletnych projektów takich rozwiązań, których atutem – poza możliwością samodzielnego wykonania – jest także możliwość bezpośredniej współpracy z narzędziami programistycznymi firmy Atmel.
W prezentowanym zestawieniu uwzględniono możliwości programowania ISP mikrokontrolerów AVR8 i AVR32 oferowane przez niektóre typy programatorów stacjonarnych.
Programatory ISP mikrokontrolerów firmy
Microchip
Firma Microchip jest jednym z najbardziej konsekwentnych – pod względem korzystania z możliwości interfejsu ISP
(w nomenklaturze firmy Microchip ICSP – In Circuit Serial
Programming ) – producentów mikrokontrolerów. Opracowany wiele lat temu dwuliniowy interfejs ICSP ( rysunek 5) jest w pełni wykorzystywany we wszystkich współcześnie oferowanych mi-
Rys. 3. Sposób dołączenia programatora ISP do mikrokontrolera z rodziny AVR z jednoczesnym udostępnieniem dwufunkcyjnych linii I/O aplikacji użytkownika
Tab. 2. Zestawienie podstawowych cech najpopularniejszych interfejsów JTAG z USB przeznaczonych dla wybranych rodzin mikrokontrolerów z rdzeniami firmy ARM
Interfejs Wygląd JTAG SWD Obsługiwane rdzenie Obsługiwany przez… Uwagi
Cena netto
[PLN]
ST-Link/ST-Link v2
+ + Cortex-M3
ST-Link Tool
STVP
STVD
Atollic TrueSTUDIO
Obsługuje wyłącznie mikrokontrolery STM32
I STM8 (poprzez interfejs SWIM) ok. 130
ZL30PRG/
ZL30PRGv2
+ + Cortex-M3
ST-Link Tool
STVP
STVD
Atollic TrueSTUDIO
Obsługuje wyłącznie mikrokontrolery STM32
I STM8 (poprzez interfejs SWIM) ok. 80
REKLAMA
ELEKTRONIKA PRAKTYCZNA 9/2011 65
WYBÓR KONSTRUKTORA
Tab. 2. c.d.
Interfejs Wygląd
STX-RLink
XDS100v2
LPC-Link
AT91SAM-ICE
Equinox
FS2009
BeeProg+
JTAG SWD Obsługiwane rdzenie Obsługiwany przez… Uwagi
+
+
+
–
ARM9
ARM7
Cortex-M3
ARM9
Cortex-R4
Cortex-A8
Ride
Code Composer Studio v4.x
Współpracuje z mikrokontrolerami STM32,
STR9, STR7 firmy
STMicroelectronics.
Obsługuje także mikrokontrolery STM8, ST7 i uPSD.
Dostępnych jest wiele wersji tego programatora produkowanych przez różnych producentów
Cena netto
[PLN] ok. 320 ok. 320
+ +
Cortex-M0/M3
ARM7/9
LPCXpresso IDE
Zintegrowany z LPCXpresso ok. 90 w zestawie
OM11049
(LPC1114)
+
+
+
–
Cortex-M0/M3
ARM7/9
ARM7 (AT91SAM7)
ARM RDI
GDB server
GNU/Eclipse
Natywny
Zgodny z J-Linkiem, funkcjonalność ograniczona do rdzeni implementowanych przez Atmela
Uniwersalny programator ISP, przystosowany do programowania ISP mikrokontrolerów AVR i 8051. Wbudowana pamięć 4 MB, praca standalone.
ok. 500 ok. 1900
+ –
ARM7
Cortex-M3
Cortex-M0
Natywny
Uniwersalny programator stacjonarny z obsługą ISP.
ok. 4300
BeeProg 2
Uprog ICP
+ –
ARM7
ARM9
Cortex-M3
+ – Cortex-M3
Natywny
Natywny
Uniwersalny programator stacjonarny z obsługą ISP.
ok. 5700
Programator ISP obsługujący interfejsy: SPI,
I 2 C, BDM, JTAG, 1-wire,
3-wire.
ok. 900 krokontrolerach tej firmy, także dsPIC, PIC24 oraz PIC32. Poza programowaniem jest on także wykorzystywany do debugowania pracy mikrokontrolerów, co pozwala budować relatywnie tanie narzędzia sprzętowe wspomagające uruchamianie i testowanie systemów cyfrowych bazujących na tych układach. Wiele typów mikrokontrolerów oferowanych prze firmę Microchip wyposażono także w dwa rodzaje interfejsów
JTAG, do których dostęp jest możliwy poprzez jeden zestaw linii I/O. Jeden z tych interfejsów służy do testowania prawidłowości montażu i połączeń na PCB (boundary scan), drugi jest alternatywnym do ICSP kanałem umożliwiającym programowania pamięci Flash i monitorowanie oraz zarządzanie pracą CPU. Z tego powodu narzędzia oferowane przez firmę Microchip „domyślnie” wykorzystują natywny interfejs ICSP, którego funkcjonalność – przy zachowaniu pełnej kompatybilności „w dół” – są powiększane wraz z rosnącymi wymaganiami aplikacji.
66
W zestawieniu prezentowanym w tabeli 4 uwzględniono możliwości programowania ISP mikrokontrolerów PIC i dsPIC oferowane przez niektóre typy programatorów stacjonarnych.
Programatory ISP układów PLD
Współczesne układy programowalne są standardowo wyposażane w interfejsy JTAG, za pomocą których można je konfigurować (FPGA z pamięcią konfiguracji SRAM), programować (CPLD i FPGA z pamięciami konfiguracji Flash), a także weryfikować poprawność ich montażu i jakość połączeń na PCB
Rys. 4. Budowa interfejsu ISP z PDI i JTAG-iem i sposób dołączenia programatora PDI do mikrokontrolera z rodziny AVR
(boundary scan).
Pomimo zastosowania standardowego – od strony fizycznej – interfejsu programującego, układy PLD pochodzące od różnych producentów wymagają zastosowania różnych narzędzi do programowania. W przeglądzie przedstawionym
ELEKTRONIKA PRAKTYCZNA 9/2011
Programatory ISP dla mikrokontrolerów i układów PLD – przegląd
Większość programatorów stacjonarnych z ISP wymaga do programowania PLD przygotowania specjalnych plików: STAPL,
SVF, XSVF lub VME. w tabeli 5 skupiliśmy na programatorach obsługujących układy PLD trzech obecnie największych producentów firm: Altera, Lattice i Xilinx.
Programatory oferowane przez producentów lub firmy z nimi współpracujące (jak Digilent w przypadku Xilinksa lub Terasic w przypadku Altery) programują/konfigurują układy PLD
„wprost” z systemu EDA. Nieco więcej pracy mają konstruktorzy wykorzystujący programatory stacjonarne z możliwością programowania
ISP lub programatory uniwersalne: zazwyczaj wymagają one do programowania/konfiguracji
PLD plików w uniwersalnych formatach jak np.
STAPL, SVF, XSVF lub VME. Najpopularniejsze narzędzia EDA wspomagające realizację projektów dla PLD są wyposażone w generatory plików w tych formatach.
Podsumowanie
Popularność podzespołów wyposażonych w różnego rodzaju interfejsy zapewniające możliwość programowania pamięci EEPROM lub
Flash w systemie (ISP – In System Programming) nieustannie rośnie, co wynika przede wszystkim z łatwości programowania ISP, niskich cen narzędzi niezbędnych do wygodnego korzysta-
REKLAMA nia z możliwości takiego sposobu programowania, a także coraz większych możliwości interfejsów ISP – jak na przykład możliwość debugowania lub testowania w systemie, czy weryfikacja jakości połączeń na płytce i pomiędzy podzespołami.
Jak widać w przygotowanym przez nas przeglądzie interfejsów ISP, konstruktorzy zainteresowani korzystaniem z nich mają
Rys. 5. Sposób dołączenia programatora ICSP do mikrokontrolerów z rodziny PIC i dsPIC szeroki wybór możliwości i związanych z nimi nieodłącznie różnych cen, dzięki czemu do w pracowni konstrukcyjnej, minimalizuje także ryzyko uszkodzenia sprzętu w wyniku każdego realizowanego zadania można dobrać odpowiedni programator i/lub debugger.
Zdecydowana większość dostępnych na rynku programatorów, sprzętowych debuggerów nieprawidłowego wyzerowania instalacji elektrycznej. Jednocześnie widać brak ujednoliconego, przyjętego przez wszystkich producentów standardu ISP – jedynie warstwa fizyczna i programatorów stacjonarnych współpracuje z komputerami poprzez interfejs USB, co znakomicie upraszcza okablowanie stanowiska
Podane w artykule ceny urządzeń są średnią arytmetyczną cen podawanych w sklepach internetowych oraz stronach dystrybutorów. W każdym przypadku uwzględniono co najmniej dwa źródła informacji, w większości przypadków było ich więcej.
interfejsu JTAG cieszy się powszechną popularnością, ale różnice w implementowanych protokołach (poza boundary scan) powodują, że w większości przypadków narzędzia przeznaczone dla określonych układów scalonych nie mogą być wykorzystywane do obsługi elementów innych producentów. Na szczęście ceny programatorów ISP nie są zbyt odległe od powierzchni gruntu…
Piotr Zbysiński, EP [email protected]
ELEKTRONIKA PRAKTYCZNA 9/2011 67
advertisement
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Related manuals
advertisement