Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej Autor artykułu: mgr Jerzy Wałaszek |
©2023 mgr Jerzy Wałaszek |
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
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ć.
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.
Poniższy rysunek przedstawia strukturę rejestru identyfikacyjnego:
Wersja jest 4-bitowym numerem określającym odmianę modelu mikrokontrolera. Numery wersji: 0x0 dla wersji A, 0x1 dla B itd.
Jest to 16-bitowy kod identyfikujący model mikrokontrolera. Dla ATmega64 numer elementu JTAG wynosi 0x9602 (szesnastkowo).
Jest to 11-bitowy kod identyfikujący wytwórcę danego elementu. Dla firmy ATMEL kod ten jest równy 0x01F (szesnastkowo).
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 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".
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.
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:
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:
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:
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:
Obowiązkowa instrukcja JTAG wybierająca rejestr pomijania (ang. Bypass Register) na rejestr danych.
Aktywne stany:
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.
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. |
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
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. |
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 |
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 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ł |
204 | AC_IDLE | Komparator |
203 | ACO | |
202 | ACME | |
201 | AINBG | |
200 | COMP | Przetwornik A/C |
199 | PRIVATE_SIGNAL1(1) | |
198 | ACLK | |
197 | ACTEN | |
196 | PRIVATE_SIGNAL2(2) | |
195 | ADCBGEN | |
194 | ADCEN | |
193 | AMPEN | |
192 | DAC_9 | |
191 | DAC_8 | |
190 | DAC_7 | |
189 | DAC_6 | |
188 | DAC_5 | |
187 | DAC_4 | |
186 | DAC_3 | |
185 | DAC_2 | |
184 | DAC_1 | |
183 | DAC_0 | |
182 | EXTCH | |
181 | G10 | |
180 | G20 | |
179 | GNDEN | |
178 | HOLD | |
177 | IREFEN | |
176 | MUXEN_7 | |
175 | MUXEN_6 | |
174 | MUXEN_5 | |
173 | MUXEN_4 | |
172 | MUXEN_3 | |
171 | MUXEN_2 | |
170 | MUXEN_1 | |
169 | MUXEN_0 | |
168 | NEGSEL_2 | |
167 | NEGSEL_1 | |
166 | NEGSEL_0 | |
165 | PASSEN | |
164 | PRECH | |
163 | SCTEST | |
162 | ST | |
161 | VCCREN | |
160 | PEN | Włączenie programowania (tylko do podglądu) |
159 | PE0.Data | Port E |
158 | PE0.Control | |
157 | PE0.Pullup_Enable | |
156 | PE1.Data | |
155 | PE1.Control | |
154 | PE1.Pullup_Enable | |
153 | PE2.Data | |
152 | PE2.Control | |
151 | PE2.Pullup_Enable | |
150 | PE3.Data | |
149 | PE3.Control | |
148 | PE3.Pullup_Enable | |
147 | PE4.Data | |
146 | PE4.Control | |
145 | PE4.Pullup_Enable | |
144 | PE5.Data | |
143 | PE5.Control | |
142 | PE5.Pullup_Enable | |
141 | PE6.Data | |
140 | PE6.Control | |
139 | PE6.Pullup_Enable | |
138 | PE7.Data | |
137 | PE7.Control | |
136 | PE7.Pullup_Enable | |
135 | PB0.Data | Port B |
134 | PB0.Control | |
133 | PB0.Pullup_Enable | |
132 | PB1.Data | |
131 | PB1.Control | |
130 | PB1.Pullup_Enable | |
129 | PB2.Data | |
128 | PB2.Control | |
127 | PB2.Pullup_Enable | |
126 | PB3.Data | |
125 | PB3.Control | |
124 | PB3.Pullup_Enable | |
123 | PB4.Data | |
122 | PB4.Control | |
121 | PB4.Pullup_Enable | |
120 | PB5.Data | |
119 | PB5.Control | |
118 | PB5.Pullup_Enable | |
117 | PB6.Data | |
116 | PB6.Control | |
115 | PB6.Pullup_Enable | |
114 | PB7.Data | |
113 | PB7.Control | |
112 | PB7.Pullup_Enable | |
111 | PG3.Data | Port G |
110 | PG3.Control | |
109 | PG3.Pullup_Enable | |
108 | PG4.Data | |
107 | PG4.Control | |
106 | PG4.Pullup_Enable | |
105 | TOSC | Oscylator timera 32 kHz (tylko do podglądu) |
104 | TOSCON | |
103 | RSTT | Logika resetu (tylko do podglądu) |
102 | RSTHV | |
101 | EXTCLKEN | Sygnały włączania głównego zegara/oscylatorów |
100 | OSCON | |
99 | RCOSCEN | |
98 | OSC32EN | |
97 | EXTCLK (XTAL1) | Wejście zegarowe i
oscylatory dla głównego zegara (tylko do podglądu) |
96 | OSCCK | |
95 | RCCK | |
94 | OSC32CK | |
93 | TWIEN | Interfejs 2-przewodowy |
92 | PD0.Data | Port D |
91 | PD0.Control | |
90 | PD0.Pullup_Enable | |
89 | PD1.Data | |
88 | PD1.Control | |
87 | PD1.Pullup_Enable | |
86 | PD2.Data | |
85 | PD2.Control | |
84 | PD2.Pullup_Enable | |
83 | PD3.Data | |
82 | PD3.Control | |
81 | PD3.Pullup_Enable | |
80 | PD4.Data | |
79 | PD4.Control | |
78 | PD4.Pullup_Enable | |
77 | PD5.Data | |
76 | PD5.Control | |
75 | PD5.Pullup_Enable | |
74 | PD6.Data | |
73 | PD6.Control | |
72 | PD6.Pullup_Enable | |
71 | PD7.Data | |
70 | PD7.Control | |
69 | PD7.Pullup_Enable | |
68 | PG0.Data | Port G |
67 | PG0.Control | |
66 | PG0.Pullup_Enable | |
65 | PG1.Data | |
64 | PG1.Control | |
63 | PG1.Pullup_Enable | |
62 | PC0.Data | Port C |
61 | PC0.Control | |
60 | PC0.Pullup_Enable | |
59 | PC1.Data | |
58 | PC1.Control | |
57 | PC1.Pullup_Enable | |
56 | PC2.Data | |
55 | PC2.Control | |
54 | PC2.Pullup_Enable | |
53 | PC3.Data | |
52 | PC3.Control | |
51 | PC3.Pullup_Enable | |
50 | PC4.Data | |
49 | PC4.Control | |
48 | PC4.Pullup_Enable | |
47 | PC5.Data | |
46 | PC5.Control | |
45 | PC5.Pullup_Enable | |
44 | PC6.Data | |
43 | PC6.Control | |
42 | PC6.Pullup_Enable | |
41 | PC7.Data | |
40 | PC7.Control | |
39 | PC7.Pullup_Enable | |
38 | PG2.Data | Port G |
37 | PG2.Control | |
36 | PG2.Pullup_Enable | |
35 | PA7.Data | Port A |
34 | PA7.Control | |
33 | PA7.Pullup_Enable | |
32 | PA6.Data | |
31 | PA6.Control | |
30 | PA6.Pullup_Enable | |
29 | PA5.Data | |
28 | PA5.Control | |
27 | PA5.Pullup_Enable | |
26 | PA4.Data | |
25 | PA4.Control | |
24 | PA4.Pullup_Enable | |
23 | PA3.Data | |
22 | PA3.Control | |
21 | PA3.Pullup_Enable | |
20 | PA2.Data | |
19 | PA2.Control | |
18 | PA2.Pullup_Enable | |
17 | PA1.Data | |
16 | PA1.Control | |
15 | PA1.Pullup_Enable | |
14 | PA0.Data | |
13 | PA0.Control | |
12 | PA0.Pullup_Enable | |
11 | PF3.Data | Port F |
10 | PF3.Control | |
9 | PF3.Pullup_Enable | |
8 | PF2.Data | |
7 | PF2.Control | |
6 | PF2.Pullup_Enable | |
5 | PF1.Data | |
4 | PF1.Control | |
3 | PF1.Pullup_Enable | |
2 | PF0.Data | |
1 | PF0.Control | |
0 | PF0.Pullup_Enable |
Uwagi: | 1. | PRIVATE_SIGNAL1 powinien zawsze być wstawiany do łańcucha jako zero. |
2. | PRIVATE_SIGNAL2 powinien zawsze być wstawiany do łańcucha jako zero. |
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 (0x54) | JTD | – | – | JTRF | WDRF | BORF | EXTRF | PORF | MCUCSR |
Zapis/Odczyt | Z/O | O | O | Z/O | Z/O | Z/O | Z/O | Z/O | |
Wartość początkowa | 0 | 0 | 0 | Zobacz na opis bitów |
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.
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.
![]() |
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.