Většina návodů na nastavení časování v XFree86 hledá cesty, jak dostat z monitoru co nejvíce. My se dnes zaměříme na obrácenou cestu – podtaktování grafické karty, které umožní připojení běžné televize.
Pokud má grafická karta TV výstup, většinou jde o standardní videosignál nebo výstup S-Video. Nicméně nejkvalitnější cestou, jak dostat z karty signál, je RGB výstup.
Většina moderních televizí je naproti tomu vybavena konektorem SCART, na kterém by měl být RGB vstup zapojen. Popsaný postup zapojení by měl fungovat i pro TV projektory, které bývají RGB vstupem standardně vybaveny. Naopak nebude fungovat na videorekordérech, u nichž se RGB signál nepoužívá.
Pokud nechceme používat jako zdroj signálu stávající videokartu, opatříme si další. Protože videosignál je v porovnání s moderními monitory poměrně pomalý, na televizní RGB výstup nám postačí postarší videokarta ze šuplíku. Základní hardwarová akcelerace není na škodu, stejně jako některé neobvyklé signálové funkce (viz dále).
Propojovací kabel, který k tomu budeme potřebovat, se běžně neprodává. Podle možností grafické karty a televize se může jednat o triviální propojení drátů, ale také může být potřeba použít několik elektronických součástek (v ceně kolem 10 Kč). Ty se vejdou do krytu konektoru, takže nám k celé konstrukci postačí páječka a trocha znalostí elektroniky.
Nastavení XFree86 bude naopak čistě softwarové.
Výroba kabelu
Zakoupíme si tedy SCART konektor na kabel, dostatečně dlouhý kus kabelu s pěti stíněnými žilami (u některých TV by nám mohly stačit jen čtyři či dokonce jen tři žíly, ale pět žil postačí vždy) a 15pinový třířadý konektor Cannon s krytem („samec“, standardní konektor pro VGA kabely).
Standardní signály pro VGA monitory jsou: signály R, G, B a dva synchronizační signály HSync a VSync. Typicky TV RGB vstup používá stejně definované signály R, G, B a k tomu kompozitní synchonizační signál CSync, který se přivede na vstup videosignálu. Navíc je zde už jen signál Blank informující o připojení signálu RGB (u některých TV tento signál není potřeba a RGB funguje i bez něj). Občas může fungovat i speciální synchronizace SyncOnGreen (přenos synchronizace společně se signálem G; tento postup se často používá u studiových RGB monitorů). Rozdíly v požadovaném napětí synchronizačních impulzů vyřeší jediný odpor.
Vidíme, že k tomu, aby zapojení fungovalo, nám postačí nějak vytvořit signál CSync a Blank. Zde záleží na schopnostech videokarty.
Některé videokarty dokáží generovat přímo signál CSync a dokonce i SyncOnGreen, u jiných si musíme vypomoci externími součástkami.
Co se týče napětí Blank, doporučení hovoří o 3 V. Takové napětí ovšem na konektoru není. Základní řešení proto získává napětí usměrněním signálu CSync. Alternativou je získat jej z napětí +5 V na vývodu 9 VGA konektoru pomocí odporového děliče nebo odporu a (nejlépe zelené) svítivé diody (tyto alternativy nejsou na schématech uvedeny, protože fungují pouze u grafických karet odpovídajících VESA DDC standardu).
Při výrobě kabelu vycházíme z možností grafické karty a naší televize. Můžeme vyrobit buď složitější kabel univerzální, nebo si ušetřit práci a vyrobit kabel na míru.
Pokud ovládáte alespoň trochu elektroniku, tato schémata by vám měla napovědět správný postup. Vývody běžně prodávaných konektorů jsou již očíslovány a stačí se čísel držet. Popis vývodů na konektoru najdete též
zde a zde. Pozor na zrcadlovou záměnu vývodů.
S výjimkou odporu 680 Ω lze všechny součástky vybírat z širokého rozsahu hodnot. Tranzistor je libovolný křemíkový NPN, stejně tak dioda je libovolná miniaturní (ze starých zásob se hodí např. KC238 a KA206).
Součástky se s výhodou ukryjí do krytu konektoru SCART, kde bývá více místa. I při použití technologie „vrabčí hnízdo“ je obvod celkem spolehlivý, zvlášť zakápneme-li ho izolačním lakem. Před pájením nezapomeňte navléknout všechny převlečné části krytu.
V hranatých závorkách uvádím doporučené vývody pro připojení zemnících kablíků.
První zapojení ukazuje univerzální standardní kabel.
Druhé zapojení ukazuje zjednodušenou verzi pro grafické karty s podporou CSync.
Pro zajímavost uvádím ještě třetí zapojení, které jsem použil pro studiový monitor se signálem SyncOnGreen (ten byl ovšem vybaven třemi konektory typu BNC, a proto větev Blank nebyla použita).
Pokud vaše televize nepotřebuje signál Blank, můžete zrušit celou odbočku pro jeho vytváření.
Nastavení XFree86
Nahlédneme-li do specifikací videosignálu, zjistíme vhodné časování:
Každý řádek TV signálu začíná zatmívacím impulsem. Po určité době se objeví synchronizační impuls, po jeho skončení se vysílají barevné synchronizace (ty nás nyní nezajímají), poté si televize nastaví úroveň černé. Následují vlastní obrazová data.
PAL a SECAM | NTSC | |
---|---|---|
Horizontální frekvence | 15 625 Hz | 15 734,2 Hz |
Vertikální frekvence | 50,00 Hz | 59,94 Hz |
Doba jednoho řádku | 64 ľs | 63,5 ľs |
Horizontální zatmívání | 12 ľs | 10,9 ľs |
Synchronizace | 4,7 ľs | 4,7 ľs |
Doba před synchronizací | 1,65 ľs | 1,5 ľs |
Aktivní doba | 52 ľs | 52,6 ľs |
Celkem řádků | 625 | 525 |
Vertikální zatmívání | 25–37 | 39–43 |
Poměr stran obrazu | 4:3 |
Televizní signál používá prokládané řádkování – v jednom půlsnímku se vyšlou pouze liché řádky, v následujícím zase sudé. Všechny běžné televizní přijímače jsou však schopny pracovat i v neprokládaném řádkování (počet řádků pak bude poloviční).
Viditelná oblast jednotlivých televizí se mírně liší, takže hodnoty lze měnit. Důležité je však zachovat předepsané horizontální a vertikální kmitočty. Televize nejsou multisynchronizační a již několikaprocentní odchylka je může poškodit! Pokud použijete xvidtune nebo podobný nástroj, pamatujte, že můžete používat pouze posuny doleva, doprava, nahoru a dolů, nikoliv však zúžení a rozšíření!
Doporučení pro digitální video PAL je 720 vzorků na řádek pro digitální zatmívání a 702 vzorků pro analogové zatmívání na hodinovém kmitočtu 13,5 MHz a 576 řádků. Pixely vytvořené podle tohoto doporučení však údajně nejsou čtvercové. Při přepočítávání jsem ale přesně nepochopil, proč, zřejmě se jedná o 18 neviditelných černých pixelů.
Uvedené zapojení vyžaduje záporné synchronizační pulsy. Protože žádnou televizi nemám, ladil jsem časování na 15 let starém videotexovém monitoru Sony CPD-1301E.
Zde je ukázka konfigurace (kvůli šířce jsou řádky zalomeny, při kopírování se však zlomy objeví tam, kde mají):
Section „Monitor“
Identifier „RBG TV PAL“
VendorName „TV“
ModelName „Generic TV-receiver“
HorizSync 15.62–15.74
VertRefresh 49.9–50.1,59.9–60.1
# obecné video dle doporučení
Modeline „720×576i“ 13.5 702 722 785 864 576 580 584 625 interlace -hsync -vsync
# obecné video dle doporučení s kompozitní synchronizací
Modeline „720×576ic“ 13.5 702 722 785 864 576 580 584 625 interlace composite -csync
# atypický režim, snad s čtvercovými pixely
Modeline „702×576i“ 13.84375 720 743 808 886 576 580 584 625 interlace -hsync -vsync
# atypický režim, snad s čtvercovými pixely s kompozitní synchronizací
Modeline „702×576ic“ 13.84375 720 743 808 886 576 580 584 625 interlace composite -csync
# Toto nastavení je podle XonTV-micro-HOWTO:
# viditelná oblast konkrétní televize
Modeline „640×545i“ 13.5 640 702 756 864 545 568 572 625 interlace composite -hsync -vsync
EndSection
Nyní už zbývá v sekci Screen změnit monitor (Monitor), doplnit názvy nových režimů do seznamů režimů („720×576i“ „720×576ic“ „702×576i“ „702×576ic“ „640×545i“) pro jednotlivé bitové hloubky (Modes), nastavit virtuální velikost obrazovky. Pokud máte dvě grafické karty, nová X a zapnuto rozšíření Xinerama, můžete v sekci
ServerLayout upravit nastavení pro více monitorů (s tím ovšem neporadím, neboť dvě grafické karty nemám).
Odkazy
a další…