Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
TermopastyTermopasty
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM

Freddie Chopin 02 Sep 2009 21:05 15893 13
  • JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM
    JTAG-lock-pick to JTAG do procesorów z rdzeniem ARM podłączany do komputera PC przez magistralę USB. Projekt ten bazuje na istniejącym rozwiązaniu firmy Amontec o nazwie JTAGkey. 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 (RXD, TXD, RTS, CTS, DCD, DSR, DTR, RI) 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. Cztery najważniejsze linie interfejsu UART (RXD, TXD, RTS, CTS) 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. 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. 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, ze strony komputera PC 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.

    Wybór JTAGkey'a jako bazy dla projektu JTAG-lock-pick podyktowany był głównie faktem dużych możliwości tego urządzenia, dlatego też układy te są ze sobą całkowicie kompatybilne ze strony programowej. JTAGkey - a więc i 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. Rozwiązanie firmy Amontec jest wspierane przez wiele aplikacji, a co za tym idzie w programach tych dostępne są gotowe konfiguracje dla tego układu, nie ma więc potrzeby tworzyć ich ręcznie. Dodatkowo firma Amontec na swojej stronie udostępnia aplikacje pozwalające na programowanie przy użyciu tego JTAGa układów FPGA, CPLD oraz AVR plikami typu SVF.

    Projekt JTAG-lock-pick jest następcą projektu 4R|/|-JT4G Rev02 (DIY, forum mikrokontrolerów, moja strona), eliminującym kilka jego istotnych wad. Przede wszystkim poprzednik miał zwarte linie SRST i TRST "z założenia", a dodatkowo zastosowany tam 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.

    Osoby zainteresowane takim JTAGiem zapraszam na priv, nie warto zaśmiecać tematu takimi pytaniami. Warto też obserwować forum mikrokontrolerów, a szczególnie ten temat, gdzie również pojawi się informacja o ponowieniu zamówień.

    Na mojej stronie w dziale Download > Projekty > JTAG-lock-pick dostępnych jest kilka plików związanych z tym projektem: manual (wraz ze schematem i wykazem elementów), gotowy template do EEPROMu oraz sterowniki (zarówno korzystające z ftd2xx.dll jak i z libusb-win32).

    Na koniec zestaw fotek <:

    Zaprojektowana płytka PCB jest "wymiarowo" zgodna z poprzednikiem (40x60mm) i również pasuje do obudowy Z-24A firmy Kradex, szczególnie do wariantu przezroczystego Z-24Ap.

    JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM

    Układ występuje zasadniczo w dwóch wariantach:

    JTAG-lock-pick FULL - zgodnie z nazwą wersja ta zawiera wszystkie moduły, a więc JTAG oraz porty UART / RS-232. Jest to najbardziej rozbudowana wersja JTAG-lock-pick.

    JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM

    JTAG-lock-pick BASIC - wersja ta pozbawiona jest portów UART / RS-232 i wszystkich elementów, które są z nimi związane. JTAG-lock-pick w tej wersji jest jedynie JTAGiem na USB.

    JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM

    Jak nietrudno się domyślić możliwe jest zbudowanie innych wariantów w oparciu o tą samą płytkę, jednak wymagać będą one wlutowania zworek. Zakładając, że JTAG-lock-pick może składać się z maksymalnie trzech modułów: JTAG, UART oraz RS-232 oraz że moduł JTAGa jest obowiązkowy, możliwe są następujące sensowne kombinacje:
    - JTAG + RS-232,
    - JTAG + UART,
    - JTAG + UART bez buforowania.

    Artykuł na mojej stronie o tym układzie.
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    Freddie Chopin
    MCUs specialist
    Offline 
    Has specialization in: arm cortex-m
    Freddie Chopin wrote 13326 posts with rating 841, helped 1709 times. Live in city Zawiercie. Been with us since 2005 year.
  • TermopastyTermopasty
  • #2
    mack23
    Level 17  
    kiedy można się spodziewać zorganizowanej akcji zamawiania płytek?
  • TermopastyTermopasty
  • #3
    Freddie Chopin
    MCUs specialist
    Bardzo wkrótce [; Na 99% w tym miesiącu. Proponowałbym sprawy tego typu załatwiać w temacie z działu mikrokontrolerów -> https://www.elektroda.pl/rtvforum/topic1191756.html albo na priva, żeby tutaj nie zagracać tematu tymi kwestiami.

    4/3!!
  • #4
    don diego
    Level 32  
    Jak zwykle świetny projekt.Gdzie zamawiałeś płytki? Obyło się bez niedoróbek jak przy płytkach do ICD z Gamy?
  • #5
    Freddie Chopin
    MCUs specialist
    Heh, trochę zapomniałem o tym temacie zakładając, że odpowiedzi i tak nie będzie [;

    Quote:
    Jak zwykle świetny projekt.

    Thx <: Sam jestem z niego bardzo zadowolony, udało się w nim zrealizować praktycznie wszystko co planowałem. Płytki "lutują się same", praktycznie 100% działa zaraz po zlutowaniu, czym ogólnie jestem zszokowany. Po pierwsze te malutkie scalaczki są tak małe i lekkie, że podczas lutowania ich hot-airem same się pozycjonują - roztopiona pasta lutownicza sama przyciąga nóżki do padów (; To wygląda niesamowicie! Pozatym ogólnie jakoś tak nie ma z tym problemów - zlutowane po prostu działa [; Stopień komplikacji uruchomienia jest zbliżony do zera <:

    Tak czy siak - mam kilka pomysłów na poprawki - od drobnych do większych. [;

    Quote:
    Gdzie zamawiałeś płytki?

    Tym razem płytki zamówione w firmie Elpin - droższe (na szczęście nieznacznie [; ) ale i o wiele lepsze. Przedewszystkim płytki z Gamy (nie mylić z Gammą, jak to zrobiłeś powyżej <: ) miały jakąś taką dziwną soldermaskę, która była extremalnie delikatna - Ci którzy mieli je w ręce wiedzą - wystarczyło włożyć płytkę do "trzeciej ręki" i już soldermaska zdarta tam gdzie były krokodylki. Z Gamy płytki były też z cynowaniem chemicznym, które nawiasem mówiąc było bardzo dobre - płytkę można było lutować po długim czasie od wyprodukowania, a dla przykładu płytki z prototypy.com.pl i z cynowaniem chemicznym robią się problematyczne po kilku dniach od produkcji... Anyway - płytki z Elpina są o wiele lepsze niż te z Gamy, choćby dzięki soldermasce, która jest tak odporna jak być powinna. Ma też trochę bardziej naturalne kolory - płytki z Gamy wg mnie nie były czerwone, tylko różowawe, zamiast niebieskich lub czarnych - granatowe. Tutaj co prawda widziałem tylko czerwone, ale... są czerwone <:

    Quote:
    Obyło się bez niedoróbek jak przy płytkach do ICD z Gammy?

    Kolejny raz podkreślę różnicę <: GaMMa - to dystrybutor części elektronicznych (m.in. Microchipa), GaMa to płytkarnia. Jest wielokrotnie lepiej niż przy ICD2 - w końcu tam przy pierwszej partii odrzut był praktycznie 100%, przy tej "poprawionej" również nie było idealnie. Z usterek jakie zauważyłem w płytkach Elpina:
    - na kilkanaście które zlutowałem trafiły mi się dwie ze zwarciami, przypuszczam jednak że to w zasadzie wszystkie, gdyż nikt chyba nie informował mnie o zwarciach na ich płytkach.
    - pozycjonowanie warstwy opisu nie jest idealne, ale to nie ta klasa cenowa chyba, żeby żądać perfekcji w tak nieistotnym detalu.
    - niektóre płytki miały lekko "zlaną" warstwę opisu - literki / symbole w niektórych miejscach były zamazane.

    Jest lepiej, ale... do ideału jeszcze brakuje. Z firmy dostałem wyjaśnienia, że osoba odpowiedzialna za warstwę opisu mogła się faktycznie bardziej postarać, więc może przy kolejnym zamówieniu będzie lepiej (o co zresztą zamierzam wprost poprosić).

    Swoją drogą chyba za dużo napisałem w pierwszym poście, skoro praktycznie zero odpowiedzi...

    4\/3!!
  • #6
    Bruum
    Level 23  
    Witam! Szacun za w zasadzie profesjonalny projekt! Jest może opcja by zmusić przedmiot postu do współpracy z RIDE7?
  • #7
    Freddie Chopin
    MCUs specialist
    Niestety - RIDE7 lubi się tylko ze swoim firmowym RLinkiem. Właśnie zerknąłem czy w ogóle jest tam jakakolwiek opcja konfiguracyjna i niestety debuggerem może być tylko i wyłącznie RLink - nie ma żadnych opcji pozwalających ustawić cokolwiek innego.

    Swoją drogą to ostatnio rzuciło mi się w oczy info o tym, że jakoby w IAR można było używać programów gdbserver takich jak... OpenOCD [; Muszę to kiedyś sprawdzić... Albo jakby ktoś to sprawdził to niech napisze.

    4\/3!!
  • #8
    kemot55
    Level 31  
    Ja znalazłem jakąś "protezę" pod Keil'a i IAR pod adresem http://www.coocox.com. To jest RDI. Nie wiem czy działa, natomiast wykorzystuje ten sam chip FTDI co projekt JTAG-lock-pick. Przeglądając warunki licencji mam wrażenie, że można uzyskać źródła (opensource) do tych bibliotek (ale może się mylę).
    Dłuży czas poszukiwałem klonu ULINK2, ale niestety mało prawdopodobne, żeby ktoś wydobył z oryginału firmware (a może?).
  • #9
    kwesoly
    Level 15  
    Jak sobie ten JTAG radzi z programowaniem FPGA/VHDL? Daje się zintegrować np. z iMPACT dołączonym do WebPack ISE czy trzeba to obchodzić długą ścieżką na piechotę?
  • #10
    Freddie Chopin
    MCUs specialist
    kemot55 wrote:
    Ja znalazłem jakąś "protezę" pod Keil'a i IAR pod adresem http://www.coocox.com. To jest RDI. Nie wiem czy działa, natomiast wykorzystuje ten sam chip FTDI co projekt JTAG-lock-pick. Przeglądając warunki licencji mam wrażenie, że można uzyskać źródła (opensource) do tych bibliotek (ale może się mylę).

    Faktycznie - idea JTAGa jest identyczna (dodatkowe linie typu diodki i resety są poprowadzone oczywiście inaczej).

    kwesoly wrote:
    Jak sobie ten JTAG radzi z programowaniem FPGA/VHDL? Daje się zintegrować np. z iMPACT dołączonym do WebPack ISE czy trzeba to obchodzić długą ścieżką na piechotę?

    Nie jestem Ci w stanie odpowiedzieć... Wiem, że za pomocą OpenOCD można programować FPGA plikami SVF, ale jak fizycznie wygląda integracja z istniejącymi pakietami pod takie układy - nie wiem.

    EDIT:
    Jakby ktoś był zainteresowany, to w temacie o tym JTAGu na forum mikrokontrolerów w tym poście zamieściłem zdjęcia hi-res wzorcowego egzemplarza z drugiej serii <:

    4\/3!!
  • #11
    LordBlick
    VIP Meritorious for electroda.pl
    Dorzucę swoje 0,05PLN: Projekt w Kicad prostej przejściówki, używanej w JTAG-lock-pick, umożliwiającej programowanie po ISP większości AVR z serii ATmega i ATtiny.
    JTAG-lock-pick - JTAG do procesorów z rdzeniem ARM
    Argument określający programator w avrdude:
    Code:
    -c jtagkey
    Attachments:
  • #12
    User removed account
    User removed account  
  • #13
    Freddie Chopin
    MCUs specialist
    W manualu dla JTAG-lock-pick Tiny 2 są opisy użycia z Keil (starszym) i CooCoxem (też nieco starszym). W przypadku JTAG-lock-pick 1.x.x w zasadzie jedyną różnicą powinna być konieczność wykorzystania konfiguracji dla Amontec JTAGkey zamiast dla KT-Link.

    4\/3!!
  • #14
    User removed account
    User removed account