Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Mikrokontrolery

ATmega32

Skanowanie ścieżki krawędziowej IEEE 1149.1 (JTAG)

obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI
Podrozdziały

obrazek

Własności

Na początek:  podrozdziału   strony 

Przegląd systemu

Łańcuch skanowania ścieżki krawędziowej (ang. Boundary-scan Chain) posiada możliwość ustawiania i odczytywania poziomów logicznych na cyfrowych końcówkach we/wy oraz na granicy pomiędzy logiką cyfrową i analogową dla obwodów analogowych, które posiadają połączenia poza układem mikrokontrolera. Na poziomie systemu wszystkie układy scalone posiadające interfejsy JTAG są połączone szeregowo sygnałami TDI/TDO w celu utworzenia długiego rejestru przesuwającego. Zewnętrzny kontroler ustawia układy, tak aby na ich wyjściach pojawiły się pożądane wartości, a następnie obserwuje wartości wejściowe otrzymywane z innych układów. Kontroler porównuje otrzymane dane z wynikiem oczekiwanym. W ten sposób skanowanie ścieżki krawędziowej dostarcza mechanizmu testowania wzajemnych połączeń i integralności składników na płytkach drukowanych używając jedynie sygnałów TAP.

Do testowania płytek drukowanych można używać czterech obowiązkowo zdefiniowanych instrukcji JTAG standardu IEEE 1149.1: IDCODE, BYPASS, SAMPLE/PRELOAD i EXTEST, jak również specyficznej, publicznej instrukcji AVR JTAG: AVR_RESET. Początkowe skanowanie ścieżki rejestru danych pokaże kod identyfikacyjny (ID-code) mikrokontrolera, ponieważ IDCODE jest standardową instrukcją JTAG. Może być pożądane utrzymywanie mikrokontrolera AVR w stanie resetu podczas trybu Testu. Jeśli nie ma resetu, to stany wejść mikrokontrolera mogą być określone za pomocą operacji skanowania, a wewnętrzne oprogramowanie może znaleźć się w stanie nieokreślonym przy wyjściu z trybu testu. Wchodząc w reset, wyjścia każdej końcówki portu natychmiast przejdą w stan wysokiej impedancji, co czyni zbędą instrukcję HIGHZ. Jeśli zajdzie potrzeba, można wysłać instrukcję BYPASS, aby wykonać najkrótszy możliwy łańcuch skanowania poprzez mikrokontroler. Mikrokontroler można ustawić w stan resetu albo przez wymuszenie stanu niskiego na zewnętrznej końcówce RESET, albo przez wysłanie instrukcji AVR_RESET z odpowiednim ustawieniem rejestru danych resetu (ang. Reset Data Register).

Instrukcja EXTEST jest używana do próbkowania zewnętrznych końcówek i ładowania końcówek wyjścia danymi. Dane wyjściowe latch (przerzutniki zatrzaskowe) zostaną wstawione na końcówki, gdy tylko instrukcja EXTEST zostanie załadowana do rejestru JTAG IR. Z tego powodu należy również użyć SAMPLE/PRELOAD do ustawienia początkowych wartości w pierścieniu skanowania, aby zapobiec uszkodzenia płyty z mikroprocesorem przy pierwszym wydawaniu instrukcji EXTEST. SAMPLE/PRELOAD można również używać do szybkich ujęć stanu końcówek podczas normalnej pracy układu.

Bit bezpiecznikowy JTAGEN musi być zaprogramowany oraz bit JTD w rejestrze we/wy MCUCSR musi być wyzerowany, aby uaktywnić port dostępu testowego JTAG.

Gdy używany jest interfejs JTAG do skanowania ścieżki krawędziowej, możliwe jest stosowanie wyższej częstotliwości zegara JTAG TCK od wewnętrznej częstotliwości układu. Zegar układu nie musi pracować.

Na początek:  podrozdziału   strony 

Rejestry danych

Rejestry danych istotne dla operacji skanowania ścieżki krawędziowej to:

Rejestr pomijania (ang. Bypass Register)

Rejestr pomijania składa się z pojedynczego stopnia rejestru przesuwającego. Gdy rejestr pomijania zostanie wybrany jako ścieżka pomiędzy TDI i TDO, to jest on resetowany na 0 przy opuszczaniu stanu kontrolnego Capture-DR. Rejestru pomijania można używać do skracania łańcucha skanowania w systemie, gdy inne mikrokontrolery mają być testowane.

Rejestr identyfikacji mikrokontrolera (ang. Device Identification Register)

Poniższy rysunek przedstawia strukturę rejestru identyfikacyjnego:

Wersja

Wersja jest 4-bitowym numerem określającym odmianę modelu mikrokontrolera. Numery wersji: 0x0 dla wersji A, 0x1 dla B itd.

Numer elementu

Jest to 16-bitowy kod identyfikujący model mikrokontrolera. Dla ATmega32 numer elementu JTAG wynosi 0x9502 (szesnastkowo).

Identyfikator producenta

Jest to 11-bitowy kod identyfikujący wytwórcę danego elementu. Dla firmy ATMEL kod ten jest równy 0x01F (szesnastkowo).

Rejestr resetowania (ang. Reset Register)

Jest to rejestr danych testu (ang. Test Data Register) używany do resetowania mikrokontrolera. Ponieważ w czasie resetu mikroprocesor AVR wprowadza końcówki portów w stan wysokiej impedancji, to rejestr resetowania może również zastąpić działanie opcjonalnej, niezaimplementowanej instrukcji JTAG HIGHZ.

Wysoka wartość w rejestrze resetowania odpowiada wymuszeniu stanu niskiego na zewnętrznej końcówce RESET. Mikrokontroler jest resetowany tak długo, jak wysoka wartość jest obecna w rejestrze resetowania. Zależnie od ustawień bitów bezpiecznikowych mikroprocesor pozostanie w stanie resetu przez okres upływu czasu resetowania (ang. Reset Time-Out Period) (zobacz do podrozdziału "Źródła zegarowe") po zwolnieniu rejestru resetowania. Wyjście z tego rejestru danych nie jest zatrzaskiwane, zatem reset będzie miał miejsce natychmiast, jak pokazano na poniższym rysunku:

Łańcuch skanowania ścieżki krawędziowej (ang. Boundary-scan Chain)

Łańcuch skanowania ścieżki krawędziowej posiada możliwość sterowania poziomami logicznymi i obserwowania ich na cyfrowych końcówkach we/wy jak również na granicy pomiędzy logiką cyfrową i analogową dla obwodów analogowych, które posiadają pozaukładowe połączenia.

Pełny opis znajdziesz w podrozdziale "Łańcuch skanowania ścieżki krawędziowej".


Instrukcje JTAG specyficzne dla skanowania ścieżki krawędziowej

Rejestr instrukcji ma szerokość 4 bitów, wspierając 16 instrukcji. Poniżej wymienione zostały instrukcje JTAG użyteczne w operacji skanowania ścieżki krawędziowej. Zauważ, iż opcjonalna instrukcja HIGHZ nie została zaimplementowana, lecz wszystkie końcówki posiadające możliwość przejścia w stan wysokiej impedancji mogą być ustawione w ten stan przez wykorzystanie instrukcji AVR_RESET, ponieważ początkowym stanem dla wszystkich końcówek portów jest stan wysokiej impedancji.

Z definicji w tym rozdziale, najmłodszy bit LSB (ang. Least Significant Bit) jest pierwszym wsuwanym i pierwszym wysuwanym dla wszystkich rejestrów przesuwających.

Kod operacyjny każdej instrukcji jest pokazany za jej nazwą w formacie szesnastkowym. Tekst opisuje, który rejestr danych zostaje wybrany jako ścieżka pomiędzy TDI i TDO dla każdej instrukcji.

EXTEST; 0x0

Obowiązkowa instrukcja JTAG do wyboru łańcucha skanowania ścieżki krawędziowej jako rejestru danych do testowania obwodów zewnętrznych dla obudowy mikrokontrolera AVR. W łańcuchu skanowania dostępne jest dla końcówek portów wyłączanie oporników podciągających, sterowanie wyjściem, dane wyjściowe i wejściowe. Dla obwodów analogowych posiadających połączenia pozaukładowe interfejs pomiędzy logiką analogową a cyfrową znajduje się w łańcuchu skanowania. Zawartości zatrzaśniętych wyjść są wyprowadzane na zewnątrz, gdy tylko rejestr instrukcji JTAG (ang. JTAG IRregister) zostanie załadowany instrukcją EXTEST.

Aktywne stany:

IDCODE; 0x1

Opcjonalna instrukcja JTAG wybierająca 32-bitowy rejestr identyfikacji jako rejestr danych. Rejestr identyfikacji składa się z numeru wersji, numeru mikrokontrolera oraz kodu producenta wybranego przez JEDEC. Jest to standardowa instrukcja po włączeniu zasilania.

Aktywne stany:

SAMPLE_PRELOAD; 0x2

Obowiązkowa instrukcja JTAG do wstępnego załadowania zatrzasków wyjściowych oraz zrobienia ujęcia stanu końcówek we/wy bez wpływania na pracę systemu. Jednakże zatrzaski wyjściowe nie są połączone z końcówkami. Jako rejestr danych zostaje wybrany łańcuch skanowania ścieżki krawędziowej.

Aktywne stany:

AVR_RESET; 0xC

Publiczna instrukcja JTAG specyficzna dla AVR wymuszająca stan resetu w mikrokontrolerze AVR lub zwalniająca źródło resetu JTAG. Kontroler TAP nie jest resetowany przez tą instrukcję. Jednobitowy rejestr resetu zostaje wybrany jako rejestr danych. Zwróć uwagę, iż reset ten będzie aktywny tak długo, jak w łańcuchu resetu znajduje się logiczna jedynka. Wyjście z tego łańcucha nie jest przepuszczane przez przerzutnik zatrzaskowy latch.

Aktywne stany:

BYPASS; 0xF

Obowiązkowa instrukcja JTAG wybierająca rejestr pomijania (ang. Bypass Register) na rejestr danych.

Aktywne stany:

Rejestr w pamięci we/wy związany ze skanowaniem ścieżki krawędziowej

MCUCSR – MCU Control and Status Register – Rejestr sterowania i stanu mikrokontrolera

Bit 7 6 5 4 3 2 1 0  
0x34 (0x54) JTD ISC2 JTRF WDRF BORF EXTRF PORF MCUCSR
Zapis/Odczyt Z/O Z/O O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 Zobacz na opis bitów  

Bit 7 – JTD: JTAG Interface Disable – Wyłączenie interfejsu JTAG

Gdy ten bit ma stan zero, to interfejs JTAG będzie włączony, jeśli zaprogramowano bit bezpiecznikowy JTAGEN. Jeśli bit ma stan 1, interfejs JTAG jest wyłączony. Aby zapobiec niezamierzonemu włączeniu lub wyłączeniu interfejsu JTAG, zmiana tego bitu wymaga użycia sekwencji czasowej. Aplikacja musi wpisać pożądaną wartość do tego bitu dwukrotnie w ciągu czterech taktów zegara. Jeśli interfejs JTAG jest pozostawiony bez podłączenia do innego obwodu JTAG, to bit JTD należy ustawić na jeden. Powodem jest unikanie statycznego prądu na końcówce TDO w interfejsie JTAG.

Bit 4 – JTRF: JTAG Reset Flag – Znacznik resetu JTAG

Ten bit jest ustawiany, jeśli reset był spowodowany logiczną jedynką w rejestrze resetu JTAG wybranego przez instrukcję JTAG AVR_RESET. Bit ten jest resetowany przez reset przy włączeniu lub przez zapis w nim logicznego zera.

Na początek:  podrozdziału   strony 

Łańcuch skanowania ścieżki krawędziowej

Łańcuch skanowania ścieżki krawędziowej (ang. Boundary-scan chain) posiada możliwość sterowania poziomami logicznymi i obserwowania ich na cyfrowych końcówkach we/wy, jak również na granicy logiki cyfrowej i analogowej dla analogowych obwodów posiadających pozaukładowe połączenia.

Skanowanie cyfrowych końcówek portów

Komórka skanowania ścieżki krawędziowej dla dwukierunkowej końcówki portu z opornikiem podciągającym

Powyższy rysunek pokazuje komórkę skanowania ścieżki krawędziowej dla dwukierunkowej końcówki portu z funkcją podciągania. Komórka składa się ze standardowej komórki skanowania ścieżki krawędziowej dla funkcji włączania podciągania (ang. Pull-up Enable, PUExn) oraz z komórki dwukierunkowej końcówki, która łączy trzy sygnały: Output Control – OCxn (sterowanie wyjściem), Output Data – ODxn (dane wyjściowe) i Input Data – IDxn (dane wejściowe) w dwustopniowy rejestr przesuwający. Indeksy portu i końcówki nie są używane w dalszym opisie.

Logika skanowania ścieżki krawędziowej nie jest pokazana na rysunkach w tym rozdziale. Poniższy rysunek przedstawia prostą końcówkę portu cyfrowego, jak opisano w rozdziale "Porty we/wy".

Schemat ogólnej końcówki portu z wydzieleniem obszaru skanowania ścieżki krawędziowej

PUD Wyłączanie podciągania         WDx Zapis DDRx
PUExn Włączanie podciągania dla końcówki Pxn   RDx Odczyt DDRx
OCxn Sterowanie wyjściem końcówki Pxn   WPx Zapis PORTx
ODxn Dane wyjściowe do końcówki Pxn   RRx Odczyt rejestru PORTx
IDxn Dane wejściowe z końcówki Pxn   RPx Odczyt końcówki PORTx
SLEEP     Sterowanie uśpieniem   CLKI/O     Zegar we/wy

Obwód skanowania ścieżki krawędziowej z poprzedniego rysunku zastępuje zielony obszar ograniczony kreskowaną linią. Jeśli nie jest obecna żadna alternatywna funkcja portu, to dane wejściowe ID odpowiadają wartości rejestru PINxn (lecz ID nie ma synchronizatora), dane wyjściowe OD odpowiadają rejestrowi PORT, sterowanie wyjściem OC odpowiada rejestrowi kierunku danych DD, a włączanie podciągania POExn odpowiada wyrażeniu logicznemu PUD · DDxn · PORTxn.

Cyfrowe funkcje alternatywne są podłączone poza obszarem zielonym, aby umożliwiać łańcuchowi skanowania odczyt aktualnej wartości końcówki. Przy funkcji analogowej występuje bezpośrednie połączenie od końcówki zewnętrznej do obwodu analogowego, a łańcuch skanowania jest wstawiony w interfejs pomiędzy logiką cyfrową a modułem analogowym.

Skanowanie ścieżki krawędziowej a interfejs 2-przewodowy

Końcówki SCL i SDA należące do 2-przewodowego interfejsu posiadają jeden dodatkowy sygnał sterujący w łańcuchu skanowania: włączanie interfejsu 2-przewodowego (ang. Two-wire Interface Enable, TWIEN).

Dodatkowy sygnał dla 2-przewodowego interfejsu

Jak pokazano na powyższym rysunku sygnał TWIEN włącza trójstanowy bufor z kontrolą szybkości narastania sygnału równolegle ze zwykłą cyfrową końcówką portu. Do sygnału TWIEN dołączona zostaje ogólna komórka skanowania (pokazana dalej).

Uwagi: 1. Nie ma oddzielnej komórki skanowania dla filtru szpilkowego 50 ns na wejściu. Zwykłe wsparcie skanowania dla cyfrowych końcówek portu wystarcza do testów połączeń. Jedynym powodem posiadania TWIEN na ścieżce skanowania jest umożliwienie odłączenia bufora sterowania ograniczeniem szybkości przy wykonywaniu skanowania ścieżki krawędziowej.
  2. Upewnij się, że sygnały OC i TWIEN nie pojawiają się jednocześnie, ponieważ doprowadzi to do sprzeczności sterowania portu.

Skanowanie końcówki RESET

Końcówka RESET akceptuje 5V przy aktywności w stanie niskim oraz 12V przy aktywności w stanie wysokim dla równoległego programowania wysokonapięciowego (ang. High Voltage Parallel Programming). Komórka obserwująca, pokazana na rysunku poniżej, jest wstawiona zarówno dla 5V sygnału resetu RSTT jak i dla 12V sygnału resetu RSTHV.

Komórka tylko obserwująca

Skanowanie końcówek zegarowych

Mikrokontrolery AVR posiadają wiele opcji zegarowych wybieranych przez bity bezpiecznikowe. Są to: wewnętrzny oscylator RC, zewnętrzny oscylator RC, zewnętrzny zegar, oscylator kwarcowy (wysokiej częstotliwości), oscylator kwarcowy niskiej częstotliwości i rezonator ceramiczny.

Poniższy rysunek pokazuje, jak każdy oscylator z zewnętrznym połączeniem jest wspierany w łańcuchu skanowania.

Komórki skanowania ścieżki krawędziowej dla oscylatorów i opcji zegarowych

Sygnał włączania (ang. Enable) jest wspierany przez ogólną komórkę skanowania ścieżki krawędziowej, natomiast wyjście oscylatora/zegara (ang. Output) jest podłączone do komórki tylko obserwującej. Oprócz głównego zegara, timer oscylatora jest skanowany w ten sam sposób. Wyjście wewnętrznego oscylatora RC nie jest skanowane, ponieważ ten oscylator nie ma zewnętrznych połączeń.

Poniższa tabelka podsumowuje rejestry skanowania dla zewnętrznej końcówki zegarowej XTAL1, oscylatorów z połączeniami XTAL1/XTAL2 jak również timera oscylatora 32 kHz.

Sygnał włączania Skanowana linia zegarowa Opcja zegarowa Skanowana linia zegarowa, gdy nie jest używana
EXTCLKEN EXTCLK (XTAL1) Zegar zewnętrzny 0
OSCON OSCCK Zewnętrzny kwarc
Zewnętrzny rezonator ceramiczny
0
RCOSCEN RCCK Zewnętrzny oscylator RC 1
OSC32EN OSC32CK Zewnętrzny kwarc niskiej częstotliwości 0
TOSKON TOSCK Timer oscylatora 32 kHz 0
Uwagi: 1. Nie włączaj na główny zegar więcej niż jednego źródła zegarowego naraz.
  2. Skanowanie wyjścia oscylatora daje nieprzewidywalne wyniki, ponieważ występuje dryft częstotliwości pomiędzy oscylatorem wewnętrznym, a zegarem JTAG TCK. Jeśli jest możliwe, należy raczej skanować zegar zewnętrzny.
  3. Konfiguracja zegarowa jest programowana za pomocą bitów bezpiecznikowych. Ponieważ bit bezpiecznikowy nie jest zmieniany w trakcie pracy programu, konfigurację zegarową uważa się za ustaloną dla danej aplikacji. Radzi się użytkownikowi skanować tę samą opcję zegarową, jaka będzie używana w ostatecznym systemie. Sygnały włączające są wspierane w łańcuchu skanowania, ponieważ układy logiczne systemu mogą wyłączać opcje zegarowe w trybach uśpienia, odłączając w ten sposób końcówki oscylatora od ścieżki skanowania. Bit bezpiecznikowy INTCAP nie jest wspierany w łańcuchu skanowania, zatem łańcuch skanowania ścieżki krawędziowej nie może uruchamiać oscylatora XTAL wymagającego wewnętrznych kondensatorów, o ile ten bit bezpiecznikowy nie zostanie poprawnie zaprogramowany.

Skanowanie komparatora analogowego

Istotne sygnały komparatora dotyczące skanowania ścieżki krawędziowej pokazuje poniższy rysunek.

Do każdego z tych sygnałów dołączona jest przedstawiona poniżej komórka skanowania ścieżki krawędziowej.

Sygnały te opisuje poniższa tabelka. Nie ma potrzeby wykorzystywania komparatora do czystych testów połączeń, ponieważ wszystkie jego wejścia analogowe są również współdzielone z końcówkami portu cyfrowego.

Nazwa sygnału Kierunek widziany z komparatora Opis Zalecane wejście, gdy nieużywane Wartości wyjściowe, gdy zalecane wejścia są używane
AC_IDLE Wejście Wyłącza komparator, gdy w stanie 1 1 Zależy od wykonywanego kodu mikroprocesora
ACO Wyjście Wyjście komparatora analogowego Stanie się wejściem dla wykonywanego kodu 0
ACME Wejście W stanie 1 używa sygnału wyjścia z multipleksera przetwornika analogowo/cyfrowego 0 Zależy od wykonywanego kodu mikroprocesora
ACBG Wejście Włączanie napięcia odniesienia 0 Zależy od wykonywanego kodu mikroprocesora

Skanowanie przetwornika A/C

Poniżej przedstawiono schemat blokowy przetwornika A/C ze wszystkimi istotnymi sygnałami kontrolnymi i śledzącymi.

Do każdego z tych sygnałów dołączona jest poniższa komórka skanowania ścieżki krawędziowej.

Przetwornik A/C nie musi być używany do czystego testowania połączeń, ponieważ wszystkie wejścia analogowe są również dzielone z końcówkami portu cyfrowego.

Sygnały skanowania ścieżki krawędziowej dla przetwornika A/C

Nazwa sygnału Kierunek od strony przetwornika Opis Zalecane dane wejściowe, jeśli nieużywane Wartości wyjściowe, gdy są używane zalecane wejścia, a mikroprocesor nie używa przetwornika
COMP Wyjście Wyjście komparatora 0 0
ACLK Wejście Sygnał zegara do stopni wzmocnienia zaimplementowane jako filtry z przełączanymi pojemnościami 0 0
ACTEN Wejście Włączanie ścieżki od stopni wzmacniających do komparatora 0 0
ADCBGEN Wejście Włączenie napięcia odniesienia jako wejścia odwracającego dla komparatora 0 0
ADCEN Wejście Sygnał włączania przetwornika A/C 0 0
AMPEN Wejście Sygnał włączania stopni wzmacniających 0 0
DAC_9 Wejście Bit 9 wartości cyfrowej  do przetwornika cyfrowo/analogowego 1 1
DAC_8 Wejście Bit 8 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_7 Wejście Bit 7 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_6 Wejście Bit 6 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_5 Wejście Bit 5 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_4 Wejście Bit 4 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_3 Wejście Bit 3 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_2 Wejście Bit 2 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_1 Wejście Bit 1 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
DAC_0 Wejście Bit 0 wartości cyfrowej  do przetwornika cyfrowo/analogowego 0 0
EXTCH Wejście Połączenie kanałów 0 - 3 przetwornika cyfrowo/analogowego do ścieżki omijającej stopnie wzmacniające 1 1
G10 Wejście Włączenie wejścia ze wzmocnieniem 10x 0 0
G20 Wejście Włączenie wejścia ze wzmocnieniem 20x 0 0
GNDEN Wejście Gdy ma stan true, zwiera do masy wejście odwracające komparatora 0 0
HOLD Wejście Sygnał próbkowania z podtrzymaniem. Przy stanie niskim próbkuje sygnał analogowy. Podtrzymuje sygnał przy stanie wysokim. Gdy są używane stopnie wzmacniające, sygnał ten musi stać się aktywny, gdy ACLK ma stan wysoki 1 1
IREFEN Wejście Włącza napięcie odniesienia jako sygnał AREF do przetwornika cyfrowo/analogowego 0 0
MUXEN_7 Wejście Bit 7 multipleksera wejść 0 0
MUXEN_6 Wejście Bit 6 multipleksera wejść 0 0
MUXEN_5 Wejście Bit 5 multipleksera wejść 0 0
MUXEN_4 Wejście Bit 4 multipleksera wejść 0 0
MUXEN_3 Wejście Bit 3 multipleksera wejść 0 0
MUXEN_2 Wejście Bit 2 multipleksera wejść 0 0
MUXEN_1 Wejście Bit 1 multipleksera wejść 0 0
MUXEN_0 Wejście Bit 0 multipleksera wejść 0 0
NEGSEL_2 Wejście Bit 2 multipleksera wejść dla wejścia odwracającego sygnału różnicowego 0 0
NEGSEL_1 Wejście Bit 1 multipleksera wejść dla wejścia odwracającego sygnału różnicowego 0 0
NEGSEL_0 Wejście Bit 0 multipleksera wejść dla wejścia odwracającego sygnału różnicowego 0 0
PASSEN Wejście Włączenie bramki przepuszczającej stopni wzmacniających 1 1
PRECH Wejście Wstępne załadowanie zatrzasku wyjściowego komparatora (aktywne w stanie niskim) 1 1
SCTEST Wejście Włączenie TESTU przełączanego kondensatora. Wyjście ze stopnia wzmacniającego 10x wysyłane na końcówkę portu z ADC_4 0 0
ST Wejście Wyjście ze stopni wzmacniających ustali się szybciej, jeśli ten sygnał będzie w stanie wysokim przez pierwsze dwa okresy ACLK po przejściu AMPEN w stan wysoki 0 0
VCCREN Wejście Wybiera Vcc jako napięcie odniesienia ACC 0 0
Uwaga: 1. Nieprawidłowe ustawienie przełączników pokazanych na schemacie przetwornika spowoduje sprzeczność sygnałów i może uszkodzić mikrokontroler. Istnieje kilka wyborów wejść do obwodu próbkowania i podtrzymania na wejściu odwracającym wyjściowego komparatora. Upewnij się, że jest wybrana tylko jedna ścieżka albo z końcówki ADC, albo ze źródła napięcia odniesienia, albo do masy.

Jeśli przetwornik A/C nie ma być używany podczas skanu, to należy użyć wartości wejściowe z tabelki powyżej. Nie zaleca się użytkownikom używania stopni wzmocnienia różnicowego w czasie skanowania. Stopnie wzmacniania oparte na przełączanej pojemności wymagają szybkiej pracy i dokładnego taktowania, co trudno uzyskać w łańcuchu skanowania. Dlatego nie dostarczono szczegółów dotyczących działań różnicowego stopnia wzmacniającego.

Przetwornik A/C AVR oparty jest na pokazanym na schemacie obwodzie analogowym pracującym wg algorytmu kolejnych przybliżeń zaimplementowanego w logice cyfrowej. Gdy jest on używany w skanowaniu ścieżki krawędziowej, to problemem jest zwykle zapewnienie, iż przyłożone napięcie analogowe będzie mierzone w pewnych granicach. Można to łatwo wykonać bez uruchamiania algorytmu kolejnych przybliżeń: użyj dolnej granicy na cyfrowych liniach DAC[9:0], upewnij się, iż na wyjściu komparatora jest stan niski, następnie zastosuj górna granicę na cyfrowych liniach DAC[9:0] i zweryfikuj, iż wyjście z komparatora jest w stanie wysokim.

Przetwornik analogowo/cyfrowy nie musi być używany do testowania połączeń, ponieważ wszystkie wejścia analogowe są dzielone również z końcówkami portu cyfrowego.

Gdy używasz przetwornika A/C, pamiętaj o następujących rzeczach:

Jako przykład rozważ zadanie weryfikowania sygnału wejściowego 1,5V ±5% w kanale 3 przetwornika A/C, gdy napięcie zasilania ma wartość 5,0V i AREF jest zewnętrznie połączone z VCC.

Dolna granica:

Górna granica:

Używane są zalecane wartości z wcześniejszej tabelki, o ile inne wartości nie zostaną podane w algorytmie z tabelki poniżej. Pokazane są jedynie wartości łańcucha skanowania dla  DAC i końcówek portu. Kolumna "Działania" opisuje, jaka instrukcja JTAG ma być użyta przed wypełnieniem rejestru skanowania ścieżki krawędziowej kolejnymi kolumnami. Weryfikacja powinna być wykonana na wysłanych i odczytanych danych skanowania z tego samego wiersza w tabeli.

Algorytm używania przetwornika A/C

Krok Działania ADCEN DAC MUXEN HOLD PRECH Dane PA3 Sterowanie PA3 Pullup_Enable PA3
1 SAMPLE_PRELOAD 1 0x200 0x08 1 1 0 0 0
2 EXTEST 1 0x200 0x08 0 1 0 0 0
3   1 0x200 0x08 1 1 0 0 0
4   1 0x123 0x08 1 1 0 0 0
5   1 0x123 0x08 1 0 0 0 0
6 Weryfikuj wyskanowany bit COMP, który ma być 0 1 0x200 0x08 1 1 0 0 0
7   1 0x200 0x08 0 1 0 0 0
8   1 0x200 0x08 1 1 0 0 0
9   1 0x143 0x08 1 1 0 0 0
10   1 0x143 0x08 1 0 0 0 0
11 Weryfikuj wyskanowany bit COMP, który ma być 1 1 0x200 0x08 1 1 0 0 0

Używając tego algorytmu ograniczenie czasowe na sygnał HOLD ogranicza częstotliwość zegarową TCK. Ponieważ algorytm utrzymuje HOLD w stanie wysokim przez pięć kroków, częstotliwość zegarowa TCK musi wynosić co najmniej pięć razy liczba bitów skanowania podzielona przez maksymalny czas podtrzymywania, thold,max.

Na początek:  podrozdziału   strony 

Kolejność skanowania ścieżki krawędziowej w ATmega32

Tabela poniżej pokazuje kolejność skanowania pomiędzy TDI a TDO, gdy zostaje wybrany łańcuch skanowania ścieżki krawędziowej jako ścieżka danych. Bit 0 oznacza najmłodszy bit LSB, który jest wsuwany jako pierwszy do łańcucha skanowania i wysuwany z niego jako pierwszy. Kolejność skanowania stara się zachować kolejność końcówek w obudowie mikrokontrolera. Stąd  bity portu A są skanowane w odwrotnej kolejności bitów stosunku do pozostałych portów. Wyjątkami od tych reguł są łańcuchy skanowania dla obwodów analogowych. które stanowią najbardziej znaczące bity łańcucha skanowania bez względu na fizyczne końcówki, z którymi są połączone.

Na przedstawionym poprzednio rysunku komórki skanowania ścieżki krawędziowej (który umieściliśmy powyżej dla przypomnienia) PXn.Data odpowiada FF0, PXn.Control odpowiada FF1 i PXn.Pullup_Enable odpowiada FF2. Bity 2, 3, 4 i 5 portu C nie występują w łańcuchu skanowania, ponieważ końcówki te tworzą końcówki TAP, gdy JTAG zostaje uaktywniony.

Numer bitu Nazwa sygnału Moduł
140 AC_IDLE Komparator
139 ACO
138 ACME
137 ACBG
136 COMP Przetwornik A/C
135 PRIVATE_SIGNAL1(1)
134 ACLK
133 ACTEN
132 PRIVATE_SIGNAL2(2)
131 ADCBGEN
130 ADCEN
129 AMPEN
128 DAC_9
127 DAC_8
126 DAC_7
125 DAC_6
124 DAC_5
123 DAC_4
122 DAC_3
121 DAC_2
120 DAC_1
119 DAC_0
118 EXTCH
117 G10
116 G20
115 GNDEN
114 HOLD
113 IREFEN
112 MUXEN_7
111 MUXEN_6
110 MUXEN_5
109 MUXEN_4
108 MUXEN_3
107 MUXEN_2
106 MUXEN_1
105 MUXEN_0
104 NEGSEL_2
103 NEGSEL_1
102 NEGSEL_0
101 PASSEN
100 PRECH
99 SCTEST
98 ST
97 VCCREN
96 PB0.Data Port B
95 PB0.Control
94 PB0.Pullup_Enable
93 PB1.Data
92 PB1.Control
91 PB1.Pullup_Enable
90 PB2.Data
89 PB2.Control
88 PB2.Pullup_Enable
87 PB3.Data
86 PB3.Control
85 PB3.Pullup_Enable
84 PB4.Data
83 PB4.Control
82 PB4.Pullup_Enable
81 PB5.Data
80 PB5.Control
79 PB5.Pullup_Enable
78 PB6.Data
77 PB6.Control
76 PB6.Pullup_Enable
75 PB7.Data
74 PB7.Control
73 PB7.Pullup_Enable
72 RSTT Logika resetu
(tylko obserwacja)
71 RSTHV
70 EXTCLKEN Sygnały włączania głównego zegara/oscylatorów
69 OSCON
68 RCOSCEN
67 OSC32EN
66 EXTCLK (XTAL1) Wejście zegarowe i oscylatory dla głównego zegara
(tylko obserwacja)
65 OSCCK
64 RCCK
63 OSC32CK
62 TWIEN Interfejs 2-przewodowy
61 PD0.Data Port D
60 PD0.Control
59 PD0.Pullup_Enable
58 PD1.Data
57 PD1.Control
56 PD1.Pullup_Enable
55 PD2.Data
54 PD2.Control
53 PD2.Pullup_Enable
52 PD3.Data
51 PD3.Control
50 PD3.Pullup_Enable
49 PD4.Data
48 PD4.Control
47 PD4.Pullup_Enable
46 PD5.Data
45 PD5.Control
44 PD5.Pullup_Enable
43 PD6.Data
42 PD6.Control
41 PD6.Pullup_Enable
40 PD7.Data
39 PD7.Control
38 PD7.Pullup_Enable
37 PC0.Data Port C
36 PC0.Control
35 PC0.Pullup_Enable
34 PC1.Data
33 PC1.Control
32 PC1.Pullup_Enable
31 PC6.Data
30 PC6.Control
29 PC6.Pullup_Enable
28 PC7.Data
27 PC7.Control
26 PC7.Pullup_Enable
25 TOSC Oscylator timera 32 kHz
24 TOSCON
23 PA7.Data Port A
22 PA7.Control
21 PA7.Pullup_Enable
20 PA6.Data
19 PA6.Control
18 PA6.Pullup_Enable
17 PA5.Data
16 PA5.Control
15 PA5.Pullup_Enable
14 PA4.Data
13 PA4.Control
12 PA4.Pullup_Enable
11 PA3.Data
10 PA3.Control
9 PA3.Pullup_Enable
8 PA2.Data
7 PA2.Control
6 PA2.Pullup_Enable
5 PA1.Data
4 PA1.Control
3 PA1.Pullup_Enable
2 PA0.Data
1 PA0.Control
0 PA0.Pullup_Enable
Uwagi: 1. PRIVATE_SIGNAL1 powinien zawsze być wstawiony do łańcucha jako zero.
  2. PRIVATE_SIGNAL2 powinien zawsze być wstawiony do łańcucha jako zero.
Na początek:  podrozdziału   strony 

Pliki języka opisu skanowania ścieżki krawędziowej

Oprogramowanie do automatycznego generowania testów używa standardowego formatu dla plików opisujących układy posiadające zaimplementowane skanowanie ścieżki krawędziowej. W plikach tych stosowany jest język opisu skanowania ścieżki krawędziowej (ang. Boundary-scan Description Language, BSDL). W opisie jest zawarta kolejność oraz funkcja bitów w rejestrze danych skanowania ścieżki krawędziowej (ang. Boundary-scan Data Register). Dla mikrokontrolera ATmega32 dostępny jest odpowiedni plik BSDL.
Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.