MikloBit ul. Cyprysowa 7/5 43-600 Jaworzno www.miklobit.com support@miklobit.com JTAG + ISP dla AVR rev. 1.1 2006.03.10
Spis treści 1.Wprowadzenie... 3 2.Interfejs JTAG... 4 2.1.Złącze interfejsu JTAG... 4 2.2.Uruchamianie programu przy użyciu... 5 2.3.Aktualizacja oprogramowania wewnętrznego JTAG... 8 3.Interfejs ISP... 9 3.1.Złącza interfejsu ISP... 9 3.2.Połączenie do pracy z interfejsem ISP... 10 3.3.Programowanie ISP przy użyciu... 10 3.4.Aktualizacja oprogramowania wewnętrznego ISP... 12 4.Prawa autorskie i gwarancje... 14 5.Kontakt... 14
3 Wprowadzenie 1. Wprowadzenie jest urządzeniem, które łączy w sobie funkcje debuggera/emulatora oraz programatora ISP. Służy do programowania i uruchamiania w układzie (on-chip) programów przy użyciu wszystkich 8-mio bitowych mikrokontrolerów AVR wyposażonych w interfejs JTAG lub ISP. Najważniejsze cechy debuggera-programatora Interfejs JTAG ( praca z protokołem AVR JTAG ICE ) Interfejs ISP ( praca z protokołem STK500 v2. ) Automatycznie rozpoznaje aktywny interfejs ( JTAG lub ISP ) Oprogramowanie dla Windows (Avr Studio) oraz Linux ( AvaRICE ) Połaczenie z komputerem PC przez RS-232 Emulacja wszystkich cyfrowych i analogowych funkcji mikrokontrolera Podglądanie stanu pamięci oraz rejestrów kontrolera Testowanie stanu wyprowadzeń zewnętrznych kontrolera Możliwość zakładania pułapek w pamięci programu jak również w pamięci danych Debugowanie na poziomie kodu żródłowego - obsługa asemblera oraz języków wysokiego poziomu Napięcie zasilania 2.7-5.5 V Zasilanie z układu docelowego lub z zewnętrznego zasilacza 3-5V ( poprzez adapter ) Aktualizacja oprogramowania JTAG z poziomu AvrStudio Aktualizacja oprogramowania ISP przy użyciu programu Uploader Obsługiwane mikrokontrolery - interfejs JTAG : ATmega16, Atmega162, ATmega169, ATmega32, ATmega323, ATmega64, ATmega128, AT90CAN128 Obsługiwane mikrokontrolery - interfejs ISP : ATmega16, ATmega169, ATmega32, ATmega323, ATmega64, ATmega128, AT90CAN128, AT90CAN64, AT90CAN32, AT90PWM2, AT90PWM3, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, Atmega103, Atmega161, Atmega162, ATmega165, ATmega168, ATmega2560, ATmega2561, ATmega325, ATmega3250, ATmega329, ATmega3290, ATmega406, ATmega48, Atmega640, Atmega644, ATmega645, ATmega649, ATmega6490, ATmega8, ATmega8515, Atmega8535, ATmega88, ATtiny11, ATtiny12, ATtiny13, Attiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny26, ATtiny28, Attiny45, AT86RF401, AT89S51, AT89S52, Zawartość zestawu Debugger-programator kabel taśmowy 1m do złącza JTAG/ISP Adapter ze złączami ISP 6pin/10pin oraz gniazdem zewnętrznego zasilacza Płyta CD z dokumentacją i oprogramowaniem
Interfejs JTAG 4 2. Interfejs JTAG JTAG jest 4-ro bitowym interfejsem kompatybilnym ze standardem IEEE 1149.1. Standard ten został opracowany w celu dostarczenia efektywnej metody testowania jakości połączeń w gotowych układach elektronicznych. JTAG w układach AVR posiada rozszerzoną funkcjonalność o możliwość programowania pamięci układu oraz debuggowania programu. z interfejsem JTAG może pracować po systemem Windows ( program Avr Studio ) oraz Linux ( program AvaRICE ) 2.1. Złącze interfejsu JTAG 1 2 TCK TDO TMS VTG TDI GND VTG RST NC GND 9 10 pin I/O identification description 1 I TCK Sygnał zegarowy z MB-JTAG-ICE do portu JTAG 2 PWR GND Masa układu 3 O TDO Wyjście danych z portu JTAG do MB-JTAG-ICE 4 PWR VTG Napięcie zasilania z uruchamianego układu 5 I TMS Sygnał wyboru trybu pracy z MB-JTAG-ICE do portu JTAG 6 7 I/O RST Sygnał RESET z MB-JTAG-ICE. Do zerowania uruchamianego układu PWR VTG Napięcie zasilania dla MB-JTAG-ICE z uruchamianego układu (2.7 5.5 V) 8 - NC Nie podłączony 9 I TDI Wejście danych z MB-JTAG-ICE do portu JTAG 10 PWR GND Masa układu
5 Interfejs JTAG 2.2. Uruchamianie programu przy użyciu 2.2.1. Pułapki sprzętowe i programowe Rejestry interfejsu JTAG w kontrolerach Atmel umożliwiają ustawienie maksymalnie 4 sprzętowych punktów przerwania programu, tzw. pułapek (ang. breakpoints ). Jedna z nich jest używana przez AvrStudio do trybu pracy krokowej, do dyspozycji użytkownika pozostają 3. Pułapki te można używać w następujących kombinacjach: 3 pułapki w pamięci programu 1 pułapka w pamięci programu i 2 pułapki w pamięci danych 1 pułapka w pamięci programu i 1 maskowana pułapka w pamięci SRAM 1 pułapka w pamięci programu i 1 maskowana pułapka w pamięci FLASH Pułapki sprzętowe pozwalają na uruchamianie programu z pełną szybkością procesora. Niektóre wersje kontrolerów Atmel obsługują instrukcję programową break. Przy użyciu tej instrukcji możliwe jest użycie nieograniczonej ilości pułapek programowych. Ponieważ realizacja takiej pułapki polega na zastąpieniu aktualnej instrukcji w pamięci programu przez instrukcję break, ten tryb uruchamiania jest znacznie wolniejszy ( konieczność wielokrotnego przeprogramowania pamięci programu ). Jeśli dostępne są pułapki programowe AvrStudio będzie domyślnie optymalizować proces uruchamiania, tak aby w pierwszej kolejności wykorzystane były pułapki sprzętowe. Jeśli pułapki programowe są niedostępne, próba ustawienia w programie więcej niż 3 pułapek wywoła komunikat. Pułapki w pamięci danych mogą być uzywane w jednym z trzech trybów: Wyzwolenie pułapki tylko po wykonaniu odczytu wskazanego adresu Wyzwolenie pułapki tylko po wykonaniu zapisu wskazanego adresu Wyzwolenie pułapki zarówno po odczycie jak i po zapisie do pamięci Wybrany tryb można ustawić w opcjach debuggera.możliwe jest też podanie maski adresów dla których pułapki będą aktywne. 2.2.2. Przygotowanie układu do pracy Zakładamy, że użytkownik posiada znajomość obsługi programu AvrStudio. Więcej informacji na ten temat znajduje się w interaktywnej pomocy dołączonej do AvrStudio. W tym miejscu podajemy informacje specyficzne dla współpracy z. Urządzenie należy podłączać do komputera PC oraz uruchamianego układu przy wyłączonym zasilaniu. Od strony komputera PC podłączamy do wolnego portu COM. Do uruchamianego układu należy połączyć złącze na taśmie. Jeśli gniazdo JTAG nie jest wyposażone w otwór prowadzący, należy przy podłączaniu zwrócić uwagę na położenie klucza wtyku ( strzałka na wtyku powinna wskazywać pin nr 1). Odwrotne włączenie może spodowować uszkodzenie debuggera i/lub uruchamianego układu.
Interfejs JTAG 6 Jeśli na złączu JTAG uruchamianego układu dostepne jest napięcie zasilania (2.7-5.5 V), debugger należy połączyć zgodnie z poniższym rysunkiem: Jeżeli zasilanie z układu uruchamianego jest niedostępne, należy podłączyć MB-JTAG- TWICE przy użyciu dołączonego adaptera, i podłączyć zewnetrzny zasilacz (3-5V): Po połączeniu należy uruchomić komputer PC a następnie włączyć zasilanie w uruchamianym układzie. Czerwona dioda LED powinna zaświecić przez ok. 1 sekundę. Oznacza to poprawną pracę. Na końcu uruchamiamy program AvrStudio. 2.2.3. Nawiązanie połączenia Po uruchomieniu, AvrStudio wyświetli okno dialogowe w celu wybrania projektu. Można wykorzystać przykładowy progam led.cof znajdujący się na płycie CD w katalogu example. Następnie należy wybrać JTAG ICE jako platformę do uruchamiania, oraz wersję używanego kontrolera avr i numer używanego portu COM ( lub pozostawić opcję AUTO ).
7 Interfejs JTAG Po załadowaniu programu, AvrStudio automatycznie programuje kontroler w uruchamianym układzie i przechodzi w tryb śledzenia programu wyświetlając okno z kodem żródłowym. Jeżeli komunikacja z została nawiązana, ale do złącza JTAG nie został podłączony żaden układ, lub też w uruchamianym kontrolerze nie został zaprogramowany bit zezwolenia dla interfesju JTAG, AvrStudio wyświetli okno z informacją o możliwych przyczynach problemu. 2.2.4. Opcje debuggera Aby zmienić opcje debuggera podczas uruchamiania układu należy wybrać z menu pozycję: Debug -> JTAC ICE Options. Dla zapewnienia prawidłowej komunikacji pomiędzy i AvrStudio częstotliwość (w zakładce Connection ) powinna być ustawiona na wartość równą lub mniejszą niż ¼ zegara procesora w uruchamianym układzie. W przypadku problemów z nawiązaniem połaczenia z można też ustawić mniejszą niż domyślna szybkość pracy portu szeregowego. Zakładka Debug umożliwia wybranie m.in. metody programowania kontrolera przed rozpoczęciem pracy. Domyślnie po każdorazowym załadowaniu pliku wynikowego wykonywana jest operacja programowania kontrolera. Opcję tę można zmienić tak aby reprogramowanie następowało tylko po po modyfikacji pliku wynikowego. Wydłuży to żywotność kontrolera w uruchamianym układzie. W zakładce Breakpoints ustawiamy tryb pracy dla pułapek programowych oraz ew. maskę adresów. Zakładka Status pokazuje aktualną wersję oprogramowania zawartego w MB-JTAG- TWICE oraz wersję kontrolera podłączonego do interfejsu JTAG.
Interfejs JTAG 8 2.3. Aktualizacja oprogramowania wewnętrznego JTAG pozwala na automatyczną aktualizację oprogramowania JTAG w momencie gdy zainstalowana wersja AvrStudio posiada wersję nowszą niż programator. Jeśli po wybraniu sesji debugowania lub programowania pojawi się okno należy nacisnąć przycisk OK a w kolejnym oknie Flash/Program Po skończonej aktualizacji należy wyłączyć i włączyć zasilanie jak również uruchomić ponownie AvrStudio.
9 Interfejs ISP 3. Interfejs ISP w trybie ISP używa do komunikacji z komputerem PC protokołu STK500 v.2 i może pracować z każdym oprogramowaniem, które działa z oryginalnym zestawem STK500, m.in Avr Studio, CodeVision i inne. Niektóre funkcje przeznaczone dla STK500 ( np. regulacja napięcia zasilania układu lub częstotliwości zegara ) są niedostępne podczas pracy z. 3.1. Złącza interfejsu ISP Do programowania w trybie ISP służy płytka adaptera wyposażona w dwa złącza: 10 pin oraz 6 pin: 1 2 1 2 MOSI PROG RST SCK MISO VTG GND GND GND GND MISO SCK RST 5 6 VTG MOSI GND 9 10 10-pin 6-pin I/O Sygnał Opis 1 4 2 2 I/O MOSI Dane odbierane podłączyć do lini MOSI mikrokontrolera PWR VTG Napięcie zasilania z programowanego układu: 2.7 v 5.5 v 3 - I/O PROG Stan niski podczas programowania ( sterowanie diodą LED lub multiplekserem w programowanym układzie ) 5 5 I/O RST Reset podłączyć do lini RST mikrokontrolera 7 3 I/O SCK Zegar podłączyć do lini SCK mikrokontrolera 9 1 4,6,8,10 6 PWR GND Masa I/O MISO Dane nadawane - podłączyć do lini MISO mikrokontrolera
Interfejs ISP 10 3.2. Połączenie do pracy z interfejsem ISP Poniższe rysunki ilustrują połaczenie programatora w przypadku stosowania złącza ISP 10-pin oraz 6-pin. Jeśli na złaczu ISP w układzie programowanym napięcie zasilania jest niedostępne, może być zasilany z zewnętrznego zasilacza poprzez płytkę adaptera. Po włączeniu zasilania, dioda LED będzie świecić przez ok. 1 sekundę, co oznacza gotowość urządzenia do pracy. Dioda LED będzie również świecić w czasie operacji programowania ISP. 3.3. Programowanie ISP przy użyciu Do programowania poprzez interfejs ISP może byc użyty program AvrStudio. Aktualna wersja AvrStudio znajduje się na dołączonej płycie CD w katalogu PC software. Do pracy z nalezy w AvrStudio wybrać dialog programowania STK500:
11 Interfejs ISP Oprogramowanie wewnętrzne automatycznie rozpoznaje wybrany w AvrStudio typo połączenia ( JTAG lub STK500). Rozpoznanie interfejsu następuje podczas pierwszego połączenia z PC po włączeniu zasilania. Wybrany interfejs jest aktywny aż do wyłączenia zasilania. Aby przełączyć w inny tryb pracy, należy wyłaczyć i ponownie włączyć zasilanie programatora. Szczegółowe informacje n.t. dostępnych opcji w czasie programowania ISP znajdują się w pomocy do AvrStudio ( menu Help ). Informacje zawarte są w rozdziale STK500 User Guide -> Frontend software.
Interfejs ISP 12 3.4. Aktualizacja oprogramowania wewnętrznego ISP pozwala na aktualizację oprogramowania do obsługi interfejsu ISP. Nie należy korzystać z aktualizacji dostarczonych razem z AvrStudio. Aktualizacje są dostępne na stronie internetowej MikloBit ( katalog Elektronika/Do probrania ). Do załadowania oprogramowania ISP służy program Uploader który znajduje sie na płycie CD, w katalogu. Aby wykonać aktualizację oprogramowania należy: Pobrać ze strony MikloBit archiwum mb_jtag_twice_isp_vx.x.zip i rozpakować z niego plik z rozszerzeniem.hex Uruchomić program Uploader.exe Podłączyć do portu COM w komputerze PC oraz do zasilania ( z uruchamianego układu lub z zasilacza poprzez adapter ) W programie Uploader wybrać port COM do którego podłączony jest MB-JTAG- TWICE, wskazać lokalizację na dysku gdzie znajduje się plik.hex i uruchomić aktualizację przyciskiem Program Po skończonej aktualizacji należy wyłączyć i włączyć zasilanie.
13 Interfejs ISP Jeśli zostanie zainstalowana nowsza wersja AvrStudio i po wywołaniu dialogu STK500 zostanie wyświetlony komunikat o konieczności aktualizacji: należy wybrać opcję Anuluj. Aby komunikat nie pojawiał sie proszę wykonać nastepujące czynności: uruchomić program RegEdit ( z menu Start/Uruchom ) odszukać w rejestrze klucz HKEY_LOCAL_MACHINE\SOFTWARE\Atmel\AVRTools\STK500 Zmienić wartości typu DWORD na numery wersji która jest oczekiwana, w tym przypadku 2.04: VersionMajor na 0x02 VersionMinor na 0x04 zakończyć program RegEdit uruchomić ponownie AvrStudio
Prawa autorskie i gwarancje 14 4. Prawa autorskie i gwarancje Prawa autorskie do oprogramowania JTAG zawartego wewnątrz, jak również do oprogramowania AvrStudio należą do firmy Atmel. Prawa autorskie do oprogramowania ISP zawartego wewnątrz należą do firmy MikloBit. MikloBit gwarantuje zgodność produktu z wydaną specyfikacją, a jednocześnie informuje, że nie ponosi odpowiedzialności za jakiekolwiek szkody powstałe bezpośrednio lub pośrednio w wyniku użycia lub nieprawidłowego działania produktu. MikloBit zastrzega sobie prawo do modyfikacji niniejszej specyfikacji bez uprzedzenia. 5. Kontakt MikloBit ul. Cyprysowa 7/5 43-600 Jaworzno www.miklobit.com support@miklobit.com tel. 0 603 196 171 tel./fax 0 32 616 40 82