Programatory ISP dla mainstreamowych mikrokontrolerów przegląd praktyczny 2014

Podobne dokumenty
Programatory ISP dla mikrokontrolerów i układów PLD przegląd

Programator-debugger JTAG/SWIM dla mikrokontrolerów STM32 i STM8

ADuCino 360. Zestaw uruchomieniowy dla mikrokontrolerów ADuCM360/361

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

AsLinkEx instrukcja obsługi

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

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

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

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

ZL10PLD. Moduł dippld z układem XC3S200

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

STM32L0: Cortex-M0+ w rodzinie STM32

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

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

KA-NUCLEO-F411CE. Płytka rozwojowa z mikrokontrolerem STM32F411CE

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

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

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

System on Chip na miarę S P R Z Ę T

Układy zegarowe w systemie mikroprocesorowym

FREEboard. Zestaw startowy z mikrokontrolerem z rodziny Freescale KINETIS L (Cortex-M0+) i sensorami MEMS 7 DoF

ZL17PRG. Programator ICP dla mikrokontrolerów ST7F Flash

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

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

Laboratorium Procesorów Sygnałowych

E-TRONIX Sterownik Uniwersalny SU 1.2

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Wstęp Architektura... 13

KAmduino UNO. Rev Źródło:

32 bity to już standard!

Narzędzia programowe i sprzętowe dla ARM

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

Mikrokontroler Wykład 5

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

2. Architektura mikrokontrolerów PIC16F8x... 13

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

BF30 OCDLINK/USBASP ARM-JTAG/AVR-ISP Programmer-debugger Instrukcja obsługi

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Programator procesorów rodziny AVR AVR-T910

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

1.1. Wstęp. 1. Wprowadzenie

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Aparatura Elektroniczna (EAE) Stopień studiów i forma: I stopień, stacjonarna Rodzaj przedmiotu: obowiązkowy - 2

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL24PRG. Interfejs JTAG dla mikrokontrolerów ARM

NXP ma nowe ARM-y. BlueStreak: co i jak

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

dokument DOK wersja 1.0

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

TECHNIKA MIKROPROCESOROWA II

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

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

MikloBit ul. Cyprysowa 7/ Jaworzno. JTAG + ISP dla AVR. rev

MDK-Plus. Licencja Node-Locked 8260 EUR 5740 EUR 3340 EUR gratis 3300 EUR 2300 EUR 1330 EUR 650 EUR 3970 EUR 2760 EUR 1600 EUR

Instytut Teleinformatyki

Mikrokontrolery AVR techniczne aspekty programowania

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

PSM niebanalne Flashe

Zestaw Startowy EvB. Więcej informacji na stronie:

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Kod produktu: MP01105T

Instrukcja obsługi debugera JTAG-AVR USB v2

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Płytka uruchomieniowa XM32

usbcat OPTOIZOLOWANY INTERFEJS USB<->CAT OPTOIZOLOWANE STEROWANIE PTT, CW, FSK GALWANICZNA IZOLACJA AUDIO IN, AUDIO OUT Podręcznik użytkownika

Debugger/programator z interfejsem JTAG oraz SWD dla mikrokontrolerów ARM zgodny z KEIL ULINK 2. Gotronik

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

ZL5ARM. Zestaw uruchomieniowy dla mikrokontrolerów LPC2119/2129 (rdzeń ARM7TMDI-S) Kompatybilność z zestawem MCB2100 firmy Keil

ICD Interfejs BDM dla CPU32. Marek Wnuk

Wykład 6. Mikrokontrolery z rdzeniem ARM

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

KATEDRA SYSTEMÓW MULTIMEDIALNYCH SEMINARIUM MULTIMEDIALNE SYSTEMY MEDYCZNE

ICD Interfejs JTAG dla DSP56800E. Mariusz Janiak

ZL11AVR. Zestaw uruchomieniowy z mikrokontrolerem ATtiny2313

MAXimator. Zestaw startowy z układem FPGA z rodziny MAX10 (Altera) Partnerzy technologiczni projektu:

DOKUMENTACJA PROJEKTU

ARM y jakich (jeszcze) nie znacie

BF20 JTAG dla ARM ów z interfejsem USB Instrukcja obsługi

To jeszcze prostsze, MMcc1100!

Altera MAX10: nowa generacja FPGA i jej nowe możliwości

Popularne pamięci FLASH firmy GigaDevice

Przykładowa aplikacja LOGO! 8 Cyfrowy termometr z sygnalizacją przekroczenia progów

ZL6ARM Zestaw uruchomieniowy dla mikrokontrolerów LPC213x. Tab. 1. Zestawienie najważniejszych parametrów wybranych mikrokontrolerów z rodziny LPC213x

Instrukcja obsługi programatora AVR Prog USB v2

Programator ICP mikrokontrolerów rodziny ST7. Full MFPST7. Lite. Instrukcja użytkownika 03/09

Transkrypt:

Programatory ISP dla mainstreamowych mikrokontrolerów WYBÓR przegląd KONSTRUKTORA praktyczny 2014 Programatory ISP dla mainstreamowych mikrokontrolerów przegląd praktyczny 2014 Poprzednią edycję przeglądu programatorów dla mikrokontrolerów i układów PLD opublikowaliśmy w EP9/2011. Przez te dwa lata sytuacja na rynku uległa znaczącej zmianie, przy czym odczuli ją przede wszystkim konstruktorzy korzystający w swoich projektach z mikrokontrolerów. Programowanie pamięci mikrokontrolerów w systemie i możliwość debugowania ich pracy w realnych warunkach aplikacyjnych są dziś oczywiste dla wszystkich konstruktorów stosujących w swoich opracowaniach współczesne mikrokontrolery. Standardowym interfejsem wykorzystywanym przez programatory do komunikacji z logiką zaimplementowaną w mikrokontrolerze jest 5-liniowy JTAG, niektóre rodziny mikrokontrolerów (zwłaszcza wyposażone w rdzenie Cortex-M0 i do nich zbliżone) są wyposażone w 2-liniowe interfejsy SWD, których poważną zaletą jest minimalizacja liczby linii wykorzystywanych do komunikacji programatora-debuggera z mikrokontrolerem. Rok 2014 zapowiada się jako kolejny, w którym mikrokontrolery bazujące na rdzeniach Cortex firmy ARM będą wzmacniały swoją rynkową dominację. Rdzenie starszych generacji opracowane przez tę firmę (jak ARM7, ARM9 czy ARM11) odchodzą do historii, podobnie jak wszystkie starsze architektury bazujące na rdzeniach 51, AVR (8 i 32), ColdFire, PIC16/18, HC/ Początki ISP 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 isplsi1000, które wyposażono w synchroniczny interfejs szeregowy o nazwie LatticeISP. Został on dość szybko zastąpiony przez JTAG (IEEE1149), 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. HCS08 itp. Zwycięskiego pochodu rdzeni Cortex nic już nie zatrzyma zwłaszcza, że padają potężne bastiony bazujące na własnych opracowaniach, jak między innymi firmy będące liderami na rynku mikrokontrolerów: Renesas, która na razie zastosowała rdzeń Cortex-A9 tylko w swoich mikroprocesorach z serii RZ/A, Infineon, która wdraża kolejne modele mikrokontrolerów XMC4000 (rdzeń Cortex-M4) oraz XMC1000 (rdzeń Cortex-M0), Freescale, która w swoich działaniach promocyjnych skupia się wyłącznie na rodzinie Kinetis (rdzenie Cortex-M4 oraz Cortex-M0+), Texas Instruments, która po wpadce związanej z przejęciem Luminary Micro, konsekwentnie rozwija nowe linie mikrokontrolerów bazujących na rdzeniach Cortex-M4 (rodzina Tiva), walkę o podtrzymanie popularności mikrokontrolerów AVR zarzuciła firma Atmel, której wysiłki wyraźnie obecnie są skierowane na wywalczenie sobie miejsca w świadomości konstruktorów korzystających z platform sprzętowych z rdzeniami Cortex (SAM D20 z Cortex-M0+, SAM3x z rdzeniem Cortex- -M3, SAM4x z rdzeniem Cortex-M4). Grono rynkowych tuzów podążających szlakiem wytyczonym przez ARM wspiera szybko rosnące grono mniejszych firm, które zarzucają własne mikrokontrolerowe pomysły i rozwiązania i przechodzą na rdzenie Cortex. W celach ilustracyjnych wymienię jako przykłady nie są to wszystkie! firmy: Analog Devices (ADuC- M36x z Cortex-M3 i CM4xx z Cortex-M4 ), Spansion (firma przejęła produkcję mikrokontrolerów od Fujitsu, ma w ofercie trzy rodziny układów: FM4 z Cortex-M4, FM3 z Cortex-M3 oraz FM0+ z Cortex-M0+), Silicon Labs (przejęta od EnergyMicro rodzina EFM32 z rdzeniami Cortex-M0+, Cortex-M3 i Cortex-M4). Dla kompletu wstępnych informacji warto jeszcze wspomnieć o firmach, które jako pierwsze wsparły pomysł firmy ARM i zastosowały opracowane przez nią rdzenie w swoich mikrokontrolerach, jak m.in. NXP czy STMicroelectronics. W wielu europejskich krajach, w tym także w Polsce, rodzina mikrokontrolerów produkowanych przez tę drugą firmę STM32 jest obecnie często utożsamiana z mikrokontrolerami ARM, co dowodzi słuszności decyzji podjętej przed laty. Walkę z corteksowym potopem kontynuuje firma Microchip (w roku 2011 na 4 miejscu pod względem wartości sprzedaży mikrokontrolerów), która kilka lat temu zdecydowała się na zastosowanie w swoich 32-bitowych mikrokontrolerach rdzenia opracowanego przez firmę MIPS, który poza dużą liczbą zalet ma jedną wadę: nie podbił rynku. Konsekwencja działań Microchipa zasługuje na szacunek, ale - w mojej ocenie nie daje długofalowej nadziei na ekspansję rodziny PIC32. Biorąc pod uwagę wymienione powyżej przesłanki, w prezentacji programatorów i debuggerów dostępnych na krajowym rynku, skupimy się przede wszystkim na urządzeniach o największym potencjale praktycznym w odniesieniu do ceny, obsługujących najpopularniejsze typy mikrokontrolerów. Przedstawimy także ważne elementy osprzętu programatorów oraz programatory ISP dla układów PLD. Programatory-debuggery ISP mikrokontrolerów z rdzeniami firmy ARM Jak wspomniałem na początku artykułu, na rynku dominują obecnie 32-bitowe 57

WYBÓR KONSTRUKTORA Tabela 1. Zestawienie podstawowych cech mainstreamowych 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 + + ARM7/9/11 Cortex-A5/A8 Cortex-M0/M1/M3/M4 J-Link EDU + + ARM7/9/11 Cortex-A5/A8 Cortex-M0/M1/M3/M4 ULINK2 + + ARM7/9 Cortex-M0/M/M3/M4 8051 C166 ULINK-ME + + ARM7/9 Cortex-M0/M1/M3/M4 mikrokontrolery wyposażone w rdzenie z serii Cortex-M, standardowo wyposażane w jeden z synchronicznych interfejsów szeregowych, służących do programowania pamięci Flash i debugowania pracy układu w systemie: Taniej, ale czy warto? Pokusą dla początkujących konstruktorów systemów z mikrokontrolerami wyposażonymi w rdzenie firmy ARM jest samodzielne wykonanie interfejsów programująco-debugujących, na przykład bazujących na układach interfejsowych USB firmy FTDI. W Internecie można znaleźć wiele opisów kompletnych rozwiązań bazujących na GDBserver, których możliwości są wystarczające dla większości aplikacji. W naszym raporcie z września 2011 taki sposób postępowania jawił się jako rozsądna droga dla oszczędnych, obecnie sytuacja wygląda nieco inaczej: za ok. 220 PLN brutto można stać się posiadaczem jednego z najdoskonalszych interfejsów do debugowania i programowania mikrokontrolerów z rdzeniami ARM (z wbudowanym SWD) J-Link EDU firmy Segger. IAR EWARM KEIL µvision Rowley Crossworks CodeSourcery G++ GDB-Server IAR EWARM KEIL µvision Rowley Crossworks CodeSourcery G++ GDB-Server Prędkość transmisji do 1 MB/s. ok. 1560 Tania wersja J-Linka bez licencji komercyjnej. Prędkość transmisji do 0,8 MB/s. ok. 220 Keil µvision IDE Prędkość transmisji do 1,15 MB/s. ok. 1700 Keil µvision IDE JTAG (Joint Test Action Group), który jest interfejsem 5-przewodowym, opracowanym do celów testowania połączeń i wykonywania testów funkcjonalnych pomiędzy elementami zamontowanymi na PCB, który z czasem został zaadoptowany do debugowania pracy mikroprocesorów i mikrokontrolerów oraz programowania ich pamięci, Wbudowane złącze 10-pin Cortex Debug Connector. Dostępny wyłącznie z zestawami ewaluacyjnymi. Prędkość transmisji do 1,15 MB/s. ok. 290 SWD (Serial Wire Debug), który jest interfejsem 2-przewodowym, o funkcjonalności podobnej do JTAG, ale nieco mniejszej przepływności danych (ponieważ sterowanie pracą interfejsu przesyłanie komend sterujących odbywa się w slotach czasowych transmisji danych). W zależności od producenta, niektóre mikrokontrolery są wyposażane tylko Rysunek 1. Fragment schematu systemu z mikrokontrolerem z rodziny STM32 z interfejsem JTAG 58

Programatory ISP dla mainstreamowych mikrokontrolerów przegląd praktyczny 2014 Zalety corteksowego świata Konstruktorzy korzystający z mikrokontrolerów wyposażonych w rdzeń ARM Cortex-Mx nie muszą zmieniać przyzwyczajeń ani kupować dodatkowych narzędzi sprzętowych, jeżeli z jakichś przyczyn chcą zmienić producenta mikrokontrolerów stosowanych w aplikacji. Jedyny warunek to posiadanie programatora-debuggera obsługiwanego natywnie przez środowisko programistyczne. w interfejs JTAG lub SWD, są także układy (jak na przykład STM32) z wbudowanymi obydwoma typami interfejsów, użytkownik może korzystać z nich wymiennie. Na rysunku 1 pokazano fragment schematu systemu z mikrokontrolerem z rodziny STM32 ilustrujący sposób dołączenia programatora JTAG do mikrokontrolera, na rysunku 2 pokazano fragment schematu systemu z mikrokontrolerem ADuCM360 (Analog Devices), który wyposażono wyłącznie w interfejs SWD. W przypadku, kiedy mikrokontroler wyposażono w obydwa interfejsy (SWD i JTAG), linia sterująca TCK interfejsu JTAG jest alternatywnie linią SWCLK (SWD), a linia TMS dwukierunkową linią danych SWDIO (SWD) rysunek 3. Wszystkie komercyjne programatory- -debuggery dla mikrokontrolerów obsługują obydwa przedstawione interfejsy, dzięki czemu w zależności od wyposażenia mikrokontrolera i potrzeb konstruktora- -programisty można wygodnie korzystać z jednego interfejsu niezależnie od typu mikrokontrolera, dla którego jest budowana aplikacja. 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ą Rysunek 2. Fragment schematu systemu z mikrokontrolerem z rodziny ADuCM360 (Analog Devices) z interfejsem SWD REKLAMA O czym nie piszemy w artykule i dlaczego? Uważni Czytelnicy dostrzegą, że w artykule zostały pominięte natywne interfejsy producentów, wykorzystywane wyłącznie do programowania-debugowania mikrokontrolerów zamontowanych na zestawach ewaluacyjnych, a niedostępne w postaci samodzielnych urządzeń. Z tego powodu nie piszemy w artykule o interfejsach OpenSDA, PC-Link i im podobnych. 59

WYBÓR KONSTRUKTORA Tabela 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 brutto [PLN] ST-Link v2 + + Cortex-M3, Cortex-M4, Cortex-M0/STM32 ZL30PRGv2 + + Cortex-M3, Cortex-M4, Cortex-M0/STM32 ST-Link Tool STVP STVD Atollic TrueSTUDIO IAR Workbench ARM-MDK ST-Link Tool STVP STVD Atollic TrueSTUDIO IAR Workbench ARM-MDK Obsługuje wyłącznie mikrokontrolery STM32 i STM8 (poprzez interfejs SWIM) Obsługuje wyłącznie mikrokontrolery STM32 i STM8 (poprzez interfejs SWIM) ok. 115 ok. 89 STX-RLink + + ARM9 ARM7 Cortex-M3 LPC-Link 2 + + Cortex-M0, Cortex-M0+, Cortex-M3, Cortex-M4 Ride J-Link by SeggerCMSIS-DAP by ARMCode Red Technologies Redlink Współpracuje z mikrokontrolerami STM32, STR9, STR7 fi rmy STMicroelectronics. Obsługuje także mikrokontrolery STM8, ST7 i upsd. Wymienny fi rmware zapewni zgodnośc z: Segger J-Link ARMCode CMSIS-DAP Red Technologies Redlink RLink-STD + + Cortex-M3 Ograniczenie maksymalnej objętości debugowanego programu do 64 kb. Obsługuje także interfejs SWIM (STM8). XDS100v2 + - ARM9 Cortex-M3 Cortex-M4 Cortex-A8 Cortex-A9 ZL31PRG + - ARM9 Cortex-M3 Cortex-M4 Cortex-A8 Cortex-A9 Code Composer Studio v5.x Code Composer Studio v5.x Dostępnych jest wiele wersji tego programatora produkowanych przez różnych producentów Ścisły odpowiednik interfejsu XDS100v2 ok. 400 ok. 220 ok. 550 ok. 360 ok. 200 AT91SAM-ICE + + Cortex-M0/M3/M4 ARM7/9 ARM RDI GDB server GNU/Eclipse IAR Workbench Zgodny z J-Linkiem, funkcjonalność ograniczona do rdzeni implementowanych przez Atmela ok. 500 60

Programatory ISP dla mainstreamowych mikrokontrolerów przegląd praktyczny 2014 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ść w typowych aplikacjach cechy i parametry urządzenia i ich przydatność w realizowanych aplikacjach warto przeanalizować przed zakupem. 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. Programatory ISP mikrokontrolerów firmy Microchip Jak wspomniałem na początku artykułu, Microchip jest jedną z niewielu firm kultywujących własne rozwiązania, w tym także korzystania do programowania pamięci Flash mikrokontrolerów za pomocą interfejsu ISP w nomenklaturze firmy Microchip ICSP In Circuit Serial Programming. Opracowany wiele lat temu dwuliniowy interfejs ICSP (rysunek 4) jest w pełni wykorzystywany we wszystkich współcześnie oferowanych mikrokontrolerach tej firmy, także dspic, PIC24 oraz we wszystkich wariantach 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. W zestawieniu prezentowanym w tabeli 3 uwzględniono możliwości programowania ISP mikrokontrolerów PIC i dspic oferowane przez niektóre typy programatorów stacjonarnych. Akcesoria do programatorówdebuggerów ISP Producenci interfejsów prezentowanych w artykule tworzą wokół nich ekosystemy, w skład których wchodzą różnego rodzaju kable i płytki spełniające rolę przelotek pomiędzy złączem IDC20 (standardowe złącze JTAG), a innymi złączami coraz częściej stosowanymi w urządzeniach docelowych. Jednym z powodów i kierunków zmian jest miniaturyzacja złącz, czego przykładem mogą być przelotki J-Link Needle Adapter firmy Segger Rysunek 4. Typowy interfejs ICSP firmy Microchip Fotografia 5. Wygląd konwertera złącz J-Link Needle Adapter firmy Segger Rysunek 3. Rozmieszczenie sygnałów na złączach SWD i JTAG (IDC20) (fotografia 5), czy Segger J-Link ARM-14 (fotografia 6), która konwertuje złącze IDC20 na IDC14. Inną grupą przelotek są adaptery napięciowe, które umożliwiają programowanie i debugowanie mikrokontrolerów zasilanych napięciami o wartości innej niż 3,3 V, które jest najczęściej domyślną wartością przyjmowaną przez producenta. Temu podobnych rozwiązań jest bardzo wiele i są one indywidualnie dosto- Fotografia 6. Wygląd konwertera złącz Segger J-Link ARM-14 firmy Segger 61

WYBÓR KONSTRUKTORA Tabela 3. Zestawienie podstawowych cech wybranych programatorów ICSP i debuggerów dla mikrokontrolerów firmy Microchip Interfejs Wygląd Funkcje Obsługiwane rodziny ICSP Uwagi Cena netto [PLN] MPLAB ICD 3 Programator + debugger PIC10F PIC12F PIC16F PIC18F PIC24F/H dspic PIC32 + Możliwość zasilania programowanego mikrokontrolera. Programowe breakpointy. Zaawansowana obsługa breakpointów. Zaawansowany tracing. ok. 900 MPLAB REAL ICE PICkit 3 sowywane przez producentów interfejsów do wymogów i potrzeb klientów. Drugą ważną grupą peryferii tworzących użytkowe otoczenie interfejsów prezentowanych w artykule są galwaniczne separatory sygnałów, których zadaniem jest galwaniczne rozdzielenie obwodów wyjściowych programatora-debuggera od docelowego układu (rysunek 7). Dzięki temu minimalizowane jest ryzyko uszkodzenia komputera, programatora lub innych elementów toru sygnałowego w wyniku braku wyrównania poziomu 0 sieci zasilającej we wszystkich urządzeniach (co często zdarza się w gniazdkach pozbawionych zerowania lub korzystania z urządzeń nieprawidłowo uziemionych). Problem jest poważnie traktowany przez wszystkich producentów programatorów- -debuggerów, na przykład Segger oferuje specjalną płytkę J-Link JTAG Isolator (fotografia 8), podobne rozwiązanie o nazwie ULINK Isolation Adapter. Także producenci mikrokontrolerów dostrzegli problem i przykładowo - Microchip oferuje specjalny interfejs separacyjny do MPLAB REAL ICE (o nazwie MPLAB REAL ICE Isolator fotografia 9), a STMicroelectronics specjalną wersję popularnego programatora ST-LINK/V2-ISOL (fotografia 10). Galwaniczne separatory dla programatorów Programator + debugger Programator + debugger PIC10F PIC12F PIC16F PIC18F PIC24F/H dspic PIC32 PIC10F PIC12F PIC16F PIC18F PIC24F/H dspic + Programowe breakpointy. Linie LVDS. Zaawansowana obsługa breakpointów. + Możliwość zasilania programowanego mikrokontrolera. Wbudowana pamięć programowanego obrazu 512 kb. ok. 2000 ok. 215 Rysunek 7. Budowa standardowego separatora galwanicznego dla interfejsu JTAG Fotografia 8. Wygląd płytki separatora galwanicznego J-Link JTAG Isolator 62

Programatory ISP dla mainstreamowych mikrokontrolerów przegląd praktyczny 2014 Fotografia 9. Wygląd separatora galwanicznego MPLAB REAL ICE Isolator firmy Microchip Fotografia 10. STMicroelectronics oferuje wariant programatora ST- Link/V2 z wbudowanym separatorem galwanicznym (ST-LINK/V2-ISOL) Fotografia 11. Wygląd produkowanego w Polsce separatora galwanicznego JTAG Isolator, który przy napięciu przebicia izolacji 750 VAC/1 kvdc umożliwia transfer danych via JTAG z częstotliwością TCK do 11 MHz są dość kosztowne i w większości przypadków spowalniają ich pracę, co wynika z wykorzystania w nich jako elementy separacyjne transoptorów. Na tym tle bardzo atrakcyjnie wypada polski wyrób JTAG Isolator firmy KAMAMI.pl (fotografia 11), który konstrukcyjnie został przygotowany do współpracy z interfejsami JTAG z sygnałem taktującym TCK o częstotliwości do 110 MHz, stosunkowo niskiej cenie i niewielkim poborze prądu (do 10 ma). Podsumowanie Przedstawiony w artykule przegląd dobrze oddaje aktualną sytuację na rynku, który krok-po-kroku jest dominowany przez mikrokontrolery z rdzeniami Cortex- -M. Upraszcza to sytuację konstruktorów, którzy mają mniej narzędzi, do tego coraz tańszych, mają coraz większe możliwości diagnostyczne. Programatory stacjonarne, także te wyposażone w interfejsy ISP/ICP, stają się narzędziami serwisowymi, coraz rzadziej stosowanymi podczas projektowania i uruchamiania nowych urządzeń. Zaledwie dwa lata temu sytuacja nie była tak jednoznaczna (vide wspomniany przegląd programatorów w EP9/2011), bardzo mnie ciekawi co nam przyniosą dwa kolejne lata Piotr Zbysiński, EP REKLAMA 63