Mvision | STX-5 USB | Instrukcja obsługi | Pobierz PDF - Elektronika Praktyczna


Add to my manuals
6 Pages

advertisement

Mvision | STX-5 USB | Instrukcja obsługi | Pobierz PDF - Elektronika Praktyczna | Manualzz

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.

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

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.

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

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Related manuals

advertisement