Narzędzia użytkownika

Narzędzia witryny


elektronika:avrjtag

AVR JTAG

Wstęp

Aktualizacja marzec 2013: Opisana poniżej wersja AVR JTAG jest dość stara (pierwsza generacja) i wspiera tylko niewielką grupę procesorów AVR. Najnowsza wersja interfejsu to już trzecia generacja. Jeśli pracujesz dużo z procesorami AVR to polecam zainwestować w interfejs drugiej generacji - AVR Dragon, w czasie pisania tej notki kosztuje ok. 250 zł. Mimo wszystko zapraszam do lektury.

Pliki do ściągnięcia można znaleźć na końcu tekstu. Poprawiłem błąd związany ze źle wykrywanym napięciem oraz zrzut ekranu z programu Pony Prog. Dorzuciłem zrzut całego firmware, etap programowania powinien być teraz szybszy (dostałem sygnały że niekoniecznie działa ta metoda).

Podobny interfejs jest opisany w Elektronice Praktycznej numer 6 z 2004 roku (płytka w 7/2004) oraz numer 12 z 2011 roku (poprawiony interfejs na bazie tego artykułu).

Pewnego dnia dowiedziałem się że można samemu zbudować interfejs JTAG dla procesora AVR. Zacząłem szukać w sieci, ale to co znalazłem, to były skrawki informacji i jeden kompletny projekt, który miał wszystko w jednym (JTAG + programator). Doszedłem do wniosku, że lepiej samemu zrobić wszystko od początku, niż całkowicie polegać na projektach z sieci. To co tutaj zamieszczam jest kompilacją tego co można znaleźć w sieci i nocie aplikacyjnej, którą kiedyś opublikował Atmel. Nie wiem, czy jest jeszcze dostępna na stronie Atmela.

Niemal wszystko, dotyczące JTAG dla AVR, jest opisane we wspomnianej wcześniej nocie. Nota zawiera kompletny schemat interfejsu JTAG dla procesora AVR. Oryginalny projekt firmy Atmel jest dość złożony: zawiera zabezpieczenia przeciw przepięciowe, umożliwia współpracę z układami działającymi na bardzo niskich napięciach - wszystko to, w zastosowaniach amatorskich, nie jest, zwykle, potrzebne. Tak się składa, że sam interfejs może być znacznie prostszy.

Jak działa JTAG i co to jest? JTAG to standard umożliwiający zaglądnięcie, co się dzieje w środku układu scalonego - w tym przypadku - procesora AVR. Co jest fajne, układy posiadające interfejs JTAG można łączyć szeregowo, przez co można obserwować pracę wielu układów jednocześnie. Wymaga to jednak odpowiedniej konfiguracji od strony sterownika, tutaj - komputera. AVR JTAG (lub JTAG ICE) zawiera pewne rozszerzenie, które umożliwia programowanie wewnętrznych pamięci - więc możemy stosować go jako programator. Komunikacja na drodze komputer → AVR JTAG odbywa się za pomocą interfejsu szeregowego RS-232, a AVR JTAG → debugowany układ za pomocą 10 żyłowego kabla (aktywnych sygnałów jest mniej). Na poniższym obrazku można to zobaczyć

Komunikacja pomiędzy poszczególnymi elementami systemu

Budowa

Schemat ideowy znajduje się poniżej:

Schemat ideowy interfejsu JTAG dla AVR

Wszystkim zajmuje się procesor ATMega16, oryginalnie, w nocie Atmela, jest to inny procesor, ale ATMega16 jest nowszy i sprawuje się równie dobrze. Widać również układ MAX232, który dostosowuje poziomy napięć do standardu RS-232. Uwaga! Możliwe jest tam wstawienie układu MAX3232, w ten sposób układ będzie mógł działać przy napięciu 3,3 V - być może konieczna będzie zmiana wartości niektórych kondensatorów (C3, C4, C5, C6), oraz podłączenie kondensatora C5 do masy (a nie do VCC). Inni producenci mogą mieć inne, podobne oznaczenie tego układu. Sam układ MAX3232 kosztuje naście złotych, można dostać tanią wersję innego producenta, jednak należy sprawdzić konfigurację układu i wartości kondensatorów - wartości i sposób podłączenia mogą się różnić. Jeśli robisz wersję na 3,3 V nie zapomnij o odpowiedniej wersji procesora (patrz dokumentacja do ATMega16). Reszta to rezystory, kondensatory i 2 diody. Jest też jeden jumper, którego rola zostanie opisana później, standardowo powinny być zwarte, za pomocą zworki, piny 2 i 3.

Poniżej znajduje się opis złącza między AVR JTAG a układem debugującym. Układ docelowy - ten, który chcemy debugować łączymy 10 żyłową taśmą zakończoną złączką 2 razy 5 pinów (IDC10).

Opis złącza JTAG

PinNazwaWejście/wyjścieOpis
1TCKWyjścieTest Clock, sygnał zegarowy z JTAG ICE do urządzenia docelowego
2GND-Masa
3TDOWejścieTest Data Output, sygnał danych z urządzenia docelowego do JTAG ICE
4VTREFWejściePoziom napięcia logiki układu docelowego
5TMSWyjścieTest Mode Select, sygnał wyboru trybu z JTAG ICE do układu docelowego
6NSRSTWejście/wyjścieWyjście typu open collector z JTAG ICE do układu docelowego, jest to również wejście, aby móc wykryć reset wykonany w urządzeniu docelowym
7VSUPPWejścieNapięcie zasilające JTAG ICE. Ta linia jest odcinana, jeśli jest podłączony zewnętrzny zasilacz (patrz schemat)
8NTRSTWyjście/NCNie podłączone, zarezerwowane dla innych urządzeń JTAG (reset portu JTAG)
9TDIWyjścieTest Data Input, sygnał danych z JTAG ICE do urządzenia docelowego
10GND-Masa

Jak zrobić - krok po kroku

Musimy zrobić pytkę (wszystkie rzeczy do ściągnięcia są na końcu tekstu), polutować wszystko. Płytka ma rozmiar 100 mm na 46 mm. Układy najlepiej wstawiać w podstawki (szczególnie ATMega16). Upewnijmy się, że nie ma żadnych zwarć oraz elementy mają poprawne wartości. Ach, IC2 musi być MAX232A, można wtedy zastosować kondensatory 0,1 μF; oczywiście można wstawić też zwykły MAX232 lub odpowiednik, ale trzeba pamiętać o odpowiednich wartościach kondensatorów. W razie pomyłki raczej nie stanie się nic złego, bo nie bardzo ma się co popsuć - układ ma proste zabezpieczenie przeciw podłączeniu zasilania o niewłaściwej polaryzacji - dioda D1.

Metoda szybka (nowa)

Trzeba zaprogramować procesor, w zewnętrznym programatorze (możliwe jest też programowanie za pomocą przejściówki JTAG-ISP), plikiem firmware ściągniętym z działającego, wcześniej zaprogramowanego JTAGa; należy ustawić bity fuse tak jak dla metody wolnej. JTAG powinien działać natychmiast, w razie problemów radzę przeczytać cały opis dla metody wolnej.

Metoda wolna (stara)

Teraz pora na zaprogramowanie procesora - robi się to dwuetapowo:

1. Pierwszy etap to zaprogramowanie procesora bootloaderem, który potem posłuży do załadowania programu właściwego, odpowiadającego za działanie JTAG AVR. Więcej o samym bootloaderze poniżej tabelki. Trzeba też pamiętać o odpowiednim zaprogramowaniu fuse-bitów, lock-bitów nie trzeba programować. Aby zaprogramować bootloader musimy posiadać jakikolwiek zewnętrzny programator, ja polecam schemat zamieszczony na stronie PonyProg: schemat, do samego programowania użyłem PonyProga. Możliwe jest też użycie przejściówki JTAG-ISP (JTAG ma sygnały potrzebne do programowania) jednak praktycznie tego nie sprawdzałem. Poniżej obrazek, który bit zaprogramować (zrzut z PonyProga) oraz tabelka z objaśnieniem:

Ustawienie bitów w PonyProg

Ustawienia bitów fuse bits:

OznaczenieWartośćWyjaśnienie
OCDEN1Wyłączenie On Chip Debug, jeżeli włączone może zużywać więcej prądu w trybach uśpienia, ze względu na stale działające podukłady systemu rozprowadzania sygnałów zegarowych
JTAGEN1JTAG tutaj nieużywany
SPIEN0Konieczny podczas szeregowego programowania (nie można go od programować w trybie SPI)
CKOPT1Wartość wynika z użycia kwarcu 7,3728 MHz, patrz dokumentacja do ATMega16
EESAVE1Zawartość EEPROMU nie musi być zachowywana między programowaniami - więc wyłączone
BOOTSZ10Wielkość bootloadera ustawiona na 1024 słów, czyli 2048 bajtów (szczegóły w dokumentacji)
BOOTSZ00Wielkość bootloadera ustawiona na 1024 słów, czyli 2048 bajtów (szczegóły w dokumentacji)
BOOTRST0Po resecie skacz do bootloadera
BODLEVEL1Poziom Brown Out Detector - wykrywanie zaniku zasilania - tutaj nie używane więc nie ustawione
BODEN1Brown Out Detector - wykrywanie zaniku zasilania - nie używane więc nie ustawione
SUT11Start Up Time - tutaj bez większego znaczenia - ustawione na 65 ms SUT0 1 Start Up Time - tutaj bez większego znaczenia - ustawione na 65 ms
CKSEL31Wartość wynika z zastosowania kwarcu 7,3728 MHz
CKSEL21Wartość wynika z zastosowania kwarcu 7,3728 MHz
CKSEL11Wartość wynika z zastosowania kwarcu 7,3728 MHz
CKSEL01Wartość wynika z zastosowania kwarcu 7,3728 MHz

Bootloader jest zgodny z protokołem avrboot, skompilowałem go korzystając z tego projektu. Działa to tak, że tuż po włączeniu procesora uruchamiany jest program programatora, który czeka na rozkazy wysyłane przez port szeregowy (prędkość 19200, 8N1). Ważne: zworka na jumperze JP1 musi być w pozycji 1-2, tylko wtedy bootloader przechodzi w tryb programowania - inaczej (pozycja 2-3) uruchamiany jest program zawarty w procesorze. Jeśli używamy kabla USB-RS232 najlepiej jest ustawić numer portu COM między 1 a 4, robi się to w ustawieniach zaawansowanych danego portu komunikacyjnego w Menedżerze Urządzeń. O ile tutaj nie ma to znaczenia to potem AvrProg może narzekać że nie odnalazł urządzenia. Komunikację można sprawdzić korzystając z terminala podłączonego do portu szeregowego i wysłać znak S lub V. Jako terminala można użyć darmowego programu Termite. Poniżej widać efekt, białe tło oznacza wysyłany znak:

Okno terminala połączonego z avrboot. Białe tło oznacza wysyłany znak

Okno programu Termite połączonego z avrboot

Poniższy diagram powinien pomóc w zrozumieniu jak działa komunikacja z JTAGiem:

Droga sygnału RXD i TXD

2. Bootloader mamy już zaprogramowany, pamiętajmy o zworce (pozycja 1-2). Teraz trzeba załadować program sterujący. Uruchamiamy AVRStudio. Przykłady są podane dla wersji 4.0, podobnie jest w wersji 3.5. Jeśli używasz kabla USB-RS232 być może będzie konieczne przestawienie numeru portu między 1 a 4. Z menu Tools wybieramy AVR Prog:

Uruchomienie AVR Prog

Uruchamianie AVR Prog z pakietu AVR Studio Pojawi się okno AVR Prog, pamiętajmy - przed, nasz interfejs musi być włączony i podłączony kablem szeregowym z komputerem oraz zworka w pozycji 1-2, inaczej pojawi się komunikat, że nie został wykryty żaden interfejs. Oto okno AVR Prog (pojawi się jeśli wszystko jest OK):

Okno AVR Prog

Okno programu AVR Prog Klikamy Browse i lokalizujemy plik upgrade.ebn, w standardowej instalacji jest to: C:\Program Files\Atmel\AVR Tools\JTAGICE\Upgrade.ebn. Tutaj jest cała magia - ten plik to zaszyfrowana zawartość programu interfejsu JTAG, AVR Studio zajmie się już programowaniem, my o nic się nie martwimy i wciskamy Program (w sekcji Flash). Gotowe. Na koniec przestawiamy zworkę w pozycję 2-3 tak, aby bootloader już się nie uruchamiał. Bezpośrednio po włączeniu powinna zapalić dioda sygnalizująca komunikację JTAG (ta druga oprócz diody power).

Krótki test

Aby przetestować interfejs zbudowałem prosty układ z procesorem ATMega16 - ten ma już interfejs JTAG, bo na przykład ATMega8 nie ma JTAG. Fabrycznie procesor jest dostarczony z zaprogramowanym bitem JTAGEN, jednak ja dla pewności zaprogramowałem go wraz z bitem OCDEN (myślę, że ten etap nie jest konieczny). Oto schemat układu testowego:

Schemat układu testowego

Linie sygnałowe TCK, TDO, TMS, TDI łączymy z odpowiednimi nóżkami układu, NSRST łączymy z resetem procesora, oraz łączymy VCC do VTREF. Układ testowy łączymy z płytką interfejsu JTAG za pomocą kabla 10 żyłowego. U mnie zadziałało prawie od razu - zapomniałem jedynie podłączyć napięcia do VTREF, po korekcie AVR Studio przestało narzekać, że napięcie nie jest podłączone. A oto jak sprawdzić interfejs: wybieramy Tools → Program AVR → Connect:

Krok pierwszy, wybieramy odpowiednią pozycję menu

Pojawi się okno wyboru programatora, z którego wybieramy JTAG ICE oraz port, do którego jest podłączony nasz interfejs:

Krok drugi, wybieramy programator JTAG ICE

Jeśli wszystko działa poprawnie pojawi się okno programatora:

Krok trzeci, JTAG gotowy do pracy

Jedyne, co mi nie pasowało, to źle wykryte napięcie VTREF, powinno być 5 V, jednak program wykrywa 6,2 V. Nie wpływa to jednak na pracę całego układu. Schemat i płytka zawierają już dzielnik napięcia toteż napięcie powinno być już poprawnie wykrywane, przekreślenie dotyczy starej wersji schematu i płytki.

Działanie sprawdziłem pod Linuksem przy pomocy programu avarice oraz avr-insight - bez problemu udało się zaprogramować i obserwować działanie testowego układu z procesorem ATMega16.

Złożony interfejs JTAG AVR (obrazek przedstawia starszą wersję bez dzielnika napięcia)

Linki i pliki do pobrania

Komentarze

Proszę pamiętać że, po czasie, mogę usunąć niektóre komentarze jeśli nie wnoszą one niczego nowego.

Dyskusja

yairobe, 2009-08-16 21:03

Witam, na początku muszę pochwalić za opracowanie, 1 klasa :)! Mam problem polegający na tym, że działa wszystko oprócz odcztytu (mogę programować, zmieniać fusy, częściowo debuggować) - brak mi już pomysłów w czym tkwi problem. Sprawdziłem różne bootloadery, procesor też oprócz M16 M32 (hex oczywiście odpowiednio przekompilowany).

francus, 2009-11-22 22:51

Witam Zrobiłem ten układ i działa mi bez problemu z AVRStudio4.17. Zamiast zastosowanego układu rs232 zastosowałem gotową przejścióke rs232-USB (model zl1usb kupiony w kamami). Układ zaprogramowałem stosując starą metodę, gdyż z nową niewiadomo czemu nie chciało mi działać. PS. wielkie dzięki dla autora za opracowanie:)

yairobe, 2009-08-17 16:52

Problem rozwiązany - coś nie pasuje mu przejściówka ttl-usb(emulator rs232), na maxie śmiga :).

Łukasz Góralczyk, 2009-08-17 19:13

Z tego co mi wiadomo to układ na 100% działa poprawnie więc najpierw trzeba poszukiwać błędów gdzieś indziej (błędy na płytce, złe, uszkodzone elementy bierne, coś nie tak z systemem operacyjnym, zła komunikacja z komputerem).

yairobe, 2009-08-17 19:21

Tak układ działa, ja zrobiłem do tego własną płytkę bez max232 ale z innym konwerterem i właśnie z nim był problem, teraz wszystko śmiga. To było strasznie dziwne bo zapis działał w 100%, a odczyt częściowo (np. fusy).

Sotej, 2009-11-03 20:16

A ja mam taki problem: jak wysyłam znak 'S' z terminala to bootloader odpowiada '[16][16][10]' zamiast 'AVRBOOT' i na znak 'V' odpowiada `` zamiast 'V07'. Czy ma ktoś pomysł co może być nie tak?

Łukasz Góralczyk, 2009-11-08 12:24

Sprawdź następujące rzeczy: prędkość przesyłu w programie terminala (19200 8N1), czy nie używasz za długiego kabla, czy jumper JP1 jest w pozycji 1-2, czy procesor na pewno ma wlutowany odpowiedni kwarc (7,3728 MHz), czy kondensatory w MAX232 są odpowiedniej wartości i czy nie są uszkodzone. Jeśli nadal nie działa to musisz kolejno sprawdzać elementy które uczestniczą w komunikacji: czy używany port w komputerze rzeczywiście działa dobrze, czy kabel na pewno jest dobry, czy MAX232 nie jest uszkodzony, itd. - prześledź sygnał. Jak składałem jeden układ to miałem dość dziwne problemy z kablem (za długi + ew. jakość sygnału z przejściówki USB-RS232 mogła być kiepska).

Jacek, 2009-11-11 23:25

Witam Mam problem z rozpakowaniem pliku avrboot.zip avr_jtag_m16.zip być może przez to układ mi nie działa czy można prosić o wżucenie plików w innemiejsce.

yairobe, 2009-11-11 23:28

Winrarem bez problemu się rozpakowuje.

Jacek, 2009-11-11 23:29

Dodatkowo jak powinien wyglądać kabelek do wersji płytka drukowana, płytka drukowana (opis) prosty kabel zerowy RS232 bez potwierdzenia zgodny z opracowaniem elektroniki praktycznej dostępnym w sieci.

Łukasz Góralczyk, 2009-11-17 21:28

Użyj kabla 1:1, do artykułu dodałem mały diagram który powinien Ci pomóc zrozumieć dlaczego. Sygnały są krosowane na płytce (patrz schemat), więc nie wymagany jest krosowany kabel. Kabel ze skrzyżowanymi liniami RXD i TXD używany jest m.in. do łączenia między dwoma komputerami, inaczej komputer A wysyłałby (TXD) do linii TXD drugiego komputera, podobnie z RXD.

Co do programu rozpakowywującego, polecam 7zip, jest za darmo i dobrze integruje się z Explorerem.

Sotej, 2009-11-12 20:15

Zadziałało. Nie chciała działać z przejściówką USB-RS232 podłączoną bezpośrednio do procesora jak w powyższym linku z Elektrody(próbowałem dwie różne przejściówki). Gdy dodałem MAXa między procesor a przejściówkę wszystko ruszyło ;-)

yairobe, 2009-11-12 20:30

Jak podłączyłeś USB-RS232 bezpośrednio do proca to nie ma się co dziwić, tam są całkiem inne napięcia niż ttl (zero to bodajże -12V , jedynka + 12V)

Sotej, 2009-11-13 08:37

Ale zobacz to: http://www.elektroda.pl/rtvforum/viewtopic.php?t=1463084 . Autor podłączył konwerter bezpośrednio do proca i mu działa. Myślę, że zależy to od konwertera jakie napięcia sterujące akceptuje. Niektóre będą działać bez Maxa, inne potrzebują napięć jak w prawdziwym COMie.

Łukasz Góralczyk, 2009-11-17 21:31

Istotnie. Podejrzewam że dlatego trzeba użyć przejściówki USB dla telefonu, telefony zwykle mają poziom TTL.

Jacek, 2009-11-13 21:06

Walcze z tym układem już jakiś czas i mam parę pytan: - czy można używać tylko RS232 do tego rozwiązania płytkę wykonałem z pliku płytka drukowana, wgrałem plik avrboot.zip uzywam kabelka rs232 null modem i otrzymuje śmieci po wysłaniu S i V, - do sprawdzenia poprawnosci transmisji wgrałem program który wysyła na rsa znak który wcześniej odebrał, takie echo i działa on bez problemu na tej płytce, - prubowałem metody szybkiej i również AVR studio zgodne z opisem AvrStudio 4.17 build 666 nie widziało układu dodam, że ciagle używam kabelka RS232 null modem. Proszę o pomoc.

Łukasz Góralczyk, 2009-11-17 21:55

Spróbuj z kablem 1:1 i sprawdź czy aby na pewno masz dobrze ustawione wszystkie parametry transmisji (prędkość, bity stopy, itd.). Jeśli program 'echo' działa to wypróbuj go z różnymi prędkościami (o ile jest to możliwe), być może dla wyższych prędkości coś jest nie tak (za długi kabel). Zastanawiające jest dlaczego program 'echo' działa na kablu null-modem. W wolnej chwili jeszcze pomyślę nad tym, ale nic innego poza procedurą którą opisałem wcześniej raczej nie wymyślę.

Arek Halicki, 2010-08-25 22:15

Witam. Kiedyś też miałem podobny problem (tyle, że z mikroklockiem innej firmy). Echo działało, gdy jednak chciałem wysyłać czy odbierać były śmieci. Okazało się, że problem leżał w błędzie w pisaniu programu. Szczególnie jeśli używasz przerwań w procesie odbioru. Wg. mnie najprawdopodobniej procedura odbierania jest niedobra.

drapsh, 2009-11-14 23:55

Czy układ działa pod windowsem 7??

Łukasz Góralczyk, 2009-11-17 21:47

Praktycznie nie sprawdzałem. Układ będzie działać jeśli AvrStudio uruchomi się poprawnie, w pomocy do AvrStudio jest napisane że będzie działać na Viście, jeśli na Viście to i na Win7. Znając życie problemy mogą być z wersją 64 bity.

francusm, 2009-11-22 22:55

Witam Zrobiłem ten układ i działa mi bez problemu z AVRStudio4.17. Zamiast zastosowanego układu rs232 zastosowałem gotową przejścióke rs232-USB (model zl1usb kupiony w kamami). Układ zaprogramowałem stosując starą metodę, gdyż z nową niewiadomo czemu nie chciało mi działać. PS. wielkie dzięki dla autora za opracowanie:)

justinas, 2010-02-07 14:45

hi, why pins 15,16 of max232 are not connected?

yairobe, 2010-02-07 16:11

They are connected by Eagle to 5V and GND (take a look at pcb).

kali, 2010-03-07 10:39

Witam.Mozecie pomoc nie moge uruchomic jtaga na linuxie (ubuntu 9.10).Wogule sie nie laczy tak jakby nie dzialal.W windowsie wszystko hulalo ale polubilem linuxa i chcialbym na nim pracowac.

Łukasz Góralczyk, 2010-04-04 16:30

Jesli nie masz sporego doswiadczenia w Linuxie to radzilbym Ci nadal pracowac w Windowsie chociazby przez wirtualna maszyne z mozliwoscia mapowania portow (RS232 czy USB), np. VirtualBox. W skrocie potrzebne sa: avarice, avr-gdb, graficzna nakladka na gdb (ddd, insight, eclipse /). Nalezy uruchomic avarice jako serwer i potem uzywajac graficznej nakladki polaczyc sie z avarice. Na szybko nie bylem w stanie znalezc dobrego poradnika (jak znajde checi i czas to napisze cos takiego). Odpowiedz moglem napisac dopiero teraz, jestem obecnie poza Polska.

Jarosław Mickiewicz, 2010-04-20 11:23

Potrzebuję info - czy użyty układ MAX232A, można zastąpić układem MAX232N? Różnica w cenie nie mała, czym się w takim razie te układy różnią?

Jarosław Mickiewicz, 2010-04-20 12:16

Wyczytałem z not katalogowych, że układ pinów mają identyczny, różnią się wymaganymi kondensatorami (MAX232A, ma wszystkie 0,1uF; MAX232N ma po 1uF). Pytanie tylko, czy mogę zastąpić tego MAX232A układem MAX232N i czy to będzie działać poprawnie?

Łukasz Góralczyk, 2010-04-26 10:52

Można zastąpić MAX232A wersją „N”, kondensatory muszą mieć wtedy 1 uF. Jedna z dokumentacji (Maxim) mówi że wersja „N” (lub bez oznaczenia) jest wolniejsza.

Zdenerwowany, 2010-05-23 22:05

Witam mam problem z tym JTAGiem. Jest to bardzo dziwny problem otoz moge przez JTAGa wgrac program do atmegi32 zmienic fuse bity itp czyli wszystko co dostepne ale nie moge debugowac!!!!Nie moge sie polaczyc z prockiem kiedy wciskam START DEBUGGING.Dziwna sprawa juz nie mam sily co robic,niepotrzebny mi kolejny programator tylko debuger.Zaprogramowane bity w atm32 OCD i JTAGEN.

Łukasz Góralczyk, 2010-05-26 01:53

Jeżeli jesteś w stanie programować procesor przez JTAG to winą obarczałbym konfigurację Twojego układu. Czy AVRStudio podaje jakiś komunikat o błędzie podczas próby debugowania? Jesteś pewien że odpowiednie bity są zaprogramowane (=0)? Sprawdź czy linia reset nie jest w stanie 0, sprawdź czy nie masz zaprogramowanych któryś bitów lock bit (nie wiem czy to może mieć wpływ).

Marcin, 2010-12-18 11:20

link z pcb w formacie pdf nie działa

Łukasz Góralczyk, 2011-02-15 19:46

Możesz skopiować i przekleić link który nie działa? Sprawdziłem i wszystkie PDFy działają.

pablo, 2011-03-28 11:36

witam, 1) czy interfejs współpracuje z nowymi ATmegami, tj. 16A, 32A, itp.? 2) czy zamiast ATmega 16-P można zastosować ATmega 16A?

Łukasz Góralczyk, 2012-01-09 18:19

Przepraszam, bardzo dawno nie zaglądałem na własną stronę. Co do 1 i 2 nie próbowałem ale myślę że będzie działać. Jeśli przeprowadzisz jakieś próby podziel się czy rzeczywiście tak jest.

Jakub, 2012-03-11 15:49

Po co jest rezystor R5 ?

Łukasz Góralczyk, 2012-03-12 17:55

W oryginalnym schemacie linia PD3 jest podłączona do sygnału TGP-ON, podejrzewam że jest to wskaźnik że zasilanie w układzie docelowym jest obecne (aktywne 0) - Target Power On.

krzysztof babiarz, 2012-04-15 21:13

Witam,

U mnie sytuacja podobna, jak u kolegi Zdenerwowanego. To znaczy mogę programować, ale nie mogę debugować, wypisuje że nie może połączyć się z debuggerem po kliknięciu start debugging.

Czy może ktoś podać ustawienia Fuse Bitów w AvrStudio4, albo heksadecymalnie, bo ten zrzut z pony proga jest ok, ale nie jest „uniwersalny”.

pozdrawiam

krzysztof babiarz, 2012-04-15 21:29

Przepraszam, z roztargnienia zapomniałem o opisie poniżej zrzutu z pony proga (uwaga dotycząca uniwersalności była niesłuszna). Niemniej jednak, gdyby ktoś podał ustawienia fuse bitów w AvrStudio4 nie byłoby żle…

krzysztof babiarz, 2012-04-16 20:21

To chyba mam odpowiedź, otóż wyżej opisany błąd występuje w momencie, gdy podczas próby rozpoczęcia debugowania mamy otwarte okno Connect to the Selected AVR Programmer (wtedy jest aktywna ikonka Write Flash Memory Using Current Settings). W tej stytuacji wyskakuje błąd. Trzeba zamknąć to okno, tak ,że ikonka Write Flash Memory Using Current Settings nie będzie aktywna i wtedy można debugować. Może to jest oczywiste, ale nie wiedziałem o tym. To są moje spostrzeżenia na ten temat, mam nadzieję, że słuszne.

Łukasz Góralczyk, 2012-04-16 20:42

Hej, fajnie że sobie poradziłeś i zamieściłeś opis - dzięki.

Buśka, 2012-12-05 14:07

Jakie procesory można debagować i programować przy pomocy tego JTAG'a?

Łukasz Góralczyk, 2012-12-09 22:19

Z tego co wiem to te: AT90CAN128 ATmega128 ATmega16 ATmega162 ATmega169 ATmega32 ATmega323 ATmega64 Jeśli masz trochę pieniędzy to polecam zainwestować w AVR Dragon (ja kupowałem za ok. 200 zł). Są pewne ograniczenia w jego użyciu, ale praktycznie, w amatorskich zastosowaniach, rzadko kiedy się je osiąga.

pal, 2013-03-08 14:47

działa dla xmega? próbował ktoś?

Lukasz Goralczyk, 2013-03-08 18:08

Nie będzie działać, ten JTAG obsługuje tylko stare procesory. Polecam zainwestować w AVR Dragon, cena w okolicy 250 PLN, chyba w farnell.com jest najtaniej (sprawdź ile przesyłka). W ogóle to polecam procesory ARM Cortex, STM albo NXP :) , płytki prototypowe posiadają wbudowanego JTAGa.

Grzegorz Nowicki, 2013-03-16 15:35

Czy jest możliwość zbudowania tego na kwarcu 16Mhz

Łukasz Góralczyk, 2013-03-16 15:38

Musi być taki jak na schemacie - inaczej rozjadą się zależności czasowe (chodzi głównie o port szeregowy).

Karol G, 2013-11-12 20:33

tam chyba ma być max3232 zamiast max2323

Łukasz Góralczyk, 2013-11-12 20:38

Rzeczywiście, poprawiłem. Wydaje mi się, że kostka, którą miałem, nieoryginalna Maxima miała oznaczenie 2323, stąd błąd.

Piotrek, 2015-12-16 21:38

Dzięki, uratowałeś mojego ICE tym wsadem. Dzięki też za schemat.

Łukasz Góralczyk, 2016-01-01 23:30

Projekt stary, ale dobrze, że jeszcze komuś się przydaje.

online, 2017-05-22 15:20

RSS http://arealpaydayloan.com/ , puns feeds cialis pills for sale and intrusive sucidial thoughts.

viagra, 2017-10-02 12:41

Pero http://canadianviagrats.com/ , king jailed for three years Mairena del Aljarafe.

viagra, 2017-11-02 11:31

I need a prescription for http://viagraomz.com/ , in .

Wpisz swój komentarz. Można stosować składnię wiki:
C​ H A F O
 
elektronika/avrjtag.txt · ostatnio zmienione: 2014-02-27 02:02 (edycja zewnętrzna)