Tester P O Jmonitorów E K T Y VA Tester monitorów VA, część 1 AVT 979 W dobie owszechnego korzystania z komuterów PC równie owszechne stało się użycie wsółracujących z nimi monitorów VA. Podczas wszelkich rac serwisowych związanych z ich narawą i regulacją, zarówno tradycyjnych CT, jak i LCD, szczególnie rzydatny może być secjalny tester. Przedstawiona niżej konstrukcja takiego rzyrządu zwraca uwagę m.in. ze względu na wykorzystanie układów rogramowalnych i języków oisu srzętu. ekomacje: tester trudno jest olecić komuś, kto chce jednorazowo wykonać narawę monitora komuterowego, dla serwisantów robiących to na co dzień będzie natomiast cennym wyosażeniem stanowiska racy. PODSTAWOWE PAAMETY Płytka o wymiarach 95x74 mm Zasilanie: 6...8 VDC Pobór rądu: 118 ma/6 V Obrazy testowe: kolorowe asy (8 kolorów), krata, kroki, tło: czerwone, zielone, niebieski, białe ozdzielczości obrazu: 640x480, 800x600, 1024x768 Częstotliwości odświeżania: 60 i 85 z Wyświetlanie dodatkowych inormacji na ekranie (OSD) Możliwość zmiany kolejności kolorów w obrazie asów egulowana gęstość węzłów kraty Możliwość zmiany koloru obrazu kraty i kroek (czerwony, zielony, niebieski, biały) Automatyczny tryb racy (sekwencyjna zmiana oszczególnych obrazów testowych) Przedstawiony tutaj tester umożliwia uzyskanie 7 rodzajów obrazów testowych wyświetlanych w 5 różnych trybach racy. Możliwe jest uzyskanie obrazu kolorowych asów (8 kolorów) z możliwością zmiany kolejności kolorów, obrazu kraty o regulowanej gęstości węzłów, obrazu kroek oraz obrazu jednolitego tła o trzech kolorach odstawowych oraz w kolorze białym. Tester obsługuje rozdzielczości obrazu 640x480 (VA), 800x600 (SVA) oraz 1024x768 (XA) dla częstotliwości odświeżania 60 i 85 z. Orócz sygnalizacji bieżącego trybu racy w ostaci zaalonych diod LED obok odowiedniego oisu na łytce drukowanej, tester umożliwia również wyświetlanie tej inormacji w ostaci tekstowej na ekranie monitora (unkcja OSD). Dostęny jest również secjalny tryb racy, w którym oszczególne rodzaje obrazów testowych dla różnych rozdzielczości obrazu i częstotliwości odświeżania owtarzane są kolejno w ętli. Projekt testera zrealizowano w oarciu o układy Xilinx FPA z rodziny Sartan 3 i środowisko rojektowe WebPack ISE dostęne bezłatnie na stronie roducenta. Jako język oisu srzętu wybrano Verilog. Pomimo, że do budowy testera użyto układy Xilinx FPA, to udostęnione oisy w języku Verilog oszczególnych bloków unkcjonalnych testera (wirtualne komonenty) w większości (tj. tam gdzie nie odwołują się one do secyicznych właściwości architektury wybranej rodziny układów PLD) można bezośrednio wykorzystać dla układów CPLD i FPA innych roducentów. Sync A C D ys. 1. udowa linii obrazu VA W dalszej części artykułu krótko oisano budowę sygnału VA, nastęnie rzedstawiono ideę konstrukcji testera z odziałem na oszczególne bloki unkcjonalne i ich oisem w języku Verilog, omówiono układ elektryczny testera i oisano sosób obsługi urządzenia. Sygnał VA Sygnał wizji w standardzie VA, odobnie jak n. sygnał telewizyjny, składa się z szeregu kolejnych ramek obrazu. Każda ramka jest złożona z ciągu oziomych linii, a każda linia składa się z szeregu unktów. Linie w każdej ramce są rzesyłane w orządku od góry do dołu, a unkty w linii od lewej strony do rawej. W standardzie VA wykorzystuje się wybieranie rogresywne (non interlaced). W celu określenia zakończenia transmisji każdej linii i każdej ramki stosuje się dwa niezależne sygnały synchronizacji oziomej i synchronizacji ionowej. Dodatkowo złożony sygnał synchronizacji, owstały w wyniku oeracji logicznej XO obydwu wymienionych wyżej sygnałów synchronizacji, zazwyczaj jest kodowany również w zielonej () składowej sygnału kolorów odstawowych. Każda linia obrazu rozoczyna się od aktywnego obszaru, w którym trzy sygnały barw odstawowych, rzesyłane na wyjście, określają wyadkowy kolor dla każdego unktu w linii (rzedział A, na rys. 1). Za obszarem aktywnym nastęuje obszar wygaszania (suma rzedziałów, C i D na rys. 1), w którym rzesyłane są unkty o kolorze czarnym. Wewnątrz obszaru wygaszania rzesyłany jest A - linia obrazu - rzedni rzedział wyrównawczy C - imuls synchronizacji D - tylny rzedział wyrównawczy imuls synchronizacji oziomej (aktywny oziom niski). Imuls ten jest orzedzony t z w. r z e d n i m 24
Tester monitorów VA Tab. 1. Zestawienie arametrów czasowych sygnału VA dla kilku wybranych rozdzielczości obrazu i częstotliwości odświeżania Poziomo [unkty] Pionowo [linie] Format Częstotliwość rzedni rzedni unktu obszar tylny rzedział wyrówdział wyrów- Tylny rze- rzedział imuls synchronizacji aktywny wyrównawchronizacji obszar rzedział imuls syn- [Mz] aktywny wyrównawczcznawcznawczy A F S A V F V S V V 640x480, 60z 25,175 640 16 96 48 480 11 2 31 640x480, 72z 31,500 640 24 40 128 480 9 3 28 640x480, 75z 31,500 640 16 96 48 480 11 2 32 640x480, 85z 36,000 640 32 48 112 480 1 3 25 800x600, 56z 38,100 800 32 128 128 600 1 4 14 800x600, 60z 40,000 800 40 128 88 600 1 4 23 800x600, 72z 50,000 800 56 120 64 600 37 6 23 800x600, 75z 49,500 800 16 80 160 600 1 2 21 800x600, 85z 56,250 800 32 64 152 600 1 3 27 1024x768, 60z 65,000 1024 24 136 160 768 3 6 29 1024x768, 70z 75,000 1024 24 136 144 768 3 6 29 1024x768, 75z 78,750 1024 16 96 176 768 1 3 28 1024x768, 85z 94,500 1024 48 96 208 768 1 3 36 rzedziałem wyrównawczym (ront orch). Z kolei rzedział czasu nastęujący za imulsem synchronizacji określa się jako tylny rzedział wyrównawczy (back orch). udowa ramki obrazu (rys. 2) jest analogiczna do budowy ojedynczej linii. Początek ramki obrazu (obszar aktywny) zawiera wszystkie linie obrazu, które owinny zostać wyświetlone na ekranie. Za obszarem aktywnym nastęuje również obszar wygaszania (wszystkie unkty w transmitowanych liniach mają kolor czarny), składający się ( A F zu) można wyznaczyć z zależności: częstotliwości unktu, rzy niezmie- V Vozostałych ) V arametrach, ( A F FVnionych ( A F FVmoże V być Vzmiana ) V rozmiarów wyświe- S FV V V ) V z rzedniego rzedziału wyrównawczego, imulsu synchronizacji Z kolei częstotliwość linii (czę- (1) ionowej oraz tylnego rzedziału stotliwość imulsów synchronizacji wyrównawczego. Złożony sygnał oziomej) określa zależność: synchronizacji rzesyłany w kana- le zielonym ma ostać zanegowaną w czasie trwania imulsu Asynchro- nizacji ionowej (działanie unkcji F XO dla obydwu sygnałów synchronizacji). W tab. 1 odano arametry czasowe sygnału wizyjnego VA dla kilku oularnych rozdzielczości ekranu i częstotliwości odświeżania ramki (źródło: htt://www mtl.mit. edu/courses/6.111/labkit/vga.shtml). W raktyce różni roducenci monitorów odają nieco różniące się wartości niektórych arametrów czasowych. Podane w tab. 1 wartości nie są jednak krytyczne. Dla rzykładu, szerokość rzedniego i tylnego rzedziału wyrównawczego związana jest z ołożeniem obrazu na ekranie. Obraz na ekranie monitora można rzesuwać w lewo lub w rawo oraz w górę lub w dół właśnie orzez zmianę szerokości odowiednich rzedziałów wyrównawczych zarówno dla linii jak i dla ramki obrazu. Dysonując danymi zawartymi w tab. 1 dla danej rozdzielczości obrazu i częstotliwości odświeżania ramki V, nominalną częstotliwość unktu (czyli częstotliwość z jaką owinny być wybierane kolejne unkty w transmitowanej linii obra- (2) W rzyadku, gdy rzeczywista częstotliwość unktu jest zadana z góry (n. orzez zastosowanie rezonatora kwarcowego o wybranej wartości w generatorze taktującym) i różni się od częstotliwości nominalnej, wówczas zmianie ulega częstotliwość Sync VSync A A F F aktywny obszar obrazu rzedni rzedział wyrównawczy ys. 2. udowa ramki obrazu VA odświeżania ramki, którą można wyznaczyć na odstawie zależności (1). Taka sytuacja zachodzi w rzyadku danych w tab. 1, gdzie wartości częstotliwości unktu (druga kolumna) są odane w sosób rzybliżony o odowiednim zaokrągleniu (lub też inaczej można owiedzieć, że to częstotliwość odświeżania, widniejąca obok rozdzielczości obrazu, odana jest w sosób rzybliżony). Dodatkowym skutkiem (nieznacznej) zmiany tlanego na ekranie obrazu. Od strony elektrycznej w standardzie VA sygnały barw odstawowych są sygnałami analogowymi o amlitudzie 0,7 V i imedancji charakterystycznej 75 V, zaś sygnały synchronizacji oziomej i ionowej to tyowe sygnały o oziomach TTL. udowa testera Schemat blokowy testera rzedstawiono na rys. 3. Układy logiczne urządzenia zostały zgruowane w kilku blokach unkcjonalnych, imuls synchronizacji tylny rzedział wyrównawczy kolejna ramka obrazu 25
Tester monitorów VA z których każdy został oisany w języku oisu srzętu Verilog. Są to nastęujące bloki: blok eliminacji drgań zestyków klawiatury (debouncer), blok sterowania (cu), blok wytwarzania częstotliwości unktu (vga_), blok wytwarzania imulsów synchronizacji (vga_sync), blok generatora obrazu kraty (cross_ hatch), blok generatora obrazu kolorowych asów (bars) oraz blok wyświetlania inormacji na ekranie (osd). Poniżej zostaną krótko omówione unkcje oszczególnych bloków wraz z ich oisem w języku Verilog. Pełne kody źródłowe oisujące oszczególne bloki dostęne są w materiałach dodatkowych. lok eliminacji drgań zestyków klawiatury. Zadaniem tego bloku jest dostarczenie do bloku sterującego niezakłóconego, stabilnego sygnału ochodzącego z klawiatury służącej do wyboru oszczególnych unkcji testera. Sygnał ochodzący bezośrednio z klawiszy może zawierać oscylacje owstałe w wyniku mechanicznych drgań zestyków odczas naciskania klawiszy. Oscylacje te mogą owodować nieożądane działanie układu sterującego. Dodatkowo w tym bloku zaimlementowano automat sekwencyjny, który symuluje naciskanie rzez użytkownika odowiedniej sekwencji klawiszy, w wyniku czego w ętli owtarzane są kolejne obrazy testowe, zmieniana jest rozdzielczość obrazu, częstotliwość odświeżania i inne arametry. Na list. 1 rzedstawiono ragment oisu omawianego bloku w języku Verilog (ominięty został ois wsomnianego automatu ełny kod znajduje się w materiałach dodatkowych). W celu realizacji zadania eliminacji drgań zestyków wykorzystano rosty omysł olegający na kolejnym róbkowaniu w odowiednich odstęach czasowych stanu oszczególnych klawiszy i rzeisaniu go na wyjście modułu wówczas, gdy wartości kilku kolejnych róbek będą identyczne. lok wytwarzania częstotliwości unktu. lok ten ma kluczowe znaczenie z unktu widzenia liczby trybów racy (rozdzielczości obrazu, częstotliwości odświeżania) obsługiwanych rzez tester. W testerze rzyjęto założenie, że możliwy do wykorzystania jest tylko jeden sygnał zegarowy ochodzący z zewnętrznego generatora kwarcowego. cross_hatch vga_clock osd vga_ gsw in1 in1 in1 vga_ LP LSize(10:0) PCol(1:0) vga_sync CU vga_ out out out in2 in2 in2 sync_h sync_v VSync Sync debouncer rst rst1 k1 k2 k3 k4 k5 CLK counterx(10:0) countery(10:0) ESET bars T TMaxY(10;0) slow(10:0) sigh(10:0) VsLow(10:0) Vsigh(10:0) gsw LP T TMaxY(10;0) slow(10:0) sigh(10:0) VsLow(10:0) Vsigh(10:0) ys. 3. Schemat blokowy testera VA rst vga_ InitColor(2:0) LSize(10:0) k1 k2 k3 k4 k5 key1 key2 key3 key4 key5 un(2:0) PCol(1:0) InitColor(2:0) Coe(7:0) Coe(7:0) VS 26
Tester monitorów VA List. 1. Ois modułu eliminacji drgań zestyków klawiatury module debouncer(inut,k1,k2,k3,k4,k5, outut key1,key2,key3,key4,key5); reg [4:0] m_in,out; wire [4:0] in; reg [2:0] cnt; wire 2; reg kk1,kk2,kk3,kk4,kk5; assign in={k5,k4,k3,k2,k1}; always @(osedge ) div<=div+1; //realizacja dzielnika częstotliwości wejściowej assign 2=div[14]; //2 częstotliwość róbkowania stanu klawiszy always @(osedge 2) m_in<=in; //zaamiętanie stanu klawiatury always @(osedge 2) i (in==m_in) //jeżeli brak zmiany stanu wejścia cnt<=cnt+1; //zwiększ cnt o 1 i(cnt==3'd3) out<=m_in; //jeżeli w ciągu 3 taktów 2 brak zmiany stanu klawiatury //zaamiętaj ten stan else cnt<=0; //jeżeli zmiana stanu klawiatury wyzeruj cnt assign {key5,key4,key3,key2,key1}=~out; //rzeisz na wyjście aktywny oziom wysoki module Wynika z tego, że odowiednią częstotliwość unktu dla danych arametrów obrazu testowego należy wytworzyć w układzie testera. Takie właśnie zadanie należy do omawianego bloku. Ze względu na to, że częstotliwości unktu są dość znaczne (owyżej 25 Mz or. tab. 1) oraz wymagają stosunkowo dużej dokładności, nie można ich uzyskać orzez rosty odział częstotliwości wejściowej, która dodatkowo musiałaby być bardzo duża. Z omocą rzychodzą tutaj, wykorzystywane w rojekcie testera, układy Xilinx FPA z rodziny Sartan 3, które integrują w swojej strukturze syntezery częstotliwości, będące częścią składową układów zarządzania sygnałem zegarowym (DCM Digital Clock Manager). Na wyjściu syntezera dostęna jest częstotliwość będąca iloczynem częstotliwości wejściowej i zadanej jako arametr ewnej liczby wymiernej. Liczba ta musi być określona już odczas komilacji rojektu (koniguracji układu FPA) i nie da się jej zmienić odczas normalnej racy układu. W wykorzystywanym do budowy testera układzie XC3S200 dostęne są 4 niezależne układy DCM, dlatego też łącznie z częstotliwością wejściową z zewnętrznego generatora zegara można uzyskać 5 częstotliwości unktu, czyli możliwa jest obsługa ięciu trybów racy w standardzie VA. Na list. 2 okazano kod w języku Verilog oisujący blok generowania częstotliwości unktu. Linie rozoczynające się od identyikatora DCM są konkretyzacjami (utworzeniem instancji) układu zarządzania sygnałem zegarowym DCM, którego działanie jest określone orzez wartości arametrów odanych jako wymuszenia rojektanta w kolejnych liniach, rozoczynających się od zaisu // synthesis attribute. Przykładowo dla instancji o nazwie ixel 36M częstotliwość wejściowa z zewnętrznego generatora o wartości 40 Mz (sygnał ) jest mnożona rzez wsółczynnik CLKFX_MUL- TIPLY (tutaj równy 9) i dzielona rzez wsółczynnik CLKFX_DIVIDE (tutaj równy 10), dając w rezultacie częstotliwość wyadkową (sygnał _36M) o wartości 36 Mz, co odowiada częstotliwości unktu dla trybu racy 640x480, 85 z (or. tab. 1). lok wytwarzania sygnałów synchronizacji. lok ten, orócz imulsów synchronizacji oziomej (sync_h) i ionowej (sync_v), wytwarza również imuls wygaszania () inormujący o tym, że wybierany aktualnie unkt znajduje się oza obszarem aktywnym obrazu. Na wyjściach bloku oznaczonych counterx i countery dostęna jest wsółrzędna ozioma i ionowa (numer unktu w linii i numer linii) aktualnie wybieranego unktu. Jak wiemy tester obsługuje kilka trybów racy VA, a każdy tryb charakteryzuje się różnymi długościami rzedziałów czasowych, na odstawie których wytwarzane są imulsy synchronizacji, stąd też otrzebna jest dodatkowa List. 2. Ois bloku wytwarzania częstotliwości unktu odule vga_clock( inut, inut [3:0] Mode, outut reg vga_); wire 36M,56M,65M,25M; DCM ixel 36M (.CLKIN(),.CLKFX(56M6M)); // synthesis attribute CLKFX_DIVIDE o ixel 36M is 10 // synthesis attribute CLKFX_MULTIPLY o ixel 36M is 9 // synthesis attribute CLK_FEEDACK o ixel 36M is NONE DCM ixel 25M (.CLKIN(),.CLKFX(25M)); // synthesis attribute CLKFX_DIVIDE o ixel 25M is 16 // synthesis attribute CLKFX_MULTIPLY o ixel 25M is 10 // synthesis attribute CLK_FEEDACK o ixel 25M is NONE DCM ixel 56M (.CLKIN(),.CLKFX(56M)); // synthesis attribute CLKFX_DIVIDE o ixel 56M is 10 // synthesis attribute CLKFX_MULTIPLY o ixel 56M is 14 // synthesis attribute CLK_FEEDACK o ixel 56M is NONE DCM ixel 65M (.CLKIN(),.CLKFX(65M)); // synthesis attribute CLKFX_DIVIDE o ixel 65M is 16 // synthesis attribute CLKFX_MULTIPLY o ixel 65M is 26 // synthesis attribute CLK_FEEDACK o ixel 65M is NONE always @(Mode) case(mode) 4'b1001: vga_=36m; //640x480 (VA), 85z 4'b0010: vga_=; //800x600 (SVA), 60z 4'b1010: vga_=56m; //800x600 (SVA), 85z 4'b0100: vga_=65m; //1024x768 (XA), 60z 4'b1100: vga_=65m; //1024x768 (XA), 60z deault: vga_=25m; //640x480 (VA), 60z case module 27
Tester monitorów VA List. 3. Ois modułu wytwarzania imulsów synchronizacji module vga_sync(inut vga_, outut sync_h, sync_v,, outut [10:0] counterx,countery, inut [10:0] TMaxX,TMaxY,sLow,sigh,VsLow,Vsigh,MaxX,MaxY); reg [10:0] cntx,cnty; wire cntxmax=(cntx==tmaxx),cntymax=(cnty==tmaxy); always @(osedge vga_) i(cntxmax) cntx<=0; else cntx<=cntx+1; //jeżeli osiągnięto całkowitą liczbę unktów wyzeruj licznik unktów //w rzeciwnym rzyadku zwiększ zawartość licznika o 1 i(cntxmax) i(!cntymax) cnty<=cnty+1; else cnty<=0; //jeżeli osiągnięto maksymalną wsółrzędną unktu, srawdź numer linii //jeżeli osiągnięto również maksymalna liczbę linii wyzeruj licznik linii //w rzeciwnym rzyadku zwiększ licznik linii assign =((cntx>maxx) (cnty>maxy)); //deinicja rzedziału wygaszania assign sync_h=~((cntx>slow)&&(cntx<sigh)); assign sync_v=~((cnty>vslow)&&(cnty<vsigh)); //deinicja rzedziałów dla imulsów synchronizacji assign counterx=cntx; assign countery=cnty; module inormacja o arametrach czasowych charakterystycznych dla danego trybu racy. Inormacja ta dostarczana jest z układu sterującego w ostaci 11 bitowych sygnałów o nastęującym znaczeniu: TMaxX ozioma wsółrzędna unktu odowiadająca całkowitej liczbie unktów w linii (TMaxX=A +F +S + 1), TMaxY numer linii wyznaczający całkowitą liczbę linii (TMaxY=A- +F +S + 1), slow ozioma V V V V wsółrzędna unktu, od której rozoczyna się imuls synchronizacji oziomej (slow= A +F 1), sigh ozioma wsółrzędna unktu wyznaczająca koniec imulsu synchronizacji oziomej (sigh= A +F +S 1), VsLow numer linii określający oczątek imulsu synchronizacji ionowej (VsLow= A V +F V 1), Vsigh numer linii wyznaczający koniec imulsu synchronizacji ionowej (Vsigh= A V +F V +S V 1), MaxX ozioma wsółrzędna unktu odowiadająca liczbie aktywnych unktów obrazu (MaxX=A 1), MaxY numer linii odowiadający liczbie aktywnych linii obrazu (MaxY=A V 1). WYKAZ ELEMENTÓW ezystory (0805) 1, 3, 5: 270 V 2, 4, 6...8, 22...24: 100 V 9...13, 25, 26: 4,7 kv 14...21: 360 V Kondensatory C1: 100 mf/25 V C2...C7, C11...C14, C16...C21: 100 nf (0805) C8...C10, C15: 10 mf/10 V tantal (SMD A) Półrzewodniki D1: 1N4007 D2...D9: LED (0805) U1: XC3S200 (VQ100) U2: XCF01S (VO20) U3: generator kwarcowy 40 Mz U4: SPX1117 3.3 (TO252) U5: SPX1117 2.5 (TO252) U6: SPX1117 1.2 (TO252) Inne J1: D15F trójrzędowe J2: gniazdo zasilające J3: goldin 5x2 J4: goldin 12x2 Na list. 3 rzedstawiono kod w języku Verilog oisujący działanie bloku wytwarzania sygnałów synchronizacji. Pozostałe bloki testera oraz uwagi dotyczące montażu rzedstawimy w 2 części artykułu. Zbigniew ajduk Politechnika zeszowska arm.e.com.l arm.e.com.l arm.e.com.l arm.e.com.l arm.e.com.l 28