Aktivní Covox (D/A převodník na paralelní port)

      9.3.2005 Tak mě jednou napadlo, že bych si mohl pro svůj starý notebook (Dell Latitude P120 / 16 MB RAM, bez zvukovky) zkusit postavit tuhle šílenost, kterou si kdysi lidi stavěli v dobách, kdy SoundBlaster stál nějakých 10000,-. Já už teda ty doby nepamatuju, ale to zapojení má něco do sebe.
      Moje požadavky byly takové, abych mohl poslouchat na sluchátka, Covoxem napájeným přímo z LPT bez dalších pomocných zdrojů, zesilovače a pod. Když jsem ale nad tím bádal, tak mi přišlo blbý to udělat z malých odporů a zatěžovat výstup přímo sluchátkama, IMHO by to ta zátěž pěkně rozhodila. Tak jsem se rozhodl pro jinou variantu - kámoš mi poradil obvod TDA7050 za 30,- (GME), který jsem použil jako vestavěný zesilovač, napájený ze zbylých linek LPT. Obvod má pracovat už od 1,6 V výše. Výstupní impedance je 32 ohm. Odporovou síť R - 2R jsem udělal z 10k a 20k 1% SMD odporů. Celý se mi to podařilo narvat na oboustranný plošný spoj (ano vystačil jsem si s lihovkou) do pouzdra cannon konektoru. Zde je šéma:

Covox schematic

použité suroviny:
Suroviny na Covox

osazený PCB (vrchní strana):
Covox PCB-top

osazený PCB (spodní strana):
Covox PCB-bottom

a zahořování v testovacím provozu:
Covox testing

      Zapojení kupodivu fungovalo na první pokus :). Nejprve jsem testoval na LPT portu svého PC a měřil jak a nakolik poklesne napájecí napětí odebírané ze zbylých datových linek. Zaznamenal jsem pokles z 4,5 V na 3,1 V, což plně stačilo k funkci zesilovače. Trimrem jsem musel snížit zisk zesilovače, protože byl příliš velký a při extrémním přebuzení to paradoxně přestalo úplně hrát. Tušil jsem, že porty na notebooku budou neduživé, což se také potvrdilo při poklesu z 4,7 V na 2,0 V. Pro normální poslech to pořád stačilo, ale přecijen když jsem to trochu víc ohulil tak už to začlo dost zkreslovat. Přistoupil jsem tedy na přívod externího napájení, který jsem vytáhl z krabičky jedním drátkem na diodu (na katodu), která se anodou zastrčí do dutinky PS/2 konektoru (+5 V) pro externí klávesnici.
      Covox podporovala řada historických přehrávačů modulů (.MOD, .XM, .S3M, .IT...) z nichž nejlepší je asi Fast Tracker II, který hraje na Covox opravdu skvěle. Dále jsem se zajímal o možnost přehrávání .MP3 souborů a našel jeden DOSovský program Digital Sound System 3.1, který ale při přehrávání produkuje pravidelné lupání asi 2x za sekundu. Nakonec jsem našel na jedné německé stránce projekt LPTDAC, kde má autor k dispozici driver (i se zdrojáky v TASMu) pro Windows 3.x a jak jsem vyzkoušel, funguje i ve Windows 95 OSR2. Všiml jsem si, že zvuk přehrává trochu rychleji (což je holt dané dělitelem timeru pro DMA a vzorkovací frekvencí), ale to mi v celku nevadí, jinak je zvuk celkem slušný. MP3 přehrávám starším WinAmpem 2.08 a dokonce se dá při tom poslouchání dělat i něco dalšího. Protože se driver chová jako virtuální SoundBlaster, není problém použít na přehrávání jiný program. Škoda, že někdo nenaprogramoval plug-in přímo pro WinAmp, který by byl optimalizovaný.
      Nu co říct závěrem, za těch pár korun to hraje rozhodně líp než obyčejný PC squeaker a někde daleko od svého PC a zesilovače to občas může přijít vhod. Není to rozhodně Hi-Fi, ale pořád lepší než drátem do oka (vím o existenci i 16-bit stereo převodníků na LPT, ale to by byla zas jiná kapitola). Pro představu, zde je zvuková ukázka - Soundtrack k demu Boost v XM formátu přehrávaný Fast Trackerem II 2.08 a vzorkovaný zpět do PC na SB Live.

      5.7.2007 Náhodou jsem narazil na pěkný zdroják MP3 knihovny, který byl jako exampl součástí Scitech SNAP SDK 3.1. Kódy jsou 100% ANSI C takže s překladem v DJGPP nebyl problém. Hned jsem si vzpomněl na svůj Covox, že by bylo pěkné pro něj udělat MP3 přehrávač. Tehdá jsem nějaký hledal, ale žádný s přímou podporou Covoxu nenašel. Sice už mám novější notebook se zvukovkou, ale tak mě zajímalo jak to bude hrát. Pustil jsem se do toho a za den něco naprogramoval, výsledek je ke stažení zde a ukázka jak to vypadá:

Covox MP3 player 1.0 (C) 2007 by Martin Rehak; rayer^seznam*cz
Compiled by GCC 4.1.2 at 22:57:52, Jul  5 2007
Installing new timer ISR for Covox playback...

Playing file: 06 - Ice Rose.mp3
WILDPATH - Ice Rose
Nyx Secrets, 2007 [Metal]
(RapidShare)
MP3 decoder: 16-bit output, sampling rate 44100 Hz
decoded frames: 1264, position: 10%, bitrate: 192 kb/s
Removing new timer ISR for Covox playback...

Ovládání je jednoduché, šipkami doleva/doprava se přetáčí, nahoru a dolů se mění hlasitost v 8-mi krocích a mezerník je pauza. Program umí načítat i playlist soubory .M3U a zobrazuje ID3 tagy. Parametry lze určit adresu LPT portu, vynechání daného počtu samplů se snížením frekvence (pokud běží přehrávání pomalu/sekaně) a případně výstupní soubor .RAW místo výstupu na LPT. Program jsem testoval na intel C2D@2400MHz, PIII@866MHz, P5@166MHz. Kvalita přehrávaného zvuku je ucházející, je tam ale slyšet rušení které vzniká asi voláním jiných přerušení.



Zpět

Aktualizováno 6.7.2005 v 3:41