JTAG-lock-pick

JTAG-lock-pick to JTAG do procesorów z rdzeniem ARM podłączany do komputera PC przez magistralę USB. Urządzenie oparte jest o układ FTDI FT2232, czyli dwukanałowy konwerter USB <=> UART/FIFO. Zaprojektowany układ na pierwszym kanale udostępnia interfejs JTAG, natomiast na drugim pełny interfejs UART / RS-232 (RXDTXDRTSCTSDCDDSRDTRRI) z możliwością dołączenia konwertera RS-485. Projekt JTAG-lock-pick tworzony był jako rozwiązanie bezkompromisowe i rozbudowane, wykorzystujące wszystkie możliwości zastosowanych układów.

Interfejs JTAG pozwala na osiągnięcie częstotliwości zegara do 6MHz. Dzięki wykorzystaniu magistrali USB urządzenie można podłączyć do praktycznie każdego istniejącego komputera PC, co nie jest możliwe przy wykorzystaniu interfejsu równoległego (LPT), który odchodzi już w całkowite zapomnienie. Dzięki zastosowaniu zaawansowanych układów buforujących z serii 74LVC możliwa jest komunikacja z układami zasilanymi napięciami z bardzo szerokiego zakresu – od około 1,6V do 5,5V.

Jednym z założeń projektu było udostępnienie zarówno interfejsu UART jak i RS-232. Wybór pomiędzy interfejsem RS-232 a UART realizowany jest automatycznie na podstawie obecności napięcia zasilającego układy buforujące interfejsu UART – jeśli napięcie to jest wyższe niż około 1,7V aktywowany jest interfejs UART. Cztery najważniejsze linie interfejsu UART (RXDTXDRTSCTS) są również buforowane przez układy serii 74LVC. Pozostałe linie są sterowane bezpośrednio przez układ FT2232 – sygnały wyjściowe mają poziom 5V, natomiast próg „logicznej jedynki” dla sygnałów wejściowych wynosi (typowo) około 1,6V. Dzięki doprowadzeniu do gniazda UART sygnału TXDEN możliwe jest dołączenie do całego układu konwertera RS-485.

Zaprojektowany układ umożliwia zasilanie układów buforujących – a więc i układu docelowego (poprzez gniazda JTAG / UART) – napięciem 3,3V lub 5V. Szyny zasilające bufory odpowiedzialne za UART i JTAG są od siebie rozdzielone, dodatkowa zworka umożliwia zwarcie ich ze sobą, dzięki czemu możliwe są różne konfiguracje napięciowe. Źródłem tych napięć jest szyna USB, maksymalny pobierany przez urządzenie prąd wynosi 500mA dla napięcia 5V (wg specyfikacji) lub 150mA dla napięcia 3,3V, co jest wartością wystarczającą dla rozbudowanych urządzeń cyfrowych bez układów mocy.

JTAG-lock-pick jest programowo w pełni kompatybilny z interfejsem JTAGkey firmy Amontec, dzięki czemu w wielu aplikacjach można korzystać z gotowych ustawień konfiguracyjnych zamiast tworzyć je ręcznie. Możliwe jest również wykorzystanie JTAG-lock-pick do programowania układów FPGACPLD oraz AVR plikami typu SVF przy pomocy oprogramowania udostępnianego przez firmę Amontec.

JTAG-lock-pick posiada rozdzielone linie SRST i TRST, które można dodatkowo niezależnie konfigurować na pracę w trybie push-pull lub open-drain.

Projekt JTAG-lock-pick jest następcą projektu 4R|\/|-JT4G Rev02, eliminującym kilka jego wad. Przede wszystkim poprzednik miał zwarte linie SRST i TRST „z założenia”, co ograniczało możliwości debuggowania. Dodatkowo zastosowany poprzednio układ buforujący 74VHC244 miał istotną wadę, która objawiała się przebiciem napięć wejściowych przez diody zabezpieczające jego wejścia na niepodłączoną linię zasilania, co było bardzo mylące, choć całkowicie bezpieczne dla JTAGa jak i układu docelowego. Obydwa te problemy nie są obecne w projekcie JTAG-lock-pick.


Obsługiwane układy

Interfejs JTAG-lock-pick i obsługujące go oprogramowanie na komputer PC (m.in. OpenOCDAtollic TrueSTUDIOCooCox CoIDEKeil MDK-ARMIAR Embedded Workbench for ARMRowley CrossWorks for ARM, patrz rozdział 4) są w stanie komunikować się z praktycznie każdym istniejącym typem procesora ARM, w tym z najpopularniejszymi:

  • ARM7 (LPC2xxxAT91SAM7STR7xx, …),
  • ARM9 (LPC3xxxAT91SAM9STR9xx, …),
  • Cortex-M (STM32LM3SLPC17xxAT91SAM3, …),

Jedynym czynnikiem limitującym jest obsługa danego procesora przez oprogramowanie na komputerze PC.


„Mocne strony” projektu JTAG-lock-pick

  • bezpieczna i bezproblemowa współpraca z układami zasilanymi napięciami z zakresu od około 1,6V do 5,5V, sygnały buforowane zaawansowanymi układami z serii 74LVC,
  • interfejsy UART i RS-232, każdy z kompletem ośmiu standardowych sygnałów, cztery najważniejsze linie interfejsu UART buforowane (około 1,6V do 5,5V),
  • możliwość zasilania układu docelowego napięciem 3,3V lub 5V za pomocą JTAGa,
  • rozdzielone szyny zasilania buforów JTAG i UART,
  • całość zamknięta w obudowie, dzięki czemu JTAG oraz podłączony do niego komputer i układ docelowy są zabezpieczone przed przypadkowym uszkodzeniem,
  • możliwość podłączenia do układu konwertera RS-485,

Zawartość zestawu

  • debugger / programator JTAG-lock-pick (JTAG + RS-232 + UART), lutowany maszynowo, przetestowany, zamknięty w przezroczystej obudowie (wymiary 24mm x 47mm x 66mm) z otworami na gniazda wycinanymi na frezarce numerycznej oraz z gumowymi nóżkami,
  • taśma przyłączeniowa JTAG <=> target20cm,
  • taśma-przejściówka IDC-10 <=> DB-9 (RS-232), 20cm,
  • dwie wtyczki IDC-14 zaciskane na taśmie + 20cm taśmy płaskiej 14-to żyłowej do stworzenia dowolnego przewodu do interfejsu UART,
  • kabel USB mini-B, czarny, 1,8m,
  • płyta DVD z instrukcją, sterownikami, kompletem przydatnych programów – darmowych (toolchain GCC CodeSourceryIDE EclipseOpenOCDCooCox CoIDE) i komercyjnych w wersjach testowych (Atollic TrueSTUDIO for STM32 LiteKeil MDK-ARM + CooCox CoMDKPluginIAR Embedded Workbench for ARM + CooCox CoIARPluginRowley CrossWorks for ARM) – wszystkie w najnowszych wersjach.