Tutorial JTAG_v2.0(19.06.2008).doc

(1314 KB) Pobierz

EMBEDDED TECHNOLOGY NEWS

Nieperiodyczny biuletyn nowości technicznych dla partnerów handlowych QTTC

 

 

Wstęp do testu płytki systemem XJTAG Boundary Scan

ver. 2.0 (19.06.2008 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

26

QUANTUM Korporacja Transferu Technologii Sp. z o. o., ul. Wystawowa 1, 51-618 Wrocław    http://www.quantum.com.pl/     http://www.embedded.com.pl/    http://www.qnx.com.pl/                        


Spis treści


Opis płytki              3

Podłączenie płytki              3

2.1 Konfiguracja projektu XJAnalyser              3

2.2 XJAnalyser              6

3. Konfiguracja procedury testowej za pomocą XJDeveloper              7

3.1 Założenie projektu              7

3.2 Identyfikacja linii zasilających                8

3.3 Identyfikacja łańcucha JTAG              8

3.4 Klasyfikacja układów bez implementacji JTAG (non JTAG devices)              10

3.4.1 Dodawanie połączeń jako elementy pasywne (zworki, rezystory)              10

3.4.2 Dodawanie elementów do listy elementów ignorowanych              11

3.4.3 Tworzenie plików testowych              12

3.4.4 Konfiguracja elementów               13

4. Procedury testowe               16

4.1 Test połączeń              17

4.2 Test diod LED              19

4.3 Test pamięci Static RAM              20

4.3.1 Prosty test typu zapis/odczyt              20

4.3.2 Zaawansowany test linii adresowych, danych i sterujących.              22

5. XJRunner              23

5.1 Przygotowanie pliku źródłowego               23

5.2 Wykonanie testów za pomocą XJRunner              24

Podsumowanie              26


 

 

 

 

 

 

 

 

 

 

 

 

1. Wstęp

Przedmiotem testu za pomocą systemu XJTAG Boundary Scan będzie zintegrowana płytka drukowana XJTAG Demo Board v2.0. Przed rozpoczęciem procedur testowych dobrą metodą na sprawdzenie poprawnego połączenia sieci JTAG Bounday Scan jest wykorzystanie programu XJAnalyser. Jest to jedno z narzędzi systemu XJTAG. Następnie rozpoczniemy pracę nad tworzeniem projektu za pomocą XJDeveloper, który poprowadzi nas krok po kroku przez pełną konfigurację procedury testowej. Po zakończonej konfiguracji przeprowadzone zostaną testy obejmujące następujące operacje: test połączeń, symulacje błędów w połączeniu, test pamięci SRAM[1] oraz test diod LED.

Opis płytki

Głównym rdzeniem płytki są dwa programowalne układy CPLD: Xilinx XC9536XL (IC2) oraz Altera EPM3032A (IC3). Układy te maja wbudowany interfejs JTAG wraz zaimplementowanym łańcuchem Boundary Scan. Układy te tworzą sieć w ten sposób, że wyjście TDO układu Xilinx podłączone jest do wejścia TDI układu Altera. Pomiędzy tymi sygnałami dodatkowo znajduję się zworka JP8, której usunięcie symuluję zerwanie sieci JTAG Boundary Scan. Natomiast pomiędzy zewnętrznym złączem JTAG a układami CPLD znajduję się zworka JP1, która posłuży nam do symulowania niemożliwości wykrycia łańcucha JTAG Boundary Scan.

Jednym z elementów, który będzie testowany to BS62LV256 Static RAM. Linie adresowe i danych podłączone są do układu Xilinx. Linie adresowe A7-A10 poprowadzone są przez rezystory oraz zworkę JP3, natomiast linie danych D0-D3 przez zworkę JP2. Usunięcie zworki JP3 oraz JP2 będzie symulowało przerwanie połączenia. Pozostałe elementy to pamięć EEPROM Microchip 24LC32A podłączona do układu Altera przez szynę I2C oraz  przetwornik analogowo-cyfrowy ADS7830, również podłączony do układu Altera przez szynę I2C. Schemat blokowy płytki znajduję się na rysunku poniżej.



Podłączenie płytki

              Przed podłączeniem płytki należy zainstalować oprogramowanie znajdujące się na płycie CD. Po zainstalowaniu podłączamy XJLink do złącza JTAG znajdującego się na płytce XJDemo przez płaski 20 żyłowy przewód. Następnie należy podłączyć XJLink do  komputera PC przez kabel USB.

2. Uruchomienie płytki za pomocą XJAnalyser

2.1 Konfiguracja projektu XJAnalyser

Nowy projekt

Po uruchomieniu XJAnalyser, tworzymy nowy projekt wpisując jego nazwę lub otwieramy już istniejący. W naszym przypadku tworzymy nowy projekt o nazwie Project1, następnie zatwierdzamy klikając Next



 

Konfiguracja zasilania, złącza JTAG oraz częstotliwości taktowania sygnału TCK

W następnej kolejności należy wybrać opcję zasilania płytki, odpowiednią konfigurację pinów JTAG oraz określić częstotliwość taktowania sygnału TCK.



System XJTAG umożliwia zasilanie płytki przez złącze USB jak i wyłączenie tego zasilania w przypadku gdy płytka zasilana jest z zewnętrznego źródła. Płytka XJDemo zasilana jest z wykorzystaniem kabla USB. W konfiguracji tej wybieramy opcje zasilania USB powered.

Następny krok to wybór konfiguracji pinów interfejsu JTAG. Płyta XJDemo ma zaimplementowaną standardową konfigurację, tak więc pozostawiamy opcję XJTAG. Ostatnim krokiem w tej części jest określenie częstotliwości pracy sygnału TCK. Częstotliwość ta zależy od możliwości układu do którego podłączony jest XJTAG oraz od możliwości samego systemu XJTAG. Częstotliwość ta nie powinna przekraczać częstotliwości maksymalnej jaką podają producenci. W naszym przypadku wybór opcji Default zdefiniowane jest jako częstotliwość 25MHz. Po zakończonej konfiguracji zatwierdzamy klikając na Next.

Importowanie plików BSDL

Trzecim i ostatnim krokiem przed rozpoczęciem pracy z XJAnalyser jest importowanie odpowiednich plików BSDL.

W momencie zatwierdzenia poprzedniej konfiguracji system XJAnalyser skanuję płytkę w celu identyfikacji numerów ID układów z implementowanym łańcuchem JTAG Boundary Scan. W ten sposób wykrywa układy podłączone do sieci JTAG Boundary Scan. Następnie należy zaimportować pliki BSDL, które opisują strukturę łańcucha Boundary Scan tych układów.

Pierwszą możliwą opcją jest wybór już istniejącej biblioteki plików BSDL. W przypadku płytki XJDemo biblioteka ta znajduję się w domyślnym katalogu  XJTAG2.0/BSDL i nosi nazwę „Library.xjb”. Pozostałe opcję dotyczą przypadku utworzenia nowej biblioteki. Jeżeli opcję Don't show unique matches pozostawimy pustą, wówczas przejdziemy do opcji umieszczania nowych plików BSDL do biblioteki.

 



 

Klikamy Next i przechodzimy do następnej opcji z możliwością edytowania biblioteki plików BSDL. W oknie dialogowym wyświetlają się numery ID oraz odpowiednio przyporządkowane pliki BSDL. W przypadku zmiany plików BSDL należy wybrać opcję View/Edit Library. Tą opcję wykorzystuję się w momencie tworzenia projektu do nowej płytki, dla której nie została jeszcze utworzona biblioteka z plikami BSDL. Tworzenie nowej biblioteki nie będzie tematem tej prezentacji.



To wszystkie wymagane kroki konfiguracyjne. Teraz aby rozpocząć prace z XJAnalyser wystarczy kliknąć na Next.

2.2 XJAnalyser

Ono dialogowe

Jeżeli konfiguracja została poprawnie przeprowadzona i pliki BSDL zgadzają się z układami to powinno wyświetlić się główny panel programu XJAnalyser. Wyświetlone zostały układy tworzące sieć JTAG Boundary Scan: Xilinx oraz Altera. Graficzne przedstawienie tych układów odzwierciedla dokładnie typ obudowy. W przypadku Xilinx jest to typ BGA, natomiast w przypadku Altera jest to obudowa standardowa. Potwierdza się tu jedna z najważniejszych zalet systemu XJTAG, mówiąca o braku zależności typu obudowy układów na ich sposób testowania.



W następnej kolejności przechodzimy do trybu analizy stanów pinów układów. W tym celu wybieramy z menu  Scan, a następnie Start JTAG Scan lub klikamy na skrót .



 

Aplikacja XJAnalyser oprócz analizowania stanów pinów umożliwia również ich zmianę. Można to zrobić na kilka sposobów jeden z nich to podwójne kliknięcie lewym przyciskiem myszy na wybrany pin, wówczas stan zmienia się na przeciwny lub kliknąć prawym przyciskiem myszy na wybrany pin i po rozwinięciu menu wybrać jedną w z możliwych opcji.

Przydatnym narzędziem jest wyszukanie pinów. W tym celu z menu wybieramy View a następnie Goto. W oknie, które się pojawiło wybieramy układ a następnie szukany pin. Klikamy na Goto, szukany pin zacznie migać.

Przykład:

Ponownie wybierzmy opcję wyszukiwania pinów Goto, wybierzmy układ Xilinx, pin E2:PB01_15, klikamy na Goto. Gdy pin zostanie odnaleziony kliknijmy na niego prawym przyciskiem myszy i wybierzmy opcje Set toggle slow. Jedna z diod na płytce powinna migać na czerwono. Aby powrócić do poprzedniego stanu klikamy prawym przyciskiem myszy i wybieramy opcję Disable.

XJAnalyser posiada jeszcze wiele dodatkowych, bardziej zaawansowanych opcji, które znacznie ułatwiają pracę projektantom oraz testerom. W prezentacji tej nie będą one szerzej omawiane. Uruchomienie XJAnalyser miało na celu sprawdzenia poprawności działania sieci JTAG Boundary Scan. Wstępne testy zakończone zostały pomyślnie. Kolejny etap to konfiguracja projektu, który będzie stanowił trzon procedury testowej. W tym celu wykorzystamy aplikację XJDeveloper.

3. Konfiguracja procedury testowej za pomocą XJDeveloper

3.1 Założenie projektu

              Program XJDeveloper w prosty i przejrzysty sposób poprowadzi nas przez pełną konfigurację  skryptu testującego (procedury testowej).

W pierwszej kolejności uruchamiamy aplikację XJDeveloper. Zaraz po uruchomieniu pojawi się główny panel oraz okno dialogowe, w którym należy wpisać nazwę testowanej płytki, ewentualnie opis oraz zlokalizować netlistę. Nazwa może być dowolna, ale dla naszego projektu nazwiemy ją tutorial. Netlista jest to plik tekstowy wygenerowany przez program do projektowania płytek. Zawiera ona informację o schemacie połączeń. System XJTAG przyjmuje kilka formatów netlisty, jedną z nich jest format RINF. Netlistę importuję się klikając na Browse. Po tych czynnościach klikamy OK oraz w głównym oknie dialogowym na save aby zapisać cały projekt.



3.2 Identyfikacja linii zasilających 

Identyfikacja linii zasilającej i uziemiającej  przekazuje ważną informacją dla systemu i określi jego sposób postępowania względem tych linii:

l        nie będzie zmieniał ich stanów podczas przeprowadzania testó

w

l        automatycznie wykryje poprawność połączenia do zasilania sprawdzając ich stan

l        może zidentyfikować rezystory podciągające

Na płytce XJDemo linie zasilające mają nazwy 3.3V dla zasilania i GND dla uziemienia. Nazwy te są zawarte i pobierane z netlisty.

Wykonujemy następujące kroki:

l        klikamy na ikonę Power/Ground Nets w głównym panelu XJDeveloper

l        klikamy na Suggested Ground Nets i przeciągamy linię GND w obszar Ground Nets

l        takie same czynności powtarzamy z linią 3.3V przeciągając ją do Power Nets

l        zapisujemy klikając na save w głównym panelu

3.3 Identyfikacja łańcucha JTAG

Tylko niektóre układy elektroniczne w zintegrowanych płytkach drukowanych są kompatybilne z interfejsem JTAG, dlatego też następny krok będzie dotyczył identyfikacji układów z wbudowanych interfejsem JTAG. W tej części, również importujemy pliki BSDL. Pliki te można pobrać ze stron producenta. Dla naszych układów pliki te są już dostępne w katalogu BSDL/Demo.

Aby być pewnym poprawnie zidentyfikowanego łańcucha z netlistą należy określić sygnały TDI do którego XJLink wprowadza dane do sieci JTAG Boundary Scan oraz sygnał TDO, którym  wyprowadza dane. Na płytce drukowanej XJDemo złącze JTAG  wyprowadzone jest przez konektor CN1. Posługując się schematem płytki możemy zidentyfikować, które piny tego konektora są odpowiedzialne za sygnały TDI i TDO.

Identyfikacja pinów TDI i TDO

l        klikamy na ikonę JTAG Chain w głównym panelu XJDeveloper

l        klikamy na Set TDI następnie pojawi się okno Select Device and Pin

l        rozwijamy opcję Suggested Connectors i wybieramy CN1

l        poniżej wyświetli się lista dostępnych pinów, wybieramy pin 5 jako sygnał TDI

l        klikamy OK

l        czynności te powtarzamy dla sygnału TDO wybierając Set TDO i dla CN1 wybieramy pin 13

l        zapisujemy klikając na save

 

Po wykonaniu tych czynności system wyświetlił nam w oknie Select Next Pin nazwę pinu IC2.B3 który został napotkany na linii TDI – TDO. Należy określić do jakiego elementu jest podłączony i jaką spełnia ten element funkcję.

l        przeciągamy pin IC2.B3 na obszar okna JTAG Devices lub klikamy na niego podwójnie lewym przyciskiem myszy

l        w oknie Edit JTAG Chain określamy jaki to typ układu wybierając Assign IC2 as JTAG device

l        lokalizujemy plik BSDL klikając na Browse

l       

wybieramy plik xc9536xl_cs48.bsd z katalogu BSDL/Demo

l        klikamy OK

Po zatwierdzeniu system sprawdza zgodność wybranego pinu z pinem zawartym w pliku BSDL. W oknie dialogowym Select Next Pin pojawił się kolejny, napotkany na drodze TDI – TDO, element JP8.1. Jak popatrzymy na schemat układu to widzimy, że JP8 jest zworką pomiędzy pinem TDO układu Xilinx a pinem TDI układu Altera. System nie wie dokładnie co to za typ elementu, należy więc go określić.

W tym przypadku stworzymy oddzielny plik, który będzie określał jego funkcję w systemie.

Należy kolejno:

l        kliknąć podwójnie na element JP8.1

...

Zgłoś jeśli naruszono regulamin