Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

DV164045- szybkie i ekonomiczne narzędzie do programowania w obwodzie i debugowania mikrokontrolerów PIC i cyfrowych kontrolerów sygnału dsPIC firmy Microchip. Wysoką prędkość działania zapewnia zastosowanie 32-bitowego MCU 300 MHz z 2 MB RAM i szybkiego układu FPGA w produkcie, co zapewnia szybszą komunikację, pobieranie i debugowanie w porównaniu do poprzednich wersji urządzenia. Debugowanie i programowanie odbywa się za pomocą wydajnego, ale łatwego w użyciu interfejsu graficznego MPLAB X IDE. MPLAB ICD4 łączy się z komputerem PC poprzez interfejs USB 2.0 HS oraz z nagłówkiem debugowania płyty docelowej, który jest również kompatybilny z MPLAB ICD3 i. Emulatory obwodowe MPLAB REAL ICE™. Dodatkowo MPLAB ICD4 może współpracować z interfejsem JTAG.

Programator/debugger MPLAB 4 obsługuje obecnie wiele, ale nie wszystkie, PIC i dsPIC. Oprogramowanie sprzętowe jest stale aktualizowane w celu poszerzenia listy obsługiwanych mikrokontrolerów. Adres do żądania wsparcia w zakresie chipów priorytetowych lub zgłaszania problemów: [e-mail chroniony].

Jeśli masz zainstalowane MPLAB X IDE, listę obsługiwanych układów znajdziesz w folderze „docs” w katalogu instalacyjnym. Nazwa pliku to „Device Support.htm”. Ponadto listę można pobrać ze strony http://www.microchip.com/mlabx-ide-release-notes.

Ryż. Programator/debugger w obwodzie DV164045

Cechy charakterystyczne:

  • Emulacja w czasie rzeczywistym z pełną szybkością:
    • Zaprojektowany do obsługi szybkich procesorów pracujących z maksymalnymi prędkościami
    • Debuguj aplikacje na swojej tablicy w czasie rzeczywistym
  • Niezawodny interfejs:
    • Dodano ochronę obwodów dla sterowników debugera, aby chronić je przed skokami napięcia na płycie docelowej
    • Monitoruj VDD i VPP pod kątem ochrony przed przepięciami. Wszystkie linie są zabezpieczone przed przetężeniem
    • Bezpieczne zasilanie do 1 A z dodatkowym zasilaczem
  • Standardowa łączność Microchip Plus JTAG:
    • W zestawie standardowy nagłówek debugowania Microchip. Możliwe jest użycie JTAG-a
  • Zgodność:
    • Obsługuje wszystkie złącza MPLAB ICD 3
  • Przenośne urządzenie zasilane przez USB; Zgodność z dyrektywą RoHS:
    • Płytka jest umieszczona w wytrzymałej czarnej obudowie z matową aluminiową osłoną i linią diod LED wskazujących stan debugowania.
    • Zasilany przez port USB, nie wymaga zewnętrznego zasilania
    • Zgodność z CE i RoHS
  • Szeroki zakres napięć emulacji:
    • Obsługuje napięcia docelowe od 20 V do 5,5 V
  • Programowanie z dużą szybkością:
    • Szybkie ponowne uruchomienie oprogramowania sprzętowego w celu szybkiego debugowania/przeprogramowania w obwodzie
    • Zawiera programowalne ustawienie prędkości debugowania w celu optymalizacji programowania
  • Moduł interfejsu testowego:
    • Zawiera moduł sprzężenia zwrotnego do testowania portu debugowania i kabla
  • Łatwe w utrzymaniu i aktualizacji funkcje:
    • Dodaj obsługę nowych układów i funkcji, instalując najnowszą wersję MPLAB X IDE, którą można pobrać bezpłatnie pod adresem www.microchip.com/mplabx
    • Aktualizacja oprogramowania sprzętowego poprzez MPLAB X IDE
  • Efektywność ekonomiczna:
    • Funkcje i wydajność porównywalne z porównywalnymi systemami emulacji
  • Potężne debugowanie:
    • Wydajne debugowanie za pomocą MPLAB X IDE
    • Obsługuje wiele punktów przerwania, stoper i debugowanie kodu źródłowego
    • Możliwość wyboru pull-upu dla docelowego interfejsu w edytorze MPLAB X IDE w celu szybkiej modyfikacji/debugowania oprogramowania
  • Wymagania systemowe:
    • MPLAB X IDE wer. 4,00 lub więcej
    • Dostępny port USB
    • Microsoft Windows® 7 lub nowszy, Mac OSX® i Linux®

Czasami program zaprogramowany w mikrokontrolerze wcale nie działa tak, jak tego oczekiwał jego twórca. Następnie następuje etap debugowania (Debugowanie - pozbycie się badziewia programu :-) ok. autor) Ktoś używa USART do debugowania, ktoś podłącza microLED do swojej wolnej nogi, ktoś zapisuje dane debugowania do EEPROM itp. Jednym słowem opcji jest tu mnóstwo. Jednak moim zdaniem najwygodniejszym sposobem debugowania jest debugowanie za pomocą specjalnych urządzeń zwanych debugerami. Debuger umożliwi wykonanie programu zaprogramowanego w mikrokontrolerze linia po linii i ustawienie punktów przerwania. Podczas procesu debugowania programista ma dostęp do wszystkich rejestrów mikrokontrolera. Można go także użyć do flashowania mikrokontrolera i wymiany bezpieczników.
Zwracam uwagę Debuger JTAG ICE:

Zhitag to dobra rzecz. Ale jest jedna mała wada. Wszystkie kontrolery obsługujące debugowanie za pomocą jtag to kontrolery począwszy od Atmega16 i starszych. Dla niektórych mikrokontrolerów z rodziny tiny dostępny jest interfejs debugujący Debug Wire, jednak wygląda na to, że nikt samodzielnie nie stworzył takiego debuggera. Obwód debugera składa się z dwóch części:

  1. Schemat koordynacji z komputerem PC
  2. Sam debuger

Przy wyborze pierwszej części układu wszystko zależy od tego czy dysponujemy wolnymi portami COM czy USB. Ponieważ mam tylko jeden port COM i znajduje się on daleko pod stołem, zdecydowałem się użyć portu USB za pomocą mojego . Dla chcących skorzystać z portu COM narysowałem też schemat. Jako konwerter poziomu zastosowano popularny układ MAX232. Główną wadą korzystania z portu COM jest brak zasilania. W mojej wersji pobieram 5 woltów bezpośrednio z portu USB, co jest bardzo wygodne, ponieważ nie ma w pobliżu niepotrzebnych przewodów. Sygnet jest umieszczony tylko w drugiej części diagramu, ponieważ Konwerter USB-Uart miałem już na stanie i po prostu połączyłem obie płytki za pomocą okablowania. Zastosowana obudowa to G1068B.

Teraz kilka niuansów technicznych. Bezpieczniki mikrokontrolera należy ustawić w następujący sposób:

Ogólnie rzecz biorąc, teoretycznie debugger powinien zostać zaktualizowany ze studia, ale nie zawracałem sobie tym głowy i nie zaktualizowałem bootloadera. Samo oprogramowanie sprzętowe można pobrać z folderu Atmel\AVR Tools\JTAGICE\Upgrade.ebn

Ale to oprogramowanie jest w sprytnym formacie EBN i potrzebujemy HEX do oprogramowania. Program EbnToHex może pomóc w konwersji oprogramowania sprzętowego do wymaganego formatu. Możesz też wziąć gotowy HEX na końcu strony.

Schemat debugera znajduje się poniżej:


Jeśli planujesz korzystać z interfejsu USB, musisz wykluczyć ze schematu wszystkie elementy znajdujące się wewnątrz prostokąta. Oraz przylutuj piny TxD i RxD mikrokontrolera do interfejsu USB-UART (kontroler TxD do konwertera RxD i kontroler RxD do konwertera TxD). Nie zapomnij także połączyć ziemi i jedzenia. Czekam na Wasze opinie i pytania w komentarzach.

Jednym z najpotężniejszych narzędzi debugujących w środowisku mikrokontrolera jest JTAG - debuger w obwodzie.

Rzecz w tym, że poprzez adapter JTAG mikrokontroler łączy się bezpośrednio ze środowiskiem programowania i debugowania, np. Studio AVR. Po czym mikrokontroler jest całkowicie podporządkowany studiu i nie może zrobić kolejnego kroku bez jego zgody. Dostępne staje się wykonywanie kodu krok po kroku, przeglądanie/zmiana wszystkich rejestrów, praca ze wszystkimi urządzeniami peryferyjnymi, a wszystko to w prawdziwym mikrokontrolerze, a nie w emulacji oprogramowania. Możesz ustawić punkty przerwania dla różnych zdarzeń - dla ICE1 są trzy. Generalnie to bajka, a nie narzędzie.

Niestety w mikrokontrolerach AVR JTAG nie jest dostępny wszędzie; z reguły kontrolery mające mniej niż 40 nóżek i pojemność pamięci mniejszą niż 16 KB są pozbawione takiej przyjemności (choć często jest tam dostępny debugWire, ale nikt jeszcze tego nie zrobił). udało się zrobić jego adapter na kolanie, a autorskie JTAG ICEII czy AVRDragon kosztują całkiem spore pieniądze). A ponieważ używam głównie Tiny2313, Mega8, Mega8535 i innych drobiazgów, JTAG jest jak piąta noga psa - nie jest obsługiwany w tych MK.

Jednakże na skutek licznych próśb zbudowałem to urządzenie i teraz pokażę Wam jak z niego korzystać.
Nie ja wymyśliłem rower, wziąłem znany projekt ze strony scienceprog.com

Nie zawracałem sobie jednak głowy rozdzielaniem płytki i pod FT232RL istota jest ta sama.


Teraz musimy sflashować kontroler. Ogólnie rzecz biorąc, według nauki, jest on najpierw szyty program ładujący, następnie od Studio AVR trwa aktualizacja oprogramowania sprzętowego JTAG LÓD do najnowszej wersji. Znalazłem jednak prostszy sposób; na stronie pol-sem.narod.ru znalazłem gotowy plik HEX, który wystarczy wgrać do MK i to wszystko.

Dlatego do naszego adaptera dołączamy programator, ponieważ potrzebne są wszystkie piny ( MISO, MOSI, GND, RST, SCK, Vcc) Jest. I fakt, że nie są one w wymaganej standardowej kolejności Dostawca usług AVR złącze, to nie problem - chwilowo wypatroszyłem blok mojego programatora i włożyłem poszczególne piny tak, jak należy. Jest to jednorazowa procedura, więc nie martw się również o instalację złącza ISP.

Przesyłanie oprogramowania sprzętowego.
Ustaw bity Fuse.

Tutaj trzeba zachować ostrożność, ponieważ istnieje kilka oznaczeń FUSE - bezpośrednich (zgodnie z arkuszem danych, gdzie 0 = ON, 1 = OFF) i odwrotnych (1 = ON, 0 = OFF). UNIPROF pracuje w notacji bezpośredniej, PonyProg i USBASP _AVRDUDE_PROG pracują w notacji odwrotnej.
Bardzo łatwo jest określić, w jakiej notacji pracuje programista. Wszystko, co musisz zrobić, to połączyć się ze swoim MK i nacisnąć przycisk czytanie Połącz bity i spójrz na bity SPIEN jeśli kawka koszty- notacja odwrotność. Ponieważ domyślnie SPIEN jest zawsze włączony (bez tego nie da się sflashować MK przez obwód ISP).

Bezpiecznik miga w następujący sposób:


FragmentZapis bezpośredni (UniProf, arkusz danych)Notacja odwrotna (PonyProg, GUI AVR DUDE)
OKDEN [w]
JTAGEN [w]
SPIEN [w]
KOPT[w]
EESAVE[w]
BOOTSZ1 [w]
BOOTSZ0 [w]
BOOTRST[w]
BODLEVEL[w]
BODEN[w]
SUT1 [w]
SUT0 [w]
CKSEL3[w]
CKSEL2[w]
CKSEL1[w]
CKSEL0[w]

Jeśli flashujesz goły bootloader, musisz włączyć bit BOOTRST i połączyć się przez studio, aby zaktualizować oprogramowanie JTAG, przesyłając plik upgrade.ebn przez AVRProg (znajduje się on gdzieś w katalogu AVR Studio). Po flashowaniu oprogramowania układowego wyłącz BOOTRST.

To wszystko, urządzenie jest gotowe do użycia. Teraz pozostaje tylko przetestować go w działaniu.

Współpracuje z JTAG AVR ICE
Nie będę się za bardzo przejmował, więc pokażę Wam na prostym przykładzie mrugania diody LED.
Uruchamiamy studio, tworzymy nowy projekt.
Wybieramy język programowania, niech będzie to Asembler.
Ustaw nazwę projektu.

Dołącz „m16def.inc”; Używamy ATMega16 LDI R16.0xFF; Port A do wyjścia.

WYJŚCIE DDRA,R16 Główne: SEI ; Włącz przerwania. SBI PORTA,0 ; dioda 0 SBI PORTA,1 świeci; dioda 1 SBI PORTA,2 świeci; dioda 2 NOP CBI PORTA,0 świeci; zgaszona dioda 0 CBI PORTA,1; Dioda 1 CBI PORTA,2 zgasła; Dioda 2 NOP RJMP Główna wyłączona; Utknąłem?

To takie proste. Jeśli go skompilujesz, sflashujesz i uruchomisz, diody będą migać z szaloną częstotliwością, ponieważ nie ma żadnych opóźnień. I co będzie się działo od spodu JTAG Zabieram moją nowo wykonaną płytkę debugowania do
Mega16 SBI PORTA,0 ; dioda 0 SBI PORTA,1 świeci; dioda 1 SBI PORTA,2 świeci; dioda 2 NOP CBI PORTA,0 świeci; zgaszona dioda 0 CBI PORTA,1; Dioda 1 CBI PORTA,2 zgasła; Dioda 2 NOP RJMP Główna wyłączona; Utknąłem, podłączam trzy diody LED do portu A. Podłączenie do tablicy adapter - cztery przewody interfejsu ( SBI PORTA,0 ; dioda 0 SBI PORTA,1 świeci; dioda 1 SBI PORTA,2 świeci; dioda 2 NOP CBI PORTA,0 świeci; zgaszona dioda 0 CBI PORTA,1; Dioda 1 CBI PORTA,2 zgasła; Dioda 2 NOP RJMP Główna wyłączona; Utknąłem TDO, TDI, TMS, TCK

) i dwa zasilania Vcc do plusa i GND do masy -

Adapter jest zasilany z płyty docelowej i wszystko jest gotowe do pracy.

Możesz śledzić! Klikam F11 – program wykonuje jedno polecenie na raz, pokazując strzałką, gdzie w tej chwili się znajduję. Po każdym wykonaniu polecenia SBI zapala się odpowiednia dioda na mojej płytce. Cholernie fajne! Zupełnie jak coś innego, tylko bez usterek i wszystko żyje! Przebiegłem dalej tekst - po CBI diody zgodnie z oczekiwaniami zgasły. Oto jak to wygląda w prawdziwym życiu:

YYY!!! PWM!!! Zatrzymuję program, zmieniam bity w OCR2 i uruchamiam go ponownie - zmienił się cykl pracy. Hej. Sterowanie ręczne :)
JTAG LÓD Tak więc dzięki JTAG, jeśli chcesz szybko uzyskać jakieś badziewie jak generator, nie musisz nawet pisać programu - po prostu weź go i ręcznie włącz to, czego potrzebujesz. Bogaty w urządzenia peryferyjne AVR :) Oprogramowanie układowe mikrokontrolera poprzez JTAG może być również używany do flashowania oprogramowania sprzętowego mikrokontrolera i ustawiania bitów FUSE. Aby to zrobić, musisz biegać

PROG AVR

(Narzędzia - Program AVR - Połącz...) i tam wybieramy JTAG ICE i port COM, chociaż zazwyczaj jest to kanał Auto.

W ten sposób embeddery są uszkodzone. Najpierw uzależniają się od JTAG, potem dla samego JTAG-a przechodzą na mocniejszy kryształ, gdzie wystarczy Tiny, a potem C, C++, potem jakiś .NET na maszynie wirtualnej... A teraz system operacyjny ważący kilka gigabajtów i wymagający gigabajtów pamięci RAM nie wywołuje u nikogo szoku ani przerażenia. Ale to jest straszne, panowie! Postęp, skurwielu. Nie dajcie się zepsuć dobrodziejstwom cywilizacji, bądźcie ascetyczni i rozsądni. I nie zapomnij o optymalizacji zarówno oprogramowania, jak i sprzętu.

Istnieje sporo konfiguracji różnych programistów, które pozwalają przepisać rozwój oprogramowania na mikrokontroler. Mogą być różne, przeznaczone dla profesjonalistów lub odwrotnie, mieć uproszczony interfejs. Bohater tego artykułu również należy do tych ostatnich programistów. Dowiesz się nie tylko, co to jest, ale także jak własnoręcznie zrobić programator JTAG. Znajdziesz diagramy i zdjęcia pokazujące, jak powinien wyglądać wynik.

Kim jest programista JTAG?

Jest to uproszczona wersja profesjonalnego AVR JTAG ICE, który jak można się domyślić z nazwy, przeznaczony jest do programowania mikrokontrolerów z rodziny AVR. Główną różnicą jest to, że zmontuje go nawet nieprofesjonalista, a ostateczny koszt będzie wielokrotnie niższy niż przy zakupie fabrycznego. Tak naprawdę mechanizm przedstawiony w artykule jest repliką chińską, więc ten programator AVR też można kupić. Dlatego śmiało możemy powiedzieć, że istnieje również opcja zakupu. Ale montaż „zrób to sam” pozwoli uniknąć ewentualnych negatywnych konsekwencji ze względu na taniość i niską jakość zakupionych części podczas produkcji.

Dlaczego warto wybrać programistę JTAG?

Najważniejsze jest jego niski koszt i łatwość montażu. Programator JTAG może programować wszystkie urządzenia posiadające interfejs JTAG. Do pracy za pośrednictwem komputera wymagane jest środowisko programistyczne AVR Studio w wersji 4 lub wyższej. Ten programista AVR będzie mógł z nimi pracować.

Wady programisty

Najnowsze wersje rodzin mikrokontrolerów nie dają się programować bez dodatkowej pracy. Poważne problemy są również z tymi przedstawicielami, którzy mają mniej niż 40 nóg i 16 KB pamięci. Jak widać krąg potencjalnych klientów jest dość ograniczony. Ale podlega temu kilka popularnych modeli, więc się przyda.

Schemat

Obwód programatora jest prosty; do działania wymaga ATMega16 i dodatkowej elektroniki. Jako interfejs można wykorzystać MAX232 (do pracy z COM) i FT232RL (do pracy z USB). Warto wspomnieć, że w przypadku korzystania z drugiej opcji nie zaleca się podłączania zasilania przez USB. W takich przypadkach na skutek błędu lub przeoczenia na diodach ochronnych może pojawić się napięcie, a na zaciskach FT232RL pojawi się napięcie, co może doprowadzić do awarii programatora lub obiektu programującego. Ten niuans rozwiązuje się poprzez zasilanie przez płytkę.

Aby ułatwić pracę osobom niewykwalifikowanych, programator jest przeznaczony dla MAX232, ale druga opcja wymaga jedynie zainstalowania innego złącza.

Ustawienia

Biorąc pod uwagę, że istnieją niezbędne obwody, wystarczy wytrawić płytkę. Następnie wszystko jest starannie podłączane, lutowane na miejscu, a działanie programatora sprawdzane jest poprzez flashowanie bootloadera. Następnie należy zaktualizować oprogramowanie programatora JTAG z AVR Studio do najnowszej wersji lub tak długo, jak to konieczne. Programator jest podłączony do adaptera. Jeśli to zadziała, możesz przejść do następnej sekcji, która opisuje niuanse obsługi i programowania. Należy pamiętać, że wszystkie niezbędne przewody są tam, są one po prostu umieszczone niestandardowo.

Aby przygotować się do pracy należy ustawić bity Fuse. Zależą one od zapisu, w jakim wykonywany jest utwór. Dla lepszego zrozumienia przedstawiamy poniższą tabelę:

Zapis bezpośredni (arkusz danych, UniProf)

Notacja odwrotna (GUI AVR DUDE, PonyProg)

Skąd wiesz, który wybrać? Odpowiedź na pytanie jest prosta: należy podłączyć się do mikrokontrolera i zacząć czytać te same bity. Zwróć uwagę na SPIEN - jeśli obok niego znajduje się znacznik wyboru, oznacza to, że zapis jest odwrotny. Jeśli go tam nie ma, oznacza to, że jest prosto. Jeśli wszystko zostało wykonane poprawnie, programista jest gotowy do flashowania mikrokontrolerów. Ale jeśli później nie będzie mógł stworzyć oprogramowania układowego, przeczytaj ponownie i sprawdź wszystko jeszcze raz.

Praca z programistą

Dla większej przejrzystości zostanie podany przykład programowania mrugania diody LED. Na początek należy uruchomić studio i stworzyć nowy projekt. Następnie wybierz język programowania (w tym przypadku asembler) i ustaw nazwę projektu. Program sam będzie w stanie określić, że używasz programatora JTAG. Należy wybrać ją jako platformę, a w okienku obok - zaprogramowany przez nią mikrokontroler. Następnie wszystko jest całkiem zwyczajne - wystarczy wprowadzić tekst do programu. Aby czytelnicy mogli sprawdzić jego funkcjonalność, sugerujemy przetestowanie programatora JTAG z kodem podanym w artykule. Widać, że diody zaczęły bardzo szybko mrugać, co nie jest zaskakujące, bo nie przewidziano tu opóźnienia. Jest więc programista i instrukcje dotyczące jego tworzenia i użytkowania. Wystarczy, że zrealizujesz lot swojej wyobraźni.

Trochę o praktyce. Aby to sprawdzić podłącz 3 diody LED do portu A. Następnie podłącza się go do płytki: cztery przewody interfejsu (TCK, TDI, TMS, TDO) i 2 przewody zasilania Vcc idą do plusa, a GND podłączamy do masy. To wszystko, jest jedzenie, możesz iść dalej. W studiu musisz skompilować kod i uruchomić go. Projekt szybko się skompiluje, zostanie natychmiast sflashowany i zacznie działać. Aby monitorować proces wykonywania, możesz nacisnąć klawisz F11 i wtedy możesz zobaczyć, w którym wierszu kodu aktualnie znajduje się program. Aby to zrobić, wystarczy przesunąć kursor do wiersza, który włącza diodę LED, a ona się zaświeci. Eksperymentów jest znacznie więcej. Pamiętaj, że żeby coś zrobić, trzeba pracować. Niech postęp będzie powolny, ale z biegiem czasu będziesz w stanie uzyskać dokładnie to, czego chcesz, najważniejsze jest, aby się nie poddawać i kontynuować eksperymenty z naciskiem na podstawy teoretyczne (bez tego nie ma mowy).

Podczas opracowywania i debugowania programów dla mikrokontrolerów pojawiają się pytania związane z programowaniem i debugowaniem programu w rzeczywistym obwodzie. Jeśli nie ma specjalnych problemów z programowaniem mikrokontrolerów AVR, ponieważ istnieje wiele obwodów do „wlewania” oprogramowania układowego do kryształu, jednym z najprostszych takich obwodów jest obwód zwany „pięcioma przewodami”, to nie ma tak bogatego wyboru podczas debugowania program.

Aby debugować program, można użyć tylko dwóch opcji - symulatora oprogramowania i programatora emulatora JTAG w obwodzie. Symulator oprogramowania z reguły nie może uwzględniać wszystkich cech operacyjnych obwodu, takich jak wpływy zewnętrzne, wspólna praca z innymi urządzeniami itp. Dzięki sprzętowym programatorom-debuggerom JTAG możliwe staje się krok po kroku debugowanie programu bezpośrednio w samym mikrokontrolerze zainstalowanym bezpośrednio w obwodzie, przeglądanie i zmiana wszystkich rejestrów mikrokontrolera, ustawianie punktów przerwania i oczywiście programowanie w obwodzie mikrokontrolera. Ale cena oryginału AVR JTAG ICE MkII produkowany przez firmę Atmel oscyluje wokół 300 euro i jego odpowiednik AVDRAGON produkowany masowo, kosztuje około 3000 rubli, co jest bardzo drogie dla osób, które tworzą urządzenia na mikrokontrolerach AVR „dla siebie”.
Ale na szczęście udało nam się stworzyć klon oryginału AVR JTAG ICE, który kosztuje znacznie mniej niż oryginał i pozwala na programowanie i debugowanie mikrokontrolerów AVR z interfejsem JTAG.

Rys 1. Schemat obwodu klona AVR JTAG ICE

Schemat obwodu elektrycznego pokazano na ryc. 1. Podstawą tego JTAG-a jest mikrokontroler DD3 AVR ATMega16. Układ DD2 MAX232 pełni funkcję konwertera interfejsu RS232 na poziomy TTL UART. Układ DD1 przeznaczony jest do ochrony obwodów wejściowych i wyjściowych mikrokontrolera DD3 oraz dopasowywania napięcia poziomów logicznych podczas korzystania z zewnętrznego zasilania.

Zasilanie JTAG może być pobierane z obwodów zasilania debugowanego urządzenia poprzez czwarty styk vTref XP3, ale może być również wykorzystywane zewnętrznie poprzez złącza XP1 i XP2. Napięcie zewnętrzne może mieścić się w zakresie od 7 do 15 V. W przypadku korzystania z zewnętrznego źródła zasilania, pin vTref złącza XP3 nie musi być podłączony.
Dioda HL2 sygnalizuje obecność zasilania, HL1 oznacza tryb pracy JTAG.

JTAG podłącza się do debugowanego mikrokontrolera za pomocą standardowego dziesięciopinowego złącza. Schemat połączeń, który pokazano na ryc. 2.


Rys 2. Schemat podłączenia AVR JTAG ICE do debugowanego urządzenia

Istnieje kilka opcji programów ładujących BootLoader dla oprogramowania układowego JTAG, ale moim zdaniem najbardziej udaną opcję wykonał Witalij Krotevich (Vit). Jego bootloader najdokładniej replikuje zastrzeżony program ładujący i umożliwia aktualizację oprogramowania sprzętowego JTAG bezpośrednio z AVRStudio bez ponownego uruchamiania JTAG i wchodzenia w tryb programowania poprzez BootStart. Jeśli nie planujesz aktualizacji oprogramowania układowego JTAG, nie możesz sflashować programu ładującego, a jedynie „flashować” oryginalne oprogramowanie z .

Aby „podłączyć” bootloader do JTAG, możesz użyć programatora AVReal, PonyProg, STK200, „pięć przewodów” lub dowolnego innego dostępnego i kompatybilnego z AVR ISP. Programator podłączony jest do złącza programistycznego ISP XP4. Plik oprogramowania sprzętowego JTAG_ICE.hex.

Przykład programowania bezpieczników pokazano na rysunku 3.


Rys. 3. Ustawienie bezpieczników dla AVR JTAG ICE

Przykład działania AVR JTAG ICE pokazano na rysunku 4. Jako przykład odczytano sygnaturę ATMega128


Rysunek 4. Odczyt sygnatury mikrokontrolera ATMega128 za pomocą AVR JTAG ICE


Rys. 5. Obraz górnej warstwy ścieżki PCB z naniesionymi elementami


Rys. 6. Obraz dolnej warstwy ścieżki PCB z nałożonymi elementami

Zdjęcia gotowego urządzenia:

P.S. Schemat obwodu i ślad płytki drukowanej opracował autor artykułu, bootloader użył Witalij Krotevich (alias Vit), oprogramowanie sprzętowe pochodziło z oryginalnego AVRStudio.

Podczas pisania tego artykułu korzystałem z następujących źródeł:
1 http://onembedding.bialix.com/files/jtag_vit/
2. Oficjalny podręcznik użytkownika AVR JTAG ICE JTAGuserguide.pdf

Poniżej możesz pobrać oprogramowanie sprzętowe i pliki PCB

Lista radioelementów

Oznaczenie Typ Określenie Ilość NotatkaSklepMój notatnik
DD1 Bufor IC, sterownik

CD74AC244

1 Do notatnika
DD2 Układ scalony interfejsu RS-232

MAX232

1 ST232BD Do notatnika
DD3 MK AVR 8-bitowy

ATmega16

1 ATmega16-16PI Do notatnika
DA1 regulator liniowy

LM78L05

1 Do notatnika
VD1, VD2 Dioda prostownicza

SM4007PL

2 Do notatnika
VD3 Dioda Zenera

BZX55C5V1

1 SMBJ5.0A Do notatnika
VD4, VD5 Dioda Schottky’ego

SM5819PL

2 Do notatnika
HL1, HL2 PROWADZONYKR-3216-22 Do notatnika
C1, C2, C4-C6, C9-C13, C16 Kondensator0,1 µF10 Do notatnika
C3 1 Do notatnika
C7 Kondensator elektrolityczny470 µF 10 V1 Tantal Do notatnika
C8 Kondensator1200 pF1 Do notatnika
C14, C15 Kondensator22 pF2 Do notatnika
R1 Rezystor

36 kiloomów

1 Do notatnika
R2 Rezystor

150 kiloomów

1 Do notatnika
R3-R6 Rezystor

10 kiloomów

4 Do notatnika
R4, R10 Rezystor

4,7 kOhm

2 Do notatnika
R9, R11-R15 Rezystor

200 omów

7 Do notatnika
R16 Rezystor


Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl+Enter
UDZIAŁ: