Obor: počítačové systémy



Podobné dokumenty
STŘEDOŠKOLSKÁ TECHNIKA 2013

CQ485. Opakovač a převodník linek RS485 a RS422. S aktivní i pasivní obnovou dat

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

Univerzální jednočipový modul pro řízení krokových motorů

Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš

Registrační teploměr

Způsoby realizace paměťových prvků

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

LOGIC. Stavebnice PROMOS Line 2. Technický manuál

TEPL2344 Technická dokumentace PŘEVODNÍK TEPLOTY. typ TEPL2344 s rozhraním RS232.

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA

ELEKTRONICKÁ ČASOMÍRA

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )


Elektronická stavebnice: Deska s jednočipovým počítačem

3. D/A a A/D převodníky

Detektor plynu. Srdcem zapojení je senzor plynu od firmy Figaro, která má v této oblasti dlouhou tradici.

Nabíječ NiCd a NiMh článků řízený mikroprocesorem

Laboratorní zdroj - 1. část

Zkouškové otázky z A7B31ELI

GO80 TargGR-EM. Čtečka tf hit pro panely Targha. Kompletní příručka

TENZOMETRICKÝ MĚŘIČ. typ Tenz

Krokové motory. Klady a zápory

Multimetr: METEX M386OD (použití jako voltmetr V) METEX M389OD (použití jako voltmetr V nebo ampérmetr A)

Rozšiřující modul s protokolem MODBUS

Návrh a realizace počítače skóre. Počítače skóre. Michal Černý. VOŠ a SŠSE Novovysočanská 48/280 Praha 9

24 bitový AD USB modul AD24USB. Návod k použití

POKLADNÍ DISPLEJ LCD. hotline: strana 1

L A B O R A T O R N Í C V I Č E N Í

Technická dokumentace ČTEČKA ČIPŮ DALLAS. typ DSRS

Třífázové statické činné elektroměry

1 Podrobná specifikace Yunifly Datasheet

Převodník USB na RS232. Milan Horkel

Laboratorní zdroj - 6. část

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ MEII KOMBINAČNÍ LOGICKÉ OBVODY

HPGL kontrolér pro plotr verze 1.0

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

POLOHOVÁNÍ ULTRAZVUKOVÉHO SENZORU

Integrované obvody. Obvody malé, střední a velké integrace Programovatelné obvody

Převodník sériového rozhraní SLC-67/73/74

Vestavné systémy BI-VES Přednáška 5

SPECIFIKACE DODÁVKY EPS A SERVISU EPS

TQS1. Inteligentní teplotní čidlo. Komunikace linkou RS485. Teplotní rozsah -55 C až +125 C. Obrázek září 2005 w w w. p a p o u c h.

Hlídač plamene SP 1.4 S

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Kompaktní procesní stanice

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

STAVEBNÍ NÁVODY 1 pro činnost v elektro a radio kroužcích a klubech

Obsah. Zobrazovací a ovládací prvky na čelním panelu. Účel použití. Elektrické zapojení. Obr : Analogový vstupní modul 07 AI 91

Maturitní témata - PRT 4M

s XR2206 ale navíc je zapojení vybaveno regulací výstupní amplitudy. vlivu případ- ného nevhodného napájení na funkci generátoru.

Zadávací dokumentace

ROZHRANÍ 4 VSTUPŮ/VÝSTUPŮ. 4x OPTICKY ODDĚLENÉ LOG. VSTUPY 4x RELÉ SPÍNACÍ VÝSTUPY OVLÁDÁNÍ: LINKA RS232

Převodník na DIN lištu s frekvenčním výstupem typ RF1

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Adresovatelný převodník rozhraní RS48/RS232 ELO E250. Uživatelský manuál

Programovatelná logika

KS 40-1 pro hořáky Speciální regulátor pro průmyslové hořáky

RADIOVÝ KOMUNIKAČNÍ SYSTÉM WM868 WACO

ŘÍDÍCÍ ČLEN GCD 411. univerzální procesorový člen pro mikropočítačové systémy. charakteristika. technické údaje

KOMBINAČNÍ LOGICKÉ OBVODY

) informace o stavu řízené veličiny (předávaná řídícímu systému) - nahrazování člověka při řízení Příklad řízení CNC obráběcího stroje

ULTRAZVUKOVÝ DÁLKOMĚR

PROTOKOL O LABORATORNÍM CVIČENÍ

Signálové a mezisystémové převodníky

Ulog univerzá lnízapisovač a zobrazovač napě tí

8. Struktura údaj na LCD displeji

Řídící jednotka pro 2 čtečky SL20

Administrace počítačových sítí. WEB a LPT

Dálkové ovládání GB060. Umožní jednoduché ovládání otopné soustavy. Osm binárních vstupů / výstupů a jeden reléový výstup

Popis zapojení: < 27 dbµv. < 33 dbµv LW. S/N ratio (60 dbµv): > 57 db FM mono > 52 db AM

Návrh konstrukce odchovny 2. dil

Inovace bakalářského studijního oboru Aplikovaná chemie. Reg. č.: CZ.1.07/2.2.00/

!" " #! "# #$! % " &" následujících podmínek: 1. Celý text musí být kopírován bez úprav a se zahrnutím všech stránek. 2. '&!

C 208. Dálkové ovládání GB060. Aplikační list. Dálkové ovládání regulátorů a přenos technologických informací telefonním terminálem GB060

Úloha- Systém sběru dat, A4B38NVS, ČVUT - FEL,

Indikátor stavu pojistky MEg72. Uživatelská příručka

4. Zpracování signálu ze snímačů

Signal Mont s.r.o Hradec Králové T71981 List č.: 1 Počet l.: 9. TECHNICKÝ POPIS ELEKTRONICKÉHO ZDROJE BZS 1 - č.v /R96 T 71981

1. Programování PLC. Programovatelné automaty II - 1 -

8. Operaèní zesilovaèe

GENEROVÁNÍ ZVUKŮ POMOCÍ MIKROKONTROLÉRŮ

UDAQ-1216A UDAQ-1416A. multifunkèní modul pro rozhraní USB

evodníky Univerzita Tomáše Bati ve Zlíně Ústav elektrotechniky a měření Přednáška č. 14 Milan Adámek adamek@fai.utb.cz U5 A

Voděodolný tloušťkoměr MG-401 Obsah:

Podstanice DESIGO PX Modulární řada s rozšiřujícím modulem

REGULOVANÝ STABILIZOVANÝ ZDROJ

TCL. Měřící modul proudu 4-20mA s výstupem RS485

XXXIII Celostátní olympiáda znalostí elektriky a elektroniky Krosno 25. března 2010 TEST PRO ELEKTRONICKOU SKUPINU

4. Elektronické logické členy. Elektronické obvody pro logické členy

Generátor funkcí DDS 3.0

Odrušení plošných spoj Vlastnosti plošných spoj Odpor Kapacitu Induk nost mikropáskového vedení Vlivem vzájemné induk nosti a kapacity eslechy

FLOOR TALKER. Uživatelský návod verze 1.0. TELSYCO s.r.o. Prostřední 627/ Praha 4.

Dvoukanálový monitor absolutního chvění MMS 6120

SB8485. Převodník USB na 8x RS485/RS září 2010 w w w. p a p o u c h. c o m

ÚAMT FEKT VUT. mikroprocesor Rabbit. Diplomová prá ce. Tomá škreuzwieser. Brno

VY_32_INOVACE_ENI_2.MA_04_Zesilovače a Oscilátory

Hardwarová realizace konečných automatů

DM4.3 odmagnetovací modul

Transkript:

VYSOKÁ ŠKOLA POLYTECHNICKÁ V JIHLAVĚ Katedra elektrotechniky a informatiky Obor: počítačové systémy Univerzální tester logických integrovaných obvodů bakalářská práce Autor: Tomáš Kučera Vedoucí práce: Ing. Bc. David Matoušek Jihlava 2012

Anotace Tato práce se zabývá konstrukcí jednoduchého, mikroprocesorem řízeného testeru kombinačních a sekvenčních TTL kompatibilních logických obvodů. Obsahuje návrh a realizaci hardware a vytvoření potřebného programového vybavení testeru. Součástí je též vytvoření software pro komunikaci s testerem a uživatelské rozhraní pro prezentaci výsledků testů pro OS Windows. Popisuje způsoby testování, tvorbu definičních souborů pro testování různých integrovaných obvodů a uvádí příklady pro některé obvody. Obsahuje návod k interpretaci výsledků testů. Klíčová slova testování, ATmega16, TTL, CMOS, AVR, MAX232, TTL úrovně Abstract This work deals with a design of simple microprocessor controlled tester of sequential and combinational TTL compatible logic integrated circuits. Design of hardware and testing software is included. Software for communication and user interface for Windows is a part of this work. It describes methods of testing, creating of definition files of various integrated circuits and some examples. It contains instructions for interpreting the test results. Keywords testing, ATmega16, TTL, CMOS, AVR, MAX232, TTL levels

Na tomto místě bych chtěl poděkovat Ing. Bc. Davidu Matouškovi za cenné rady ke konstrukci testeru a poskytnutí technické základny pro jeho montáž a oživení. Také děkuji své rodině, za veškerou podporu a toleranci po celou dobu studia.

Prohlašuji, že předložená bakalářská práce je původní a zpracoval jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též AZ ). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutím licence. V Jihlavě dne 24. dubna 2012 Tomáš Kučera

Obsah 1 Úvod...7 2 Teoretické základy práce...8 2.1 Atmel AVR ATmega 16... 8 2.1.1 Porty... 9 2.1.2 Paměť... 10 2.1.3 USART... 10 2.1.4 Charakteristické a mezní hodnoty... 11 2.2 MAX232...11 2.2.1 Základní vlastnosti...11 2.3 TTL obvody...12 2.4 CMOS obvody... 13 2.5 TTL/CMOS obvody... 14 3 Návrh řešení... 15 3.1 přehled požadavků... 15 3.2 Analýza požadavků... 16 3.3 HW testeru...21 3.4 Firmware testeru...23 3.5 Řídicí software... 25 3.6 Popis komunikace... 26 4 Testovací případy... 27 5 Závěr... 29 6 Seznam použité literatury... 32 7 Seznam obrázků... 33 8 Obsah přiloženého CD...34

1 Úvod Jako téma své práce jsem si vybral návrh testeru logických integrovaných obvodů, vypsaný Ing. Matouškem. Toto téma je mi blízké, protože v době mého studia na Střední průmyslové škole v Pardubicích, v době prvního průniku tehdy osmibitových mikropočítačů na český trh, jsme jako studenti ve škole i mimo školu intenzívně vymýšleli a stavěli různá, tehdy na trhu nedostupná, nebo jen velmi omezeně dostupná zařízení. Počínaje zesilovači, přes různé doplňky do automobilů jako byly otáčkoměry, indikátory palubního napětí, až pro celé mikropočítače sestavené kromě mikroprocesoru a pamětí jen z logických obvodů a samozřejmě také různé počítačové periferie. Zároveň s tím jsme se učili programovací jazyky. Téma návrhu testeru logických obvodů mě tak vrátilo o dvě desetiletí zpět, do doby, kdy na univerzálních deskách plošných spojů mi pod rukama vznikaly ručně prodrátované obvody různé složitosti a různého účelu. Při tomto způsobu propojování nebyla nouze o lecjaké chyby v zapojení, a co je hlavní, velká většina používaných součástek nebyla použita poprvé. Častokrát jsme v rámci praxe, dílenských prací nebo při zájmových aktivitách rozebírali spolupracujícími podniky vyřazenou techniku za účelem vytěžení maxima použitelných součástek. Nezřídka pak docházelo k chybám, jejichž příčiny byly se samotnou logickou sondou těžko odhalitelné a nemusely být způsobeny jen chybou v zapojení. Už tehdy by se byl takový tester, který je předmětem této práce, hodil. V podobné pozici se pak často nacházeli a i dnes nacházejí též vyučující, kteří při demonstračních pokusech v hodinách číslicové techniky nechávají studenty zapojovat různě složité logické obvody a nezřídka musí operativně rozhodnout, zda absence očekávaného chování obvodu je způsobena chybným zapojením nebo vadou součástek. Jednoduchý tester, pokud možno nenáročný na obsluhu je pak dobrým pomocníkem při rychlém vyřešení takové situace. Mé první myšlenky směřovaly k řešení s pomocí posuvných registrů, čítače a multiplexeru, to vše ovládané prostřednictvím sériového nebo USB portu. Hned v prvním kole však bylo toto řešení po konzultaci zavrženo pro zbytečnou složitost, jak obvodovou, tak řídicího software. Bylo rozhodnuto, že veškeré operace provádějící testování obstará mikroprocesor z rodiny AVR ATmega s podporou sériové komunikace po sériovém RS232 rozhraní. Řídicí program ve stolním počítači pak zajistí pouze čtení definice testů, komunikaci s testerem a interpretaci výsledků. 7

2 Teoretické základy práce Jak plyne ze zadání, návrh testeru vyžaduje zajištění obvodové kompatibility mezi porty mikroprocesoru a testovaným obvodem, při zachování možnosti softwarově odpojit testovaný obvod od napájecího napětí. Vzniká tak potřeba ověřit kompatibilitu napěťových úrovní TTL a CMOS obvodů s ohledem na úbytky napětí na spínacích tranzistorech. Dalším podobným problémem je přizpůsobení komunikačních úrovní RS232 úrovním TTL zpracovatelným pomocí mikroprocesoru. V neposlední řadě je třeba navrhnout konkrétní využití jednotlivých portů mikroprocesoru, s ohledem na jejich alternativní funkce a také jejich rozložení na pouzdru obvodu tak, aby plošný spoj testeru nebyl zbytečně komplikovaný. Obrázek 1: Porovnání logických úrovní u jednotlivých technologií integrovaných obvodů [1] 2.1 Atmel AVR ATmega 16 Atmel AVR ATmega16 je osmibitový jednočipový mikropočítač s redukovanou instrukční sadou (RISC architekturou), nízkým příkonem, šestnácti kilobajty programové flash paměti, jedním kilobajtem statické RAM pro data a interní EEPROM pamětí o velikosti 512 bajtů. Obsahuje 32 osmibitových pracovních registrů, desetibitový AD převodník, dva osmibitové a jeden šestnáctibitový čítač/časovač, USART obvod pro sériovou komunikaci a umí obsloužit až čtyři osmibitové 8

obousměrné porty s možností programového připojení pull up rezistorů a proudovou zatížitelností až 40 ma (s omezením na celkový odběr celého obvodu 200 ma). Dodává se v pouzdrech PDIP se čtyřiceti vývody nebo TQFP/QFN/MLF se čtyřicetičtyřmi vývody. Je vyroben CMOS technologií. Pro účely této práce dále popíši pouze využité periferie, použité vývody pouzdra PDIP40 a paměť procesoru. 2.1.1 Porty ATmega16 obsahuje čtyři obousměrné porty PA PD s třístavovými výstupy. Každý jednotlivý pin může být konfigurován samostatně. Všechny piny mají na vstupu Schmittův obvod. Všechny piny jsou řízeny trojicí registrů. První (DDRx) řídí směr každý pin tak může být nezávisle na ostatních konfigurován jako vstupní nebo výstupní. Druhý registr (PORTx) určuje logickou úroveň na výstupním pinu a nebo, v případě konfigurace jako vstup, připojení pull up rezistoru na vstupní linku. Třetí registr (PINx) slouží k zachycení vstupní hodnoty. Nezávisle na nastavení pinů lze použití pull up rezistorů zablokovat PUD bitem v SFIOR registru. Obrázek 2: Rozložení pinů pouzdra PDIP40 procesoru ATmega16 [5] 9

Většina pinů má alternativní funkci. Při využití pinu pro vstup/výstup alternativního signálu je potřeba respektovat jeho význam a podle toho nastavit konfiguraci pinu na vstup nebo výstup. V zapojení testeru budou alternativně využity pouze piny TxD a RxD pro komunikaci po sériové lince. K jejich nastavení slouží registr DDRD, kde bude třeba nastavit binární hodnotu 00000010, čímž budou nepoužité piny portu PD a pin RxD nastaveny jako vstupní a pin TxD nastaven jako výstupní. 2.1.2 Paměť ATmega16 má paměť rozdělenu na 16 kilobajtů flash paměti pro program, 1 kilobajt statické RAM paměti pro data a navíc ještě 512 bajtů EEPROM paměti pro data. Programová paměť je z bezpečnostních důvodů rozdělena na dvě sekce, sekci obsahující bootloader a sekci pro uživatelský program. Měla by vydržet nejméně 10 tisíc přepisů programu. Datová RAM paměť obsahuje v první řadě pole 32 pracovních registrů, dále 64 vstupně/výstupních registrů a zbývající paměť je k volnému užití. Kompilátor uživatelského programu do ní standardně ukládá veškeré proměnné i konstanty toto chování lze obejít pomocí zvláštních instrukcí a konstanty uložit do paměti programu. EEPROM paměť je dostupná pomocí vstupně/výstupních operací a může sloužit k uložení provozních dat, která by neměla být ztracena při případném přerušení napájení nebo jiné neočekávané události. V této práci nebude použita. 2.1.3 USART Obvod pro sériovou komunikaci umožňuje plně duplexní komunikaci, jak synchronní, tak asynchronní. Podporuje formáty s pěti až devíti datovými bity, jedním nebo dvěma stopbity a lichou/sudou/žádnou paritou. Přenosovou rychlost lze nastavit v širokém rozsahu, obvod umí generovat přerušení při příjmu/odeslání znaku, detekovat chyby datových rámců a má mnoho dalších vlastností přesahujících nároky této práce. Pro nastavení přenosové rychlosti slouží registr UBRR, a pro nastavení komunikace a datového formátu registry UCSRB a UCSRC. Je třeba připomenout, že u ATmega16 slouží osmý bit UCSRC (URSEL) pro výběr mezi registry UBRRH a UCSRC. 10

Příklad nastavení USART obvodu v jazyce AVR C bez parity, asynchronní, jeden stopbit, osmibitový datový rámec a rychlost přenosu 9600Bd: DDRD = 0B00000010 //tx out, rx in // UBRR=(F_CPU/(BAUD*16) 1) = 10M/16/9600 1=64 UBRRH = 0 //9600 UBRRL = 64 //9600 UCSRB = (1 << TXEN) (1 << RXEN) //8bit, tx, rx UCSRC = (1 << URSEL) ( 1 << UCSZ1) ( 1 << UCSZ0) ( 0 << USBS) 2.1.4 Charakteristické a mezní hodnoty Mikroprocesor ATmega16 může pracovat v širokém teplotním rozsahu teplot od 55 C do +125 C, při maximálním napájecím napětí 6 V. Maximální zatížitelnost jednotlivého výstupu je 40 ma, s omezením na odběr celého obvodu 200 ma. Pro tuto práci jsou zejména důležité charakteristické hodnoty vstupních a výstupních úrovní logických hodnot. Pro napájecí napětí 5 V činí maximální napětí reprezentující logickou nulu 0,7 V, minimální napětí reprezentující logickou jedničku 4,2 V. Vstupní úrovně jsou definovány s větší tolerancí na 1/5 a 3/5 aktuálního napájecího napětí. Typický odběr celého obvodu na kmitočtu 8MHz při napájecím napětí 5 V je udáván na 12 ma, maximálně 15 ma, samozřejmě v periferiemi nezatíženém stavu. 2.2 MAX232 Obvod MAX232 slouží k převodu komunikačních úrovní RS232 na logické úrovně TTL/CMOS a opačně. K jeho činnosti postačuje napájecí napětí 5 V, pro získání potřebných napětí je třeba jeho zapojení doplnit čtyřmi kondenzátory s kapacitou 1µF až 22µF. Vygenerování logických úrovní RS232 pak zajistí jeho vnitřní obvody. Konkrétní vlastnosti a doporučované kapacity kondenzátorů se liší podle výrobce a též řady konkrétního obvodu. Jak shodně uvádí [7] a [8], je třeba vždy zkontrolovat konkrétní obvod podle datasheetu. Do této práce bylo převzato osvědčené zapojení z [2]. 2.2.1 Základní vlastnosti MAX232 obsahuje obvody pro generování napětí pro logické úrovně RS232, dva RS232 budiče a dva RS232 přijímače. Napětí pro RS232 výstupy může v závislosti na vnějších podmínkách a kapacitě kondenzátorů dosahovat až ±15 V. RS232 přijímače akceptují vstupní úrovně až do ±30 V. 11

2.3 TTL obvody TTL (transistor transistor logic tranzistorově tranzistorová logika) vychází z použití technologie bipolárních křemíkových tranzistorů. Tyto obvody používají napájecí napětí 4,5 až 5,5 V, logické úrovně jsou definovány v rozmezí 0 až 0,8 V pro logickou nulu a 2 až 5 V pro logickou jedničku. V zakázaném pásmu 0,8 až 2 V není funkce obvodu definována. Obrázek 3: Typické zapojení TTL hradla NAND podle [4] Velmi výstižný popis provedení a funkce TTL obvodu uvádí ve své práci Petr Olivka [4]: TTL (Tranzistor Tranzistor Logic) je dosud nejrozšířenější technologií při výrobě integrovaných obvodů SSI a MSI. Je to hlavně díky jejich jedinému napájecímu napětí +5 ± 0,25 V, poměrně vysokému logickému zisku a také nízké ceně. Charakteristické je užívání víceemitorových tranzistorů. Víceemitorový tranzistor se totiž relativně snadno vyrábí standardní planární technologií a jeho výroba je ekonomičtější než výroba několika diod. Zapojení logického členu NAND se dvěma vstupy je na obrázku 3. Hradla tohoto logického členu obsahuje např. obvod MH7400 (5400,8400). Je li na jeden emitor vstupního tranzistoru T1 přivedena úroveň logické 0, začne tímto tranzistorem protékat proud v předním směru, tranzistor T1 se otevře a z báze tranzistoru T2 je velmi rychle odveden přebytečný náboj přes malou impedanci otevřeného tranzistoru T1. Tak je dosaženo velké spínací rychlosti při zavírání tranzistoru T2. Připojením všech emitorů tranzistoru na úroveň logické 1, bude tranzistor T 1 pracovat v inverzním zapojení, tj. zamění se funkce emitoru a kolektoru. Přitom se otevře tranzistor T2, a to spojením báze přes otevřený přechod báze kolektor tranzistoru T1, polarizovaný nyní v propustném směru, a přes odpor R1 se zdrojem napájecího napětí. Výstupní obvod je zapojen jako sériový dvojčinný stupeň. U dvojice 12

tranzistorů T3 a T4 je patrné, že bude pracovat vždy pouze jeden z nich. Záleží na tom, jak velké kladné napětí a v jakém okamžiku přijde na báze těchto tranzistorů. K otevření tranzistoru T4 stačí mnohem menší kladné napětí (přibližně 0,7 V) než pro otevření tranzistoru T3, vzhledem k uzemnění emitoru tranzistoru T4. Báze tranzistoru T3 musí tedy dostat mnohem větší kladné napětí, aby se tranzistor otevřel a tekl jím proud. Je li na všech emitorech velké kladné napětí (logická 1), uvedou se tranzistory T2 a T4 do nasyceného stavu a na výstupu obvodu je malé napětí, blížící se potenciálu země. V tomto stavu zajišťuje dioda D lepší uzavření tranzistoru T3. Je li na kterémkoliv vstupu malé napětí (logická 0), jsou tranzistory T2 a T4 uzavřeny a na výstupu je velké napětí. Nejznámějšími TTL obvody jsou obvody řady 7400, vyráběné mnoha výrobci v mnoha modifikacích (L, LS, ALS atd.) 2.4 CMOS obvody CMOS (Complementary Metal Oxide Semiconductor) obvody se vyznačují především velmi nízkou spotřebou v klidovém stavu a velkou odolností proti šumu. Tato technologie též umožňuje vyšší hustotu součástek na čipu. Napájecí napětí může být 4 až 15 V, v současné době ale se zvyšující se hustotou prvků se snižuje napájecí napětí až na hodnoty 3,3 V, 2,5 V a níže. Některé CMOS obvody na vstupu tolerují TTL úrovně a je možné je použít ve spojení s TTL logikou. CMOS obvody obecně jsou náchylné na poškození statickou elektřinou a při manipulaci s nimi je potřebné na to brát zřetel. Nízká spotřeba obvodů plyne ze zcela odlišného zapojení jednotlivých prvků. Obrázek 4: Typické zapojení CMOS hradla NAND podle [4] 13

Funkce takto jednoduchého obvodu je jasně patrná z obrázku 4 kombinace dvou logických jedniček na vstupech přivádí na výstup úroveň log. 0 a jakákoli jiná kombinace přivádí log. 1 (napětí U). Typickými představiteli CMOS obvodů jsou obvody řady 4000. 2.5 TTL/CMOS obvody Zvláštní řadou obvodů jsou obvody CMOS přizpůsobené TTL úrovním, typicky se jedná o řadu 74HCT00 a obvody z ní odvozené. 14

3 Návrh řešení Před započetím prací na návrhu hardware i software testeru je třeba nalézt a definovat limity a požadavky, které musí návrh splňovat a nalézt taková řešení, která daným limitům a požadavkům vyhoví. U hardwarové části se jedná zejména o dosažení logických úrovní v tolerančních pásmech jednotlivých technologií integrovaných obvodů a komunikačního rozhraní, u softwarové části o způsob identifikace obvodu, návrh komunikace s řídicím počítačem a zejména návrh metod testování. Nelze opominout též obvody chránící mikroprocesor proti přepólování napájecího napětí, zkratu v testovaném obvodu a podobně. 3.1 Přehled požadavků Požadavky zadání testování TTL kompatibilních logických integrovaných obvodů se čtrnácti a šestnácti vývody připojení napájecího napětí +5 V na různé piny dle typu testovaného obvodu připojení GND na různé piny dle typu testovaného obvodu komunikace sériovou linkou RS232 bude použit externí stabilizovaný zdroj 5 V/100 ma tester bude obsahovat ochranné prvky řídicí software bude vytvořen v prostředí C++Builder řídicí software bude umožňovat jednoduchou definici typu testovaného obvodu Požadavky na řídicí software realizace uživatelského rozhraní jednoduchá definice typu testovaného obvodu a testovacích metod nastavení mikroprocesoru testeru podle typu testovaného obvodu předání testovacích sekvencí mikroprocesoru testeru přečtení a prezentace výsledků testu 15

Požadavky na firmware testeru příjem instrukcí ze sériové linky nastavení napájení testovaného IO podle instrukcí kontrola napájení provedení testovacích sekvencí a vyhodnocení výsledků předání výsledků sériovou linkou zpět do PC 3.2 Analýza požadavků Požadavek na testování čtrnácti a šestnáctivývodových obvodů lze realizovat pomocí patice DIL16 s tím, že čtrnáctivývodové obvody budou vsazeny k hornímu nebo dolnímu okraji a jedna dvojice pinů zůstane nezapojena. Tak budou obsazeny dva osmibitové porty mikroprocesoru. Z datasheetů obvodů řad 74xx a 40xx plyne, že výhodnější varianta z pohledu potřeby připojení napájení bude vsazení obvodu k hornímu okraji patice. Pak bude třeba zajistit přivedení napájecího napětí +5 V na piny 16, 4 a 5 a zároveň přivedení GND na piny 7, 8, 12 a 13 patice. Tyto spínače tedy obsadí 7bitů dalšího z portů mikroprocesoru. Potřeba sériové komunikace znamená zajistit obousměrný převod RS232 na TTL úrovně a obsadí TXD a RXD vývody USART obvodu mikroprocesoru, které jsou společné s portem PD. Z analýzy prvních čtyř požadavků zadání a rozložení pinů na pouzdře DIP40 mikroprocesoru tedy plyne, že porty PA a PC budou použity k napojení na patici s testovaným obvodem, sedm pinů portu PB bude použito k řízení napájení testovaného obvodu a port PD, s výjimkou sériové komunikace zůstane volný. Pro převod RS232 na TTL bude použit osvědčený obvod MAX232 v obvyklém zapojení. Obrázek 5: Blokové schéma testeru 16

Pro spínání napájecího napětí pro testovaný obvod vyhoví jakékoli tranzistory s Uce > 7 V a Ic > 50 ma, nutné je přihlédnout k napětí Uce v sepnutém stavu abychom úbytkem na spínacích tranzistorech příliš neovlivnili TTL úrovně na testovaném obvodu. Tranzistory řady BC5x8 mají Ucemax = 30 V, Icmax = 100 ma a Ucesat mezi 90 až 250 mv. Celkový úbytek na obou spínacích tranzistorech tedy bude maximálně 0,5 V při Ic = 100 ma této hodnoty proudu však nemůžeme dosáhnout, tedy úbytek bude znatelně menší, reálně lze počítat s úbytkem okolo 0,2 V. Z grafického zobrazení vstupních tolerancí a výstupních hodnot obvodů jednotlivých technologií (viz [2]) a procesoru ATMega16, zakresleného pro nejhorší variantu, lze odečíst, že logické úrovně pro vzájemnou komunikaci u všech IO vyhoví, byť někdy jen velmi těsně. HW testeru musí umět na pokyn obsluhy/řídicího programu odpojit testovaný obvod od napájení a umožnit tak jeho vyjmutí z patice Obrázek 6: Porovnání logických úrovní TTL a CMOS obvodů v zapojení testeru Použití externího stabilizovaného zdroje nezakládá žádné nároky na řešení napájecích obvodů, kromě ochrany proti přepólování, realizované diodou zapojenou v nepropustném směru paralelně k napájecímu konektoru. Ochranu spínacích tranzistorů pro případ zkratovaného testovaného obvodu zajišťuje vratná pojistka 100 ma v napájecí větvi. 17

Obrázek 7: Ochrana portu ATmega napěťové poměry při logické úrovni L Ochranu výstupů mikroprocesoru proti zkratu v testovaném obvodu zajišťují rezistory o velikosti 100Ω zapojené mezi mikroprocesor a testovaný obvod. Jak ukazují obrázky 7 a 8, je tato hodnota kompromisem mezi ochranou proti zkratu v testovaném obvodu při vysoké logické úrovni, kdy výstup mikroprocesoru umí do zátěže poskytnout maximální proud 40 ma při napětí 4,2 V, a zajištěním správné funkce při nízké logické úrovni, kdy při typickém proudu TTL obvodu 1,6 ma nesmí úbytek na ochranném rezistoru ovlivnit rozpoznání nízké logické úrovně testovaným obvodem napětí logické úrovně L může na výstupech mikroprocesoru dosáhnout až 0,7 V, přičemž TTL obvody tolerují maximálně 0,8 V. Přenos vysoké úrovně tyto rezistory významně neovlivní proud je v řádech desítek až stovek mikroampér a toleranční pásmo vysoké úrovně je významně širší. Obrázek 8: Ochrana portu ATmega napěťové a proudové poměry při zkratu v měřeném obvodu 18

Uživatelské rozhraní bude vytvořeno v C++ Builderu musí obsahovat načtení definice testovaného obvodu, start testování a zobrazení výsledku. V případě negativního výsledku je třeba zobrazit vadnou testovací kombinaci. Uživatelské rozhraní bude řešeno jako jednoduché s minimem ovládacích prvků, grafickým zobrazením výsledků testu a terminálovým způsobem zobrazení informací o průběhu testu. Bude možno přepnout tester do režimu zobrazení detailů o průběhu testování. Pro definiční soubor testovaného obvodu bude použit formát Windows ini souboru, ve kterém bude popsáno, který pin je vstupní, který výstupní a které piny jsou napájecí. Dále je v něm třeba definovat metodu testování pomocí testovacích obrazců nebo popisu logických funkcí. Je třeba zavést rozlišení kombinačního a sekvenčního obvodu. Po důkladném zvážení všech pro a proti bude pro kombinační obvod použito testování pouze pomocí testovacích obrazců tvorba rovnic popisujících činnost sekvenčního obvodu je neporovnatelně delší než přepsání jeho funkce z logických průběhů do testovacích obrazců. Dalším z problémů se ukázala být paměťová náročnost zpracování takové rovnice v mikroprocesoru. Komentovaný návrh ini souboru pro obvod 7400 je v příloze. Předávání příkazů, testovacích vzorů a rovnic do testeru bude řešeno sériovou RS232 linkou, konfigurovanou na rychlost 9600Bd, 8bitů, jeden stopbit, bez parity. Data (testovací obrazce a rovnice) budou předávána v ASCII kódu. Celý příkazový rámec bude mít následující strukturu: <příkaz><počet znaků dat><data> <data><kontrolní součet>. Příjem každého znaku bude testerem potvrzen. Informace z testeru pro řídicí program budou používat stejný rámec, ale znaky nebudou potvrzovány. Testovací obrazce budou předávány v ASCII řetězci a na bitový formát převedeny a zpracovány ve firmware testeru stejně jako informace o napájení a nezapojených pinech testovaného obvodu. Logická funkce zapsaná rovnicí bude předávána v postfixové notaci překlad z infixové notace z ini souboru zajistí řídicí SW při jeho načtení. Postfixový zápis (neboli tzv. obrácená polská notace) byl zvolen pro zjednodušení programu v testeru nebude nutno parsovat celý řetězec rovnice z ini souboru, ale postačí postupné zpracování přijatého zápisu při potřebě jednoduché implementace bitového zásobníku. Princip překladu infixového zápisu logické rovnice pin4=!((pin1 pin2)&pin3)): krok 1: znak! alias NOT je vložen do zásobníku krok 2 a 3 : závorky jsou zahozeny krok 4: pin1 odešleme do výstupu krok 5: alias OR vložíme do zásobníku krok 6: pin2 odešleme do výstupu 19

krok 7: uzavírací závorka odebere ze zásobníku OR a odešle na výstup krok 8: & alias AND vložíme do zásobníku krok 9: pin3 odešleme do výstupu krok 10: uzavírací závorka odebere ze zásobníku AND a odešle na výstup krok 11: uzavírací závorka odebere ze zásobníku NOT a odešle na výstup Výsledný řetězec pin4=pin1 pin2 pin3 &! je postfixovým zápisem vstupní logické rovnice, který bude použit ve firmware testeru. Zpracování postfixového zápisu logické rovnice: Postfixový zápis logické rovnice pin4=pin1 pin2 pin3 &! s výhodou zpracujeme opět s použitím zásobníku: krok 1: hodnotu pin1 vložíme do zásobníku krok 2: hodnotu pin2 vložíme do zásobníku krok 3: provedeme logický součet posledních dvou hodnot v zásobníku a výsledek uložíme do zásobníku krok 4: hodnotu pin3 vložíme do zásobníku krok 5: & provedeme logický součin posledních dvou hodnot v zásobníku a výsledek uložíme do zásobníku krok 6:! provedeme negaci poslední hodnoty v zásobníku a výsledek uložíme do zásobníku krok 7: řetězec zápisu rovnice končí hodnota v zásobníku je hodnotou, kterou má nabýt pin4 testovaného obvodu zkontrolujeme, zda zásobník je prázdný a nedošlo k chybě v zápisu. Testování bude mít následující průběh: načtení informací z ini souboru nastavení napájení kontrola napájení a klidového stavu obvodu (a v případě chyby jeho odpojení) test pomocí testovacích obrazců (bude li požadován) test pomocí rovnic (bude li požadován) zobrazení výsledku testu 20

3.3 HW testeru Obrázek 9: Schéma zapojení testeru 21

Obrázek 10: Provedení desky plošných spojů Obrázek 11: Osazovací plán 22

Seznam součástek: C1, C2, C3, C4 C5, C8, C9, C10, C11, C12 C6, C7 IC1 IC2 IC3 Q1 R1, R2, R3 R4, R5, R6, R7 R8, R9, R10, R11 R12, R13, R14 R15 až R30 R31 T1, T2, T3 T4, T5, T6, T7 D1 P1 X1 Značení součástek dle PSelectronic.cz CE22M/16V KER100n/50V KER22p ATMEGA16 DIP40 SOCKET 16 MAX232N DIP16 10MHz QM10 100k 10k 4k7 1k SMD 100R 470R BC558 BC548 1N4004 polyswitch PTC 100 ma RXE010 CANON 9PIN 3.4 Firmware testeru Firmware testeru je realizován v jazyce C. Jeho základem je programová smyčka, ve které čeká na příchod příkazu ze sériového rozhraní. Příkaz (konkrétní znak) je vyhodnocen a podle jeho významu jsou následně přečtena vstupní data nebo proveden test, případně vydáno hlášení o jeho nerozpoznání. Firmware lze nařídit, aby kromě hlášení o výsledcích testů vydával také hlášení o průběhu testování a některých hodnotách testovacích proměnných. Tato funkce se zapíná v uživatelském rozhraní řídicího programu jako debug režim. Firmware testeru umožňuje testování kombinačních i sekvenčních logických obvodů. Firmware je tvořen několika programovými moduly: modul pro vyhodnocení zapojení obvodu a nastavení maskovacích proměnných, které zajišťují odmaskování napájecích a nezapojených vývodů testovaného obvodu (acinit.c) modul pro nastavení a kontrolu napájení testovaného obvodu (supply.c) 23

modul pro test pomocí testovacího obrazce (pattern.c) modul pro vytvoření sady obrazců z testovací rovnice obrazce jsou generovány a testovány jednotlivě, vytvoření celé sady najednou by v případě složitější rovnice a více vstupních vývodů testovaného obvodu vedlo k přetečení paměti (formula.c) komunikační modul zajišťující inicializaci a obsluhu USART, příjem a vysílání znaků a sekvencí znaků (usart.c) hlavní smyčku programu zajišťující inicializaci proměnných, USART obvodu a provádění jednotlivých příkazů (tester.c) Veškeré textové konstanty, použité pro komunikaci jsou umístěny do paměti programu za použití maker PROGMEM. Tato vlastnost knihovny avr/pgmspace.h umožňuje neukládat konstanty do paměti proměnných, kam by byly překladačem automaticky vloženy. Zbývá tak více volné paměti pro data. Použití těchto konstant v programu však vyžaduje vytvoření pole odkazů typu PGM_P a jejich načtení do proměnné před použitím. Celou konstrukci lze zjednodušeně zapsat takto: const char string1[] PROGMEM ="nejaky text 1" const char string2[] PROGMEM ="nejaky text 2" const char string3[] PROGMEM ="nejaky text 3" PGM_P table1[] PROGMEM={string1,string2,string3} char printbuffer[50]... strcpy_p(printbuffer, (PGM_P)pgm_read_word(&(table1[0]))) nejaka vystupni_funkce(printbuffer)... Podrobněji lze nalézt v dokumentaci k AVR knihovnám [6] Samotné testování probíhá podle přednastaveného obrazce stavů pinů v předpise zadaný řetězec se zpracuje tak, aby se oddělily vstupní a výstupní hodnoty, nastaví se porty mikroprocesoru tak, aby odpovídaly vstupům a výstupům testovaného obvodu a na jeho vstupy se nastaví obrazcem zadané hodnoty. Následně se sejme hodnota z jeho výstupů a porovná s hodnotami očekávanými. V případě nesouladu je reportována chyba doplněná očekávanou hodnotou a identifikací pinu, kde vznikl rozdíl. Zobrazení a interpretace viz kapitola 4. Celý algoritmus je v příloze na straně 6. V testování pomocí zápisu logické rovnice jsou postupně vypočítávány všechny možné logické kombinace vstupů, ke každé vypočtena odpovídající kombinace výstupů a z těchto hodnot vytvořeny obrazce, které jsou postupně předávány k otestování podle předchozího odstavce. Ke každé vstupní kombinaci vždy jeden obrazec. Obrazce nejsou 24

ukládány, protože v případě obvodu s více vstupy by bylo nutno vypočítat a uložit velké množství řetězců, což není možné vzhledem k relativně malé velikosti datové paměti. Ze způsobu výpočtu plynoucí odchylky v zobrazení výsledku testování jsou popsány v kapitole 4. K výpočtu je použit postfixový zápis rovnice, jak bylo naznačeno v kapitole 3.2. Bitový zásobník je implementován následujícím způsobem: int zasobnik = 0 unsigned char zasobnikcounter = 0 unsigned char push(unsigned char bit) { //bitovy zasobnik na 16b zasobnik = (zasobnik << 1) + (bit & 1) zasobnikcounter++ return zasobnikcounter //pocet bitu v zasobniku } unsigned char pop(unsigned char* bit) { //bitovy zasobnik na 16b *bit = zasobnik & 1 zasobnik = (zasobnik >> 1) zasobnikcounter return zasobnikcounter //if 0 empty } Celý algoritmus výpočtu testovacího obrazce z rovnice je v příloze na straně 7. 3.5 Řídicí software Řídicí software je realizován v jazyce C++ a vývojovém prostředí Borland. Zajišťuje rozpoznání testeru, komunikaci s ním, načtení testovacího předpisu pro daný testovaný obvod, zobrazení průběhu testu s možností zapnutí ladicího výstupu a také grafickou prezentaci výsledku testů. Testovací předpis je realizován pomocí textového souboru, který je třeba připravit předem v libovolném textovém editoru. V případě chyby v zápisu testovacího předpisu program ohlásí chybu a zobrazí nerozpoznaný řádek. V takovém případě nepovolí spuštění testu. Komentovaný vzor pro obvod 4xNAND 7400 je v příloze, další připravené jsou na přiloženém CD. Pro potřeby ladění nově sestaveného testovacího předpisu lze tester přepnout do ladicího (debug) režimu, kdy kromě výsledků textů vypisuje též jednotlivé testovací sekvence v binárním formátu a lze tak jednodušeji objevit případné chyby. Uživatelské rozhraní obsahuje v pravé části grafickou prezentaci výsledků testování pro rychlou orientaci o stavu obvodu, v levé části pak textový výstup popisující průběh, případně detaily testování. Odpojení testovaného obvodu od napájení je zajištěno buď programově v případě problému, nebo manuálně tlačítkem na pravé straně okna aplikace. Grafické zobrazení pinů podává následující informace: x indikuje odpojený pin, šedou barvou 25

nezapojený, zelenou zapojený červenou barvou se znakem? je vadný pin nebo neočekávaná hodnota na výstupu zelenou barvou se znaky < a > funkční pin s naznačením vstupního/výstupního směru. Znaky + a indikují piny připojené k napájecímu napětí. 3.6 Popis komunikace Komunikace mezi testerem a řídicím počítačem po sériové lince má ve směru do testeru přesně daný formát. Z řídicího počítače se přenáší kód příkazu, počet znaků parametru příkazu, řetězec parametru a jednoduchý kontrolní součet. Každý přijatý znak je testerem potvrzen, tím je zároveň zajištěno a potvrzeno vyprázdnění vstupního jednoznakového bufferu testeru. Pokud by došlo k chybě kontrolního součtu, tester ohlásí nesrozumitelný příkaz a ukončí test. V opačném směru z testeru do řídicího počítače je využito skutečnosti, že vstupní buffer je obsloužen operačním systémem a není nutné potvrzovat připravenost k přijetí znaku. Příchozí řetězec je načítán po jednotlivých znacích a načítání je ukončeno po přenesení celé zprávy z testeru v okamžiku timeoutu spojení. Toto řešení jsem zvolil z důvodu co nejjednodušší obsluhy komunikace na straně testeru. Ve zprávě z testeru se přenáší kód stavu procesu testování, kód výsledku posledního příkazu, délka řetězce zprávy a vlastní řetězec zprávy. Pokud neexistuje řetězec zprávy, je poslána nulová délka řetězce zprávy. Neposílá se kontrolní součet ani potvrzení o přijetí znaku nebo celé zprávy. Zprávy ladicího režimu se posílají jako prosté řetězce, uvozené znakem @ a ukončené znakem konce řádku. Jejich vyčtení ze vstupního bufferu a zpracování mimo stavovou zprávu je plně obslouženo řídicím programem. 26

4 Testovací případy Při oživování testeru jsem sestavil inicializační soubory pro kombinační obvody 7400, 7404, 7410, 7430, 7432 a sekvenční 7493A a provedl jejich otestování. Ve všech případech nebyla nalezena chyba. Zůstává tak jediný případ, obvod 7400, který jako první byl použitý již při vývoji testeru a na kterém lze demonstrovat funkčnost a vizuální řešení uživatelského rozhraní v případě nalezení chyby. Následující obrázky ukazují uživatelské rozhraní řídicího software při výskytu chyby v normálním a v ladicím režimu. Obrázek 12: Grafická a textová prezentace vady obvodu v řídicím software V ladicím režimu, jak již jsem zmínil, jsou testerem vypisovány jednotlivé testovací kombinace, vždy vstupní, a v dalším řádku získaná výstupní, ale nikoli kombinace přímo získaná z výstupů obvodu, ale již zpracovaná s odmaskovanými vstupy, nezapojenými a napájecími piny a pomocí XOR porovnaná s očekávanou hodnotou. Pokud tedy je výstup v pořádku, měl by druhý řádek obsahovat samé nuly. Výskyt jedničky tak indikuje neočekávanou výstupní hodnotu. Hodnoty jsou samozřejmě zobrazovány po osmicích pinů, každý port (levá a pravá strana) zvlášť. 27

Obrázek 13: Prezentace vady obvodu v ladicím režimu V případě testování logickou rovnicí dochází v zobrazení k malé změně není testována celá osmice pinů najednou, ale jsou testovány jednotlivé samostatné části obvodu (vždy kompletní kombinací danou logickou rovnicí), v tomto ukázkovém případě jednotlivá NAND hradla. Vstupní kombinace pak zahrnuje pouze piny příslušné k dané části, jak ukazuje následující obrázek, kde je vidět, jak hradlo mezi piny 4, 5 a 6 jedné kombinaci, která se kryje se zkratem na čtvrtém pinu vyhoví, ale následující kombinaci již nikoli. Obrázek 14: Grafická a textová prezentace vady obvodu při testu rovnicí 28

5 Závěr Cílem práce bylo navrhnout a sestavit tester logických integrovaných obvodů řízený pomocí sériového portu z prostředí Microsoft Windows. Bylo použito řešení s jednočipovým mikropočítačem AVR ATmega16 s přizpůsobením sériové komunikace rozhraní RS232. Navržené řešení umožňuje testovat kombinační i sekvenční logické obvody v pouzdrech DIL14 a DIL16, přičemž rozmístění napájecích pinů, vstupních a výstupních pinů a nezapojených pinů testovaného obvodu se definuje společně se způsobem testování v definičním souboru obvodu. Lze volit způsob testování předpisem logických hodnot jednotlivých pinů (testovací obrazce) nebo pomocí logických rovnic (pouze u kombinačních obvodů). Původní myšlenku, pokusit se realizovat popis sekvenčních obvodů též za pomoci logických rovnic, jsem záhy zavrhl krátce poté, co jsem byl nucen optimalizovat již hotový firmware s ohledem na využití paměti proměnných, kdy při zpracování rovnic opakovaně docházelo k přetečení paměti. Následně jsem si prakticky ověřil vytvořením testovacího předpisu pro čítač 7493, že při znalosti správné funkce testovaného obvodu je zapsání předpisu pomocí posílaných a očekávaných logických hodnot významně snazší a méně časově náročné, než se pokoušet rovnicí vyjádřit závislost výstupní hodnoty na události a minulé výstupní hodnotě. Pro praktické použití je také jednoznačně efektivnější, neboť počet testovacích obrazců není nijak omezen, protože v testeru je přítomen vždy pouze jen jeden aktuální, což neklade další nároky na paměť procesoru. Vhodným zápisem testovacího předpisu lze velmi jednoduše sledovat reakci testovaného obvodu třeba na vzestupnou či sestupnou hranu vstupního signálu a psát různé varianty testu či přímo testovací scénáře. Řídicí software byl naprogramován v prostředí Borland C++ jako jednoduché pokud možno přehledné uživatelské rozhraní s nutným minimem ovládacích prvků, tak aby zajistilo možnost jak rychlé informace o stavu testovaného obvodu, tak detailního výstupu o průběhu testování. Tato část mé práce neobsahuje žádná zvláštní řešení, jedná se o jednoduché zpracování a validaci textu testovacího předpisu, překlad testovacích rovnic tak, jak byl schematicky popsán v kapitole 7.2 a jednoduchou programovou smyčku řídicí jednotlivé kroky testování. Řídicí program by měl být schopen automaticky rozpoznat port s připojeným testerem. Realizace hardwarové části proběhla ve dvou fázích původně byl realizován hardware bez ochranných prvků, na základě zkušeností z výskytu vadného obvodu byly následně přidány ochranné rezistory R15 R30 a polymerová pojistka P1. Také došlo k rozšíření firmware testeru o test chování obvodu při připojení napájecího napětí, čímž lze snáze odhalit konkrétní vadný pin, nikoli jen důsledek vady v podobě neočekávané výstupní 29

hodnoty logické funkce. Na základě získaných zkušeností pak bylo zapojení rozšířeno a v tomto smyslu přepracovány též návrh osazení a návrh plošného spoje. Z časových důvodů však nebyla realizována celá nová deska, ale vzhledem k jednoduchosti potřebných úprav byl pouze upraven již realizovaný tester. Další hardwarovou úpravou bylo doplnění LED diody na osmý bit portu PB. Ve stávajícím zapojení není použita, je ale obsažena ve schématu i plošném spoji a firmware ji obsluhuje. Je obsluhována tak, aby její svit indikoval přítomnost napájení na testovaném obvodu. Jedním z nutných vylepšení pro běžné použití testeru je jeho vestavění do vhodné krabičky a použití patice s nulovou vypínací silou pro testované obvody. Nutnou úpravou, která musí následovat, je taková úprava desky plošných spojů, která bude respektovat montážní body použité krabičky. Bohužel až do doby finalizace tohoto textu se nepodařilo vhodné díly zajistit, přestože jsou objednány. Obrázek 15: Hotový tester vlevo MAX232, vpravo testovaný MH7400 30

Pokud by bylo potřeba testovat integrované obvody s odběrem přesahujícím přibližně 80 ma, bylo by nutné nahradit spínací tranzistory typem s vyšším kolektorovým proudem a úměrně tomu vybrat jiný typ vratné pojistky. Drobným problémem je vykreslování stavu testu v průběhu testování, zejména při zapnutém ladicím režimu testeru. Při testování obvodu s více vstupy logickou rovnicí dochází k situaci, kdy zobrazení výsledků čeká na dokončení testů všech logických kombinací vstupů. Je to způsobeno zjednodušenou komunikací z testeru do řídicího počítače, kdy řídicí program čeká na dokončení testu, aby mohl zobrazit výsledky (a ladicí hlášení) nakumulované ve vstupním bufferu. Pro zkrácení této doby je možné navýšit přenosovou rychlost, nebo přepracovat způsob komunikace z testeru do řídicího počítače tak, aby jednotlivé zprávy byly zpracovány odděleně. Ve druhém případě by však bylo nutné v návaznosti na úpravy v komunikaci provést další úpravy v kódu řídicím posloupnost operací testování tak, aby mohla být vyhodnocena úspěšnost testu (nikoli výsledek testu, pouze úspěšnost provedení příkazů testerem). Programování firmware v jazyce C pro mě osobně znamenalo významné rozšíření stávajících znalostí s programovacím jazykem C jako takovým jsem se seznámil až při studiu, přestože mnoho let programuji v různých jazycích, které sice ve velké většině z C vycházejí, ale v běžných aplikacích není potřeba znalost nízkoúrovňových funkcí pro manipulaci s hardwarem. Pro mě osobně je tato zkušenost jednoznačně přínosem. 31

6 Seznam použité literatury [1] DAVIS, Leroy. Interfacebus.com [online]. 1998 2011. [cit. 2012 03 06]. Dostupné z: <http://www.interfacebus.com/voltage_threshold.html>. [2] MATOUŠEK, David. Práce s mikrokontroléry ATMEL AVR: [měření, řízení a regulace pomocí několika jednoduchých přípravků]. 1. vyd. Praha: BEN technická literatura, 2006, 319 s. ISBN 80 730 0174 8. [3] MORAVEC, Zdeněk: Blog a web o chemii, elektronice a programování. [online]. 2012. [cit. 2012 03 06]. Dostupné z: <http://www.z moravec.net/ext_el/io/ttl.php>. [4] OLIVKA, Petr. Katedra informatiky VŠB v Ostravě. [online]. [cit. 2012 03 06] dostupné na <http://poli.cs.vsb.cz/edu/arp/down/dp technologieco.pdf>. [5] datasheety ATmega16, MAX232, 7400, BC548, BC558. [6] Data in program space. AVR. [online]. 2012. [cit. 2012 03 06]. Dostupné z: <http://www.nongnu.org/avr libc/user manual/pgmspace.html>. [7] Kompaktní převodník úrovní TTL/RS232. HANKOVEC, David. DH servis [online]. 2002 2012. [cit. 2012 03 06]. Dostupné z: <http://www.dhservis.cz/dalsi/prevodnik.htm>. [8] Komunikace po RS232. KARAS, Ondřej. Programujte.com [online]. 2006. [cit. 2012 03 06]. Dostupné z: <http://programujte.com/clanek/2006110301 komunikace po rs232/ >. 32

7 Seznam obrázků Obrázek 1: Porovnání logických úrovní u jednotlivých technologií integrovaných obvodů [1]...8 Obrázek 2: Rozložení pinů pouzdra PDIP40 procesoru ATmega16...9 Obrázek 3: Typické zapojení TTL hradla NAND podle [4]... 12 Obrázek 4: Typické zapojení CMOS hradla NAND podle [4]... 13 Obrázek 5: Blokové schéma testeru...16 Obrázek 6: Porovnání logických úrovní TTL a CMOS obvodů v zapojení testeru...17 Obrázek 7: Ochrana portu ATmega napěťové poměry při logické úrovni L... 18 Obrázek 8: Ochrana portu ATmega napěťové a proudové poměry při zkratu v měřeném obvodu...18 Obrázek 9: Schéma zapojení testeru... 21 Obrázek 10: Provedení desky plošných spojů... 22 Obrázek 11: Osazovací plán... 22 Obrázek 12: Grafická a textová prezentace vady obvodu v řídicím software... 27 Obrázek 13: Prezentace vady obvodu v ladicím režimu...28 Obrázek 14: Grafická a textová prezentace vady obvodu při testu rovnicí... 28 Obrázek 15: Hotový tester vlevo MAX232, vpravo testovaný MH7400... 30 33

8 Obsah přiloženého CD zdrojový kód firmware zdrojový kód řídicí aplikace včetně souborů projektu definiční soubory pro některé logické integrované obvody schéma a výkresy desky plošných spojů práce v PDF formátu 34