Sunteți pe pagina 1din 20

Capitolul 9: JTAG- principii de testare

9.1.Principii generale i unelte de testare Orice sistem integrat pe baz de calculator trebuie testat, fie c este vorba despre un model experimental sau de producia de serie. Testabilitatea trebuie asigurat nc din faza de proiectare, conform urmtoarelor principii: 1. Principiul vizibilitii care presupune accesibilitatea la nodurile care vor fi testate; 2. Principiul controlabilitii care presupune posibilitatea controlului principalelor semnale de pe plac, adic inhibarea lor i substituirea cu semnale de test; 3. Principiul sincronizrii generale solicit sincronizarea tuturor evenimentelor de pe o plac cu un singur semnal de tact care s fie posibil de generat i de echipamentul de testare. 4. Principiul partiionrii presupune gruparea topologic pe plac a circuitelor n raport cu funciile realizate; 5. Principiul iniializrii generale impune crearea posibilitii de a aduce circuitele de pe plac ntr-o stare cunoscut n momentul declanrii testului; 6. Principiul autotestrii recomand transferarea unor operaii de testare sau auxiliare testrii la nivelul plcii. Integrarea permite includerea funciilor de autotestare la nivelul chip-urilor (Built In Self Test BIST), i funcii de testare a interconexiunilor de pe plci (Boundary Scan). Testele pot fi clasificate n: 1. Teste parametrice- se evalueaz parametrii statici ( ex. tensiune de offset etc.) sau dinamici (timpi de cretere etc.); 2. Teste funcionale- se evalueaz funcionalitatea. Condiii le pot fi statice (cu frecvena mai mic dect n circuit) sau dinamice (frecvene de test comparabile cu cele din circuit). Testele pot fi executate n condiii parametrice impuse. Efectuarea unui test se realizeaz conform schemei bloc din figura 9.1.

Model Gold Unit Generator de secvene Circuit sub test DUT

Compactor

Comparator

Rezultat test

Compactor

Figura 9.1: Testarea prin comparaie cu un model

217

O secven de test este aplicat circuitului de testat i unui model (o plac martor sau un model matematic). Dac secvena de ieire este identic cu cea de referin atunci circuitul testat se poate considera fr defecte. Prin compactare se micoreaz lungimea secvenei de ieire i comparaia dureaz mai puin. Avantajul este umbrit de posibilitatea apariiei unor defecte nedetectabile. Pentru testarea funcional a unui modul se aplic secvene de test la intrare i se citesc rspunsurile att la ieirile plcii ct i n nodurile interioare pentru care s-a implementat principiul vizibilitii i poate fi: 1. Testarea funcional static i propune detectarea defectelor statice PP0, PP1 i scurtcircuite; 2. Testarea dinamic, la frecvena de lucru, detecteaz de exemplu impulsuri parazite; 3. Testarea funcional n sistem, cu 2 subvariante: Placa funcioneaz n testor i se simuleaz funcionarea n sistem; Placa funcioneaz n sistem, testorul culege informaii (ex. analizor logic) La testarea n circuit aciunea testului este fixat asupra unui singur chip. Secvena se aplic direct pe pinii chip-ului testat i se citesc rspunsurile chip-ului. Accesul se face prin pat de cuie- bed of nails. Testorul trebuie s rezolve problemele: 1. Izolarea circuitului prin dezactivarea ieirii tri state, inhibarea generatoarelor de semnal, ntreruperea buclelor de reacie; 2. Protecia ieirilor cuplate n nodurile forate prin limitarea valorilor curenilor injectai. Defectul este o imperfeciune fizic sau logic care apare n cadrul unei componente hardware sau software iar Eroarea este o manifestare a defectului i reprezint o deviaie de la corectitudinea de execuie a funciilor. Cauzele defectelor pot fi: 1. Specificaii de proiectare greite 2. Implementri greite 3. Componente defecte 4. Perturbaii exterioare Caracteristicile defectelor sunt: 1. Cauzele defectelor 2. Natura- hardware sau software 3. Durata defectelor- permanente, tranzitorii sau intermitente 4. Extinderea defectelor- generale sau locale 5. Valoarea defectului (la cele parametrice). Defectele logice sunt: 1. Puneri pe 0 (PP0) i puneri pe 1 (PP1) 2. Scurtcircuite, care pot fi ntre un traseu de semnal i una din bornele de alimentare, figura 9.2 sau ntre dou trasee de semnal, figura 9.3. Aceste defecte se pot detecta indirect prin msurarea curentului absorbit i compararea lui cu un curent al unei plci bune sau prin msurarea temperaturii chip-urilor de pe plac. 218

R
Q1

Vcc

D
Q2

PP0

n cazul unui defect PP0, dac ieirea este comandat n stare 1 apare un curent mare de la Vcc prin R, Q1, D, GND. n cazul unui defect PP1, dac ieirea este comandat n stare 0 apare un curent mare de la Vcc prin Q2, GND. Ambele defecte se manifest prin creterea temperaturii capsulei.

Figura 9.2: Scurtcircuit ntre un traseu de semnal i una din bornele de alimentare

R
Q1

R
Q3

Vcc
Dac poarta 1 este comandat n 1 iar poarta 2 n 0 apare un curent mare de la Vcc prin R, Q1, D, Q4, GND.

D
Q2

D
Q4

Poarta 1

Poarta 2 Figura 9.3: Scurtcircuit ntre dou trasee de semnal

Apariia sistemelor structurate pe magistrale a dus la necesitatea unor noi moduri de testare. n 1973 a fost introdus de ctre HP analizorul logic. Analizorul logic este dedicat activitii de laborator n etapele de proiectare i punere la punct a sistemului. Cerinele necesare pentru un analizor logic sunt: 1. S urmreasc i s vizualizeze mai multe semnale de intrare n acelai timp; 2. S dispun de frecvene de eantionare mai mari dect cel mai rapid semnal din sistem; 3. S dispun de un nivel de intrare de prag adaptabil la diferite tipuri de familii logice; 4. S memoreze secvene de date; 5. S dispun de posibiliti de declanare care s permit captarea unor blocuri de date dintr-un flux de date; 6. S asigure moduri variate de vizualizare.

219

Analiza logic poate fi: 1. Sincron (cu tactul sistemului), dedicat prii software. Se compar datele cu cele de referin i se stabilesc diferenele. 2. Asincron (cu tactul mai mare dect tactul sistemului), dedicat prii hardware, care pune n eviden defecte hardware- impulsuri eronate etc. Schema bloc a unu analizor logic este dat n figura 9.4. Linii de intrare

Bloc de eantionare

Memorie

Vizualizare

Tact de eantionare

Trigger 1- semnal de declanare a memorrii Trigger 2- semnal de oprire a memorrii

Figura 9.4: Schema bloc a unu analizor logic De exemplu la o magistral extern de MC trigger-ul de declanare a memorrii poate fi semnalul ALE care identific nceputul unui ciclu de acces la memorie sau I/O. Se poate genera un semnal special ca trigger prin software prin intermediul unui port de I/O. Exist i posibilitatea de declanare cu un cuvnt stocat n analizor. La ntlnirea acelui cuvnt pe una dintre liniile de intrare se pornete memorarea. Se poate stabili o ntrziere a declanrii dup apariia cuvntului. Cel mai comun mod de afiare este sub forma unei diagrame de timp, figura 9.5.
A0 A1 D0 D1 IOR

Se observ c impulsul de IOR apare prea trziu i datele nu mai sunt active i sistemul nu t

Tact de eantionare

Figura 9.5: Afiarea datelor la un analizor logic

220

Analizorul de semnturi se folosete n activitatea de depanare. ntr-un punct se culege o semntur , adic o form comprimat a fluxului de date. Semntura se compar cu cea determinat cnd circuitul funcioneaz bine (sau este determinat prin calcul) i se decide dac nodul respectiv funcioneaz bine sau nu. Dac nu, se culege semntura dintr-un nod anterior .a.m.d. Analiza de semnturi se poate aplica la fenomene sincrone, inclusiv pe baz de magistrale dar nu se poate aplica la fenomene asincrone, cum ar de exemplu DMA pe magistral. Schema bloc este dat n figura 9.6. Analizor de semntur
Date START STOP TACT

Unitate de testat Nod

Bloc de selecie fronturi

Memorie tampon

Comprimare

Afiare

Figura 9.6: Schema bloc a unui analizor logic Diagrama de semnal este dat n figura 9.7.

TACT START STOP DATE MEMORAT

1 0 0

1 1

0 1

Fereastra de analiz Figura 9.7: Diagrama de semnal preluat de analizorul de semnturi Comprimarea se realizeaz prin coduri ciclice. Schema de implementare a unei comprimri bazate pe cod ciclic se realizeaz prin registre cu reacie. De exemplu dac ecuaia reaciei este G=x16+x12+x7 atunci schema de implementare este cea din figura 9.8.

221

IS

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

SAU EXCLUSIV

Date

Figura 9.8: Implementarea comprimrii Modurile de lucru ale analizorului de semnturi pot fi: 1. NORMAL, cnd datele, semnalele de START i STOP apar repetitiv n nodurile testate. Testarea continu d posibilitatea punerii n eviden a defectelor intermitente (modificarea semnturii la un ciclu din N cicluri). 2. REINERE, se afieaz semntura culeas n prima fereastr dup RESET 3. AUTOTESTARE, se introduc sondele la un generator de secvene i se compar semntura obinut cu cea de control i se poate decide dac analizorul funcioneaz bine. Metoda analizei de semnturi poate fi aplicat i n domeniul analogic [1], semntura unei componente analogice fiind caracteristica ei tensiune- curent. Aparatul folosit pentru analiza de semnturi conine o surs de tensiune Vs i o impedan intern Zs i este aplicat pentru ridicarea caracteristicii componentei ZL. Dac aceasta este o rezisten se obine pe un ecran caracteristica cunoscut, panta dreptei fiind msura valorii rezistenei, care poate fi comparat cu valoarea corect. Reprezentarea se face n 4 cadrane. Semntura unui capacitor este o elips, reprezentare obinut la aplicarea unei tensiuni alternative. O elipsa asimetric aezat reprezint semntura unui condensator cu pierderi (cu component rezistiv). La fel se pot analiza semnturile altor componente, cum este de exemplu jonciunea pn. Semntura jonciunii pn poate fi folosit pentru analiza circuitelor integrate, prin analiza fiecrei intrri/ ieiri, pornind de la premiza c majoritatea defectelor apar n zona I/O. Observaie: Autotestarea este de o importan vital pentru orice echipament electronic, orict de simplu. De exemplu aprinderea tuturor indicatoarelor luminoase din bordul auto la introducerea cheii n contact constituie un test al semnalizrilor de avarie. Osciloscopul are un generator dreptunghiular de 1kHz pentru test. Orice realizare profesional trebuie s aib posibiliti de autotest hardware sau software. Pentru modulele realizate ca model experimental este indicat folosirea unor LED-uri de semnalizare. Un LED la tensiunea de alimentare poate asigura utilizatorul c modulul este alimentat. Un set de LED-uri care se aprind pe rnd dup efectuarea unor secvene importante soft poate indica starea n care s-a blocat modulul. Unele plci de baz de PC au fost prevzute cu LED-uri pentru a marca evoluia autotestului i a ncrcrii sistemului de operare.

222

9.2.Structura SCAN Un circuit care conine att componente combinaionale ct i componente secveniale poate fi redesenat astfel, figura 9.9. Intrri combinaionale primare Intrri combinaionale secundare Circuite combinaionale Ieiri combinaionale primare Ieiri combinaionale secundare

Q D CLK Q D CLK

Q D CLK CLK

Figura 9.9: Partiionarea unei scheme S-a mprit (partiionat) aceast schem pentru punerea n eviden a prii combinaionale i a celei secveniale. Proiectarea pentru testabilitate bazat pe registre de scanare se bazeaz pe adugarea de elemente de circuit suplimentare unui chip (ceea ce nu mai este o problem la gradul actual de integrare). Circuitele nzestrate cu aceste structuri de test au dou moduri de funcionare: NORMAL cnd execut funcia pentru care este utilizat TEST se execut operaii de testare. Se dorete ca semnalele de testare la pini s fie ct mai puine. Pe baza acestei redesenri se poate introduce noiunea de structur SCAN multiplexat MDSD Multiplexed Data Scan Design n care se adaug un MUX pentru fiecare bistabil existent, figura 9.10. Dac intrarea de selecie S a multiplexoarelor valideaz calea I1 -D atunci circuitul funcioneaz normal (N) iar dac valideaz calea I0 -D atunci se valideaz modul de test (T).

223

Intrri combinaionale primare Intrri combinaionale secundare

Circuite combinaionale

Ieiri combinaionale primare Ieiri combinaionale secundare I0 I1 S I0 I1 S SI

Q D CLK Q D CLK

Q D SO CLK CLK S

I0 I1 T/N

Figura 9.10: Structura SCAN multiplexat Testarea prii secveniale n modul test (T): 1. 0 la SI i un numr de impulsuri CLK egal cu numrul de bistabili din structur asigur iniializarea tuturor bistabililor cu 0 (n lipsa defectelor); 2. 1 la SI i apoi n-1 de 0 nseamn trecerea fiecrui bistabil n 1, pe rnd la fiecare impuls de CLK; 3. se pot aplica 2n (n fiind numrul de bistabili) secvene pentru testarea integral cu toate combinaiile posibile. Condiia de eroare se obine dac la ieirea SO irul de impulsuri nu este cel ateptat. Testarea prii combinaionale n modul test (T): 1. Prin ncrcarea bistabililor (prin SI) cu o secven de test se obine un vector pe intrrile combinaionale secundare. Se aplic un vector de test pe intrrile primare i astfel se poate asigura o secven de test complet la intrrile circuitului combinaional i se poate citi rspunsul la ieirile combinaionale primare; 2. Se pune T/N pentru funcionare normal i n bistabili se ncarc rspunsul prii combinaionale (ieiri secundare); 3. Se pune T/N pentru test i se citete serial la SO, dup n impulsuri de tact, rspunsul citit la ieirile secundare. mpreun cu ieirile primare se obine rspunsul prii combinaionale.

224

n structura BOUNDARY SCAN fiecrui pin de I/O al unui chip i s-a ataat o celul specializat care separ logica intern de exteriorul chip-ului, figura 9.11. 1. T/N pe poziia normal, D0 identic cu DI i circuitul realizeaz funcia pentru care a fost proiectat; 2. T/N pe poziia test, bistabilii pot fi ncrcai serial prin intrarea SI i n n/2 impulsuri de CLK se poate ncrca un vector de test la pinii de intrare, apoi se pot citi rspunsurile circuitului citind ieirile. Tot pe poziia test, bistabilii pot fi ncrcai paralel cu vectorul de test prezent la intrare, cu semnalul SHIFT/ LOAD (S/L) pe poziia LOAD (L). Ieirile pot fi testate deplasnd serial vectorul de intrare la ieiri.

DI SO DO S/L T/N SI DI SO DO S/L T/N SI DI SO DO S/L T/N SI

Logica intern

DI SI DO S/L T/N SO DI SI DO S/L T/N SO DI SI DO S/L T/N SO

SI

S/L

CLK

T/N

Figura 9.11: Structura BOUNDARY SCAN

Testarea interconexiunilor se poate realiza cu o bucl Boundary Scan pe o plac cu chip-uri care admit acest mod de test, figura 9.12: 1. Se ncarc paralel n primul circuit (A) un vector de test 010101... ; 2. Se deplaseaz serial vectorul de test de la intrri la ieiri; 3. Se ncarc n circuitul B setul de ieiri din circuitul A .a.m.d. pn datele apar la ieirea SO a ultimului circuit; 4. Se analizeaz secvena de ieire, de exemplu 2 de 0 alturai arat existena unui defect de punere la 0 PP0.

225

SI
0 1 0 1 0 1 0 1

SO

SI
1 0 1 0 0 0 1 0

SO

SI

SO

1 0 1 0 1 0 1 0

Figura 9.12: Testarea interconexiunilor Testarea se face pe etape: 1. Testarea conexiunilor 2. Testarea chip-urilor. Motivul testrii n 2 etape este acela c o conexiune PP0, PP1 sau scurtcircuit ntre 2 trasee poate avea aceleai manifestri ca un defect intern. Pentru testare se aleg mai multe tipuri de iruri de date, capabile s pun n eviden defectele logice PP0, PP1 sau scurtcircuite. De exemplu se poate aplica un ir de 0 i se detecteaz punerile pe 1, apoi un ir de 1 i se detecteaz punerile pe 0, apoi alternativ 0 i 1 care detecteaz scurtcircuitele.

9.3.JTAG. Standardele IEEE 1149.1, IEEE 1149.4, IEEE1149.6 i IEEE 1532 Grupul de lucru Joint Test Action Group (JTAG) a fost format n 1985 de ctre Harry Wardrop pentru a dezvolta o metod de testare a plcilor echipate dup ce au fost produse. Grupul JTAG a realizat primul standard de testare n 1990 (Standardul IEEE 1149.1) n care se regsete arhitectura SCAN i Boundary Scan. Tot n 1990 Intel a realizat primul procesor dotat cu JTAG, 80486. n 1994 a fost adugat la standard un supliment care descrie limbajul BSDL (Boundary Scan Description Language). Curnd JTAG a depit utilizarea la testarea plcilor i a nceput s fie folosit la accesul modulelor interne ale circuitelor integrate pentru urmrirea funcionrii lor (debugging). La un circuit cu interfa JTAG funcionarea este vizibil prin JTAG imediat dup Reset. Un emulator sau interfa JTAG permite accesul la modulele interne care pot astfel s fie urmrite. Prin JTAG funcionarea unui procesor poate fi oprit i un program se poate rula pas cu pas sau procesorul ruleaz un program i se introduc puncte de ntrerupere n program. Exist structuri cu acest mod de testare bine pus la punct cum sunt microcontrollerele ARM. O alt noutate introdus este posibilitatea programrii memoriei flash a circuitului prin JTAG.

226

Circuitele cu JTAG cuprind n arhitectura lor un port de testare TAP (Test Access Port) care permite: 1. Testarea funciilor circuitului; 2. Testarea conexiunilor cu alte circuite; 3. Excluderea circuitului din procesul de testare la nivelul plachetei; 4. Operaii de autotestare executate de circuit (opional). n schema bloc a unui modul JTAG (figura 9.13) se poate observa structura bazat pe regitrii. Registre de date de test Registru BOUNDARY SCAN TDI Registru BYPASS Registru IDENTIFICARE Registru UTILIZATOR MUX TDO

Decodificator Registru Instruciuni TMS TCK TRS Controller TAP

TCK- tact de test, independent de alte tacte TMS- modul de lucru al controllerului TAP TRS- test RESET TDI- date seriale de intrare TDO date seriale de ieire

Figura 9.13: Modul JTAG Regitrii JTAG sunt: 1. Prin registrul BYPASS se exclude chip-ul din procesul de testare; 2. Registrul BOUNDARY SCAN este folosit pentru testarea circuitului i conexiunilor; 3. Registrul UTILIZATOR, liber ca utilizatorul s realizeze operaii de test sau autotest; 4. Registrul IDENTIFICARE permite identificarea circuitului. 5. n registrul INSTRUCIUNI se trimit serial (prin TDI) instruciunile de executat care pot fi: BYPASS, chip-ul este exclus din lanul de testare. Logica chip-ului funcioneaz normal. Datele merg de la TDI spre TDO i poate fi testat urmtorul circuit din lan;

227

SAMPLE/ PRELOAD, logica chip-ului funcioneaz normal i ieirile pot fi citite serial prin Boundary Scan. Se poate face astfel o operaie de test funcional n sistem; EXTEST, se testeaz conexiunile prin nscrierea registrului Boundary Scan cu valorile de test, apoi se citesc valorile din alt circuit.

Exist i instruciuni opionale: HIGHZ- se comand toate ieirile n stare de nalt impedan; IDCODE- se citete codul de identificare chip. USERCODE se selecteaz registrul UTILIZATOR (32 de bii). Observaie: la ultimele 2 instruciuni nu este afectat funcionarea normal simultan a chipului. Standardul IEEE 1149.4 are scopul de a reduce dificultatea testrii sistemelor care prelucreaz semnale mixte digitale i analogice. Standardul de testare a circuitelor digitale IEEE 1149.1 se poate extinde pentru testarea circuitelor analogice. n schema de testare a fost introdus ABM Analogue Boundary Module i DBM Digital Boundary Module, figura 9.14. Seciune analogic Intrri analogice Ieiri analogice

ABM

DAC DBM

ADC DBM

DBM Intrri digitale DBM

Seciune digital

DBM Ieiri digitale DBM

TDI TMS TCK

TAP 1149.1

TDO

Figura 9.14: Structura de testare analogic i digital

228

Modulele DBM au structura prezentat n figura 9.14. Pentru a se putea testa partea analogic care a fost separat se introduc modulele ABM care conin convertoare AD i DA de un bit. Se pot astfel unifica vectorii de test i rspunsul circuitului n forma digital. La prima vedere pare c se poate testa o valoare analogic prin comparare cu un singur prag (n convertorul AD de un bit), ceea ce este un nivel srac de informaie. De fapt pragul poate fi programat i se pot face comparaii succesive cu mai multe nivele, ceea ce mrete precizia testrii dar prelungete i timpul de testare. Transformarea din digital n analogic i invers are loc n celula ABM, figura 9.15. +5V GND VH VL ABM

SDO

Referin K1 Circuit intern

Magistral intern analogic de test Pin extern de intrare

TBIC Test Bus Interface Circuit

Analog Test Access Port

Figura 9.15: Structura ABM Analogue Boundary Module Procedura de test: Se citete semnalul IN, se compar cu valoarea de referin i rezultatul (1 bit) se trimite pe SDO (CAD de un bit). Astfel s-a msurat intrarea (K1 deschis); Se nchide K1 i se pot genera spre circuitul intern +5V, GND, VH, VL (pentru un circuit digital) dar i valori analogice de la TBIC; Pentru o celul ABM de ieire se schimb pe schema bloc poziia pin extern cu circuit intern. Pentru citiri mai exacte a tensiunii de intrare, la referin se pot conecta valori analogice prin TBIC. Dezvoltarea n timp a JTAG a dus la necesitatea introducerii a noi standarde [2]. IEEE 1149.6 a fost introdus pentru testarea circuitelor LVDS (Low Voltage Data (Differential) Signal) i a circuitelor cuplate capacitiv. Testarea se realizeaz cu impulsuri generate cu un bit n BSR (Boundary Scan Register) i recepionate pe 2 bii (prin recepie diferenial). Acest mod de testare se mai numete i AC-EXTEST.

229

IEEE 1532 a fost introdus n anul 2000 pentru a standardiza programarea PLD i FPGA, indiferent de productorul circuitului. Algoritmul care programeaz, terge, citete i verific circuitul se afl ntr-un fiier BSDL (Boundary Scan Description Language).

9.4.Interfaa JTAG la microcontrollerul Atmega64 La familia ATmega interfaa JTAG poate fi folosit la testarea plcii prin scanare, la programarea memoriei nevolatile i la debugging. Funcionarea JTAG este validat de un bit cu nscriere fuzibil (fuse bit JTAGEN) care iniial este programat pentru validarea JTAG. Pe lng aceast validare este nevoie ca bitul JTD din MCUCSR (MCU Control and Status Register) s fie setat. Pentru a evita programrile false, aplicaia trebuie s repete setarea acestui bit, adic s execute de dou ori instruciunea de scriere a bitului JTD. Dac interfaa JTAG nu este validat atunci pinii au semnificaii de port paralel de uz general i controllerul TAP este n Reset. Dac se dorete programarea MC prin JTAG i bitul JTD nu este setat atunci se foreaz linia de Reset n Low dou tacte i bitul JTD este setat. TAP (Test Access Port) este un automat cu 16 stri care controleaz funcionarea interfeei JTAG. Navigarea ntre strile TMS se face cu comenzi pe pinul TMS (comenzi seriale pe 4 bii). ntotdeauna LSB este trimis ca prim bit n cuvintele seriale JTAG. 9.4.1. Programarea memoriei prin JTAG Programarea memoriei Flash i EEPROM prin JTAG se poate face dup validarea interfeei JTAG. Fiecare instruciune generat printr-un cuvnt serial de 4 bii trimis pe linia TMS acioneaz asupra unui registru care devine dup instruciune registru de date. Datele se introduc n acest registru sau se extrag pe liniile TDI respectiv TDO. Instruciunile care pot fi trimise serial ctre TAP sunt (valoarea hexa este dat n parantez): AVR_RESET (CH) se reseteaz MC fr a se reseta controllerul TAP. Reset Register este selectat ca registru de date i durata reset-ului este dat de valoarea acestui registru; PROG_ENABLE (4H) se valideaz scrierea memoriei Flash sau EEPROM prin JTAG, registrul Programming Enable Register este selectat ca registru de date de 16 bii; PROG_COMMANDS (5H) registrul Programming Command Register este selectat ca registru de date de 15 bii; PROG_PAGELOAD (6H) registrul de 1024 bii Virtual Flash Page Load Register este selectat ca registru de date, egal cu numrul de bii dintr-o pagin de memorie Flash; PROG_PAGEREAD (7H) registrul de 1032 bii Virtual Flash Page Read Register este selectat ca registru de date. n acest registru se citesc cei 1024 bii dintr-o pagin Flash plus 8 bii.

230

Dup instruciunea PROG_ENABLE pe linia TDI se introduce o secven 1010 0011 0111 0000 (A370H) numit semntura de programare pentru a valida programarea n Programming Enable Register. Dup terminarea programrii registrul trebuie resetat. Dup validarea programrii, cu instruciunea PROG_COMMANDS se introduce n registrul Programming Command Register o comand care realizeaz citirea/ scrierea/ tergerea memoriei, a biilor fuzibili i a biilor de blocare. Comenzile sunt date n foile de catalog a MC. De exemplu citirea memoriei Flash se face prin introducerea n ordine pe linia TDI, dup instruciunea PROG_COMMANDS: 0100011 00000010 pe TDI este comanda de citire Flash; 0000111 aaaaaaaa pe TDI este adresa, octetul superior; 0000011 bbbbbbbb pe TDI este adresa, octetul inferior; 0110010 00000000 pe TDI comanda de citire a locaiei; 0110110 00000000 pe TDO apare octetul inferior n forma xxxxxxxx oooooooo; 0110111 00000000 pe TDO apare octetul superior. La fel exist secvene pentru citirea /scrierea Flash, citirea/scrierea EEPROM, citirea/scrierea biilor fuzibili i ai celor de blocare. 9.4.2.Debugging prin JTAG Debugging-ul prin JTAG se bazeaz pe existena unei ci de scanare ntre CPU i modulele interne existnd posibilitatea inserrii de maximum 4 Break Point-uri. Ca i instrument software se poate folosi AVR Studio, modul debug fiind posibil att n limbaj de asamblare ct i n C. Pentru a lucra n modul debug trebuie ca bitul JTAGEN s fie programat i nici un bit de blocare s nu fie programat. Orice bit de blocare programat duce la blocarea sistemului de debug din raiuni de securitate. n mod debug utilizatorul poate executa un program pas cu pas, poate trece peste anumite instruciuni, poate executa un program pn la atingerea unei anumite stri, poate opri sau reseta execuia. Instruciunile JTAG pentru debug (8H, 9H, AH, BH) sunt considerate private i sunt documentate doar pentru firmele care vnd software pentru Atmel. Pentru a uura munca de debugging Atmel a creat un emulator n circuit numit JTAGICE mkII, figura 9.16.
USB /RS232

JTAG/ debugWIRE

JTAGICE Placa cu MC AVR

Figura 9.16: JTAGICE mkII 231

JTAGICE permite accesul la toate resursele microcontrollerelor din familia AVR. Locul acestui dispozitiv este dat n figura 9.16 dreapta, ntre un PC care ruleaz AVR Studio i placa pe care este plasat microcontrollerul. Interfaa cu PC-ul poate fi RS232 sau USB. Pentru MC cu numr mic de pini a fost introdus ca interfa de testare debug/WIRE n care comunicaia se face pe un singur pin, cel de Reset. JTAGICE poate realiza: 1. Emularea tuturor funciilor analogice i digitale ale MC AVR de la ATmega 16 la ATmega 6490 prin JTAG i de la Attiny 13 la ATmega 168 prin debug/WIRE. La apariia unor modele noi de MC, prin descrcarea unei noi variante de AVR Studio JTAGICE va putea lucra i cu modelele noi; 2. Programarea MC clasic sau prin JTAG; 3. Mod debug n care se pot introduce Break Point-uri, cnd programul ajunge la o adres sau ntr-o gam de adrese, cnd datele sunt citite/ scrise la o adres sau ntr-un interval de adrese, la schimbarea fluxului de citire a programului din memoria program; 4. Monitorizarea tuturor resurselor interne ale MC. Conectorii de acces pe plac sunt recomandai de Atmel cu configuraia pinilor dat n figura 9.17, acces SPI i debug prin debug/WIRE (stnga) i JTAG (dreapta).

Figura 9.17: conectori recomandai de Atmel Pentru debug de tip debug/WIRE, bitul care valideaz operarea este neprogramat, ca urmare este nevoie de programarea lui, ceea ce se realizeaz prin programarea SPI. La conectorul JTAG semnalul nTRST este un Reset al interfeei JTAG i nu este folosit.

9.4.3.Testarea prin JTAG Calea de testare Boundary Scan are rolul de a stabili valori logice i de a le citi la pinii de I/O. Toate circuitele care au interfa JTAG se conecteaz ntr-un lan prin TDI/TDO, testarea formnd un cuvnt serial lung. Secvena de test este generat de un controller exterior care apoi citete rezultatul i l compar cu cel ateptat. Se recomand ca MC s fie n Reset pe timpul testrii, altfel, la ieirea din mod test MC va rmne ntr-o stare nedeterminat. Intrarea n Reset se poate face comandnd pinul RESET cu un nivel low sau executnd instruciunea JTAG proprietar AVR_RESET. Dup intrarea n Reset instruciunea JTAG HIGHZ devine inutil. Pentru a putea lucra n acest mod bitul JTAGEN trebuie s fie programat i bitul JTD din registrul MCUCSR trebuie s fie 0. De asemenea se recomand ca tactul TCK de test s fie mai mare dect tactul intern. Instruciunile utilizate pentru testare sunt: 232

EXTEST (0H), instruciunea selecteaz calea de scanare ca registru de date pentru testarea conexiunilor exterioare. Pentru pinii de I/O se poate realiza invalidarea Pullup, se poate stabili direcia, se poate seta sau reseta un pin; IDCODE (1H), instruciunea (opional) selecteaz registrul de identificare (ID) de 32 de bii ca registru de date. Registrul ID conine: versiunea MC(4 bii), tipul MC (16 bii, ATmega 64 are 9602H) i fabricantul pe 11 bii (Atmel are 01FH); SAMPLE_PRELOAD (2H), instruciunea permite inspectarea pinilor de I/O fr a afecta funcionarea MC i de a prencrca datele de test n latch-ul de ieire, fr a le transmite la pinii de ieire. Calea de scanare este selectat ca registru de date; AVR_RESET (CH), MC este forat n Reset, mai puin controllerul TAP. Instruciunea este folosit i la programare; BYPASS (FH), se selecteaz registrul Bypass ca registru de date. Cnd este selectat acest registru ca i cale ntre TDI i TDO se scurteaz calea de scanare, mod utilizat cnd se testeaz alte circuite JTAG din sistem.

O schem bloc simplificat a unui pin de I/O testabil JTAG (schema complet este dat n foile de catalog) este dat n figura 9.18. Spre celula urmtoare Pullup Enable Celul n calea de scanare Output Control EXTEST
MUX

Vcc

MUX

Output Data

MUX

Pin exterior

Input Data

Semnale De la celula JTAG anterioar Figura 9.18: Schema simplificat a unui pin testabil JTAG Multiplexoarele comand funcionarea normal sau testarea JTAG. Celula de testare este conectat n lanul JTAG. Calea de testare la un ATmega 64 are 205 bii i poate fi gsit n foile de catalog. De exemplu, primii bii din lan sunt alocai portului F astfel:

233

Bit 0 1 2 3 4 4 .....

Pin PF0 PF0 PF0 PF1 PF1 PF1 .....

Semnificaie Pullup Enable Control Data Pullup Enable Control Data ......

Testarea modulelor de interfa integrate n MC impune nite precauii. Astfel de exemplu la modulul de interfa serial TWI (Two Wire Interface, compatibil cu I2C), se pot testa n mod normal cei 2 pini SCL i SDA i este accesibil semnalul de control TWIEN. Acest semnal este accesibil pentru a dezactiva un bloc din componena interfeei care controleaz viteza de cretere / descretere a frontului semnalelor. Setarea TWIEN i OC (Output control) poate duce la rezultate imprevizibile. O celul special care permite doar observarea este alocat semnalului de Reset. Tactul are de asemenea celule speciale, doar de observare. MC admite o gam larg de semnale de tact (RC intern, tact extern, cristal extern, rezonator ceramic) i validarea tactului este realizat cu celule de testare normale. Comparatorul analogic i convertorul analog digital au celule de test cu structuri speciale. Pentru a uura testarea circuitelor, un fiier de stimuli i rspunsuri de referin este n general disponibil pe site-urile productorilor. Aceste fiiere se numesc fiiere BSDL (Boundary Scan Description Language).

9.5.Unelte pentru testare JTAG Testarea plachetelor cu circuite se poate realiza la scar diferit n diferite situaii- pe scar larg post producie n firmele specializate sau n proiectare unde se testeaz un numr mic de plci. Din acest motiv echipamentele de testare JTAG sunt foarte diverse. O selecie din controllerele JTAG de productivitate mic prezentate n [2] este: Controllere sub forma unor module separate, prevzute cu interfa USB, Ethernet i FireWire, cu tact TCK pn la 40MHz, figura 9.19 stnga; Plachete pentru conectarea pe magistrale de tip PXI, PCI sau PCIe, cu tact TCK pn la 40MHz; Controllere compatibile DIMM care pot fi introduse n conectori DIMM; Module de dimensiuni mici i ieftine cu interfa USB, TCK pn la 6MHz, figura 9.19 mijloc; Montabile n dulapuri standard (Rack Mountable), figura 9.19 dreapta; Plci cu controller JTAG i spaiu de dezvoltare pentru utilizatori.

234

Toate aceste variante pot avea 1 pn la 4 controllere TAP i pot fi prevzute cu pini de I/O pentru preluarea semnalelor (de exemplu cel montabil n dulap are 256 pini de I/O).

Figura 9.19: Controllere JTAG- JT 37x7/TSI independent, JT 3705/USB cel mai ieftin, JT 37x7/RMI montabil n dulap standard de 19 n [3] este prezentat un aparat de testare AEROFLEX de mare productivitate, figura 9.20 stnga, prevzut pe lng JTAG cu 2048 de canale de testare prevzute cu pini. n [4], figura 9.20 dreapta este prezentat aparatul Digital Test cu 1400 de canale de testare. Cu aceste aparate se pot face teste automate la ieirea de pe linia de producie i se pot implementa strategii de testare. De regul, n activitatea industrial de mare productivitate testarea JTAG este combinat cu testarea cu pat de ace.

Figura 9.20: Aparatul AEROFLEX 4250 i Digital Test Eagle MTS180 Partea software pentru aplicaiile JTAG poate fi mprit n dou mari clase, cu nenumrate variante: Pe staii dedicate, cum este aplicaia AEX (Application Executor) [2], n care sunt definite nivele de acces. Cel care a proiectat placa i poate defini secvena de test JTAG i stabilete strategia de testare, n pai dependeni de paii anteriori de testare. La cel mai jos nivel de acces operatorul poate rula secvena de testare i observ rezultatele; n anumite situaii este util ca secvenele de test s fie ncorporate n programele utilizate i care sunt familiare utilizatorului. Astfel exist secvene realizate n LABVIEW, pentru C sau pentru Visual Basic. Acest tip de programe se numesc PIP. Un software important este cel de verificare BSDL (Boundary Scan Description Language), care verific discrepanele ntre fiierul de verificare BSDL i circuitul de testat, verific 235

erorile de sintax i de semantic. De asemenea se poate crea un fiier BSDL dac exist circuitul fizic.

Bibliografie [1] www.polarinstruments.com [2] www.jtag.com [3] http://www.aeroflex.com/ats/products/product/ATE/Test_Systems/ [4] http://www.digitaltest.de/digitaltest.php?loadtype=products&lang=en&filename=mts180

236