.
X    

ISA USB+ROM karta


Počítače třídy 486 a starší nemívají PCI sloty, takže v nich nejdou použít běžně dostupné PCI USB karty, a přenášet větší množství dat přes diskety, či vytahovat disk, je poměrně nepraktické. Možné řešení je USB ISA karta, se kterou lze použít běžný flash disk. Tyto karty nejsou moc běžné, ale lze je zkonstruovat na čipu CH375B od méně známé firmy W.ch. Zde předvedená konstrukce má navíc patici pro ROM, kam lze vložit paměť s "option ROM" pro rozšíření funkcí BIOSu. Určitá nevýhoda tohoto čipu je, že se základním ovladačem lze použít pouze mass storage zařízení.

Hotová karta
Hotová karta (klikněte pro plné rozlišení)

Hotová karta, spodní strana
Hotová karta, spodní strana (klikněte pro plné rozlišení)


1. Popis zapojení

Schéma zapojení
Schéma zapojení (klikněte pro plné rozlišení)

Srdcem obvodu je integrovaný obvod CH375B. Zapojení se odvíjí od referenčního zapojení poskytovaného výrobcem. CH375B může komunikovat jak v UART, tak v paralelním režimu, zde je zapojen v paralelním režimu (pokud je pin TXD přizemněn, podle datasheetu se obvod po resetu přepne do paralelního režimu). Integrovaný obvod U3 (74LS245 - obousměrný budič sběrnice) odděluje CH375B od ISA sběrnice a posiluje jeho zatížitelnost. Signály A0, IOR (I/O čtení), IOW (I/O zápis), RESET z ISA sběrnice vedou rovnou do U4, IOR také určuje směr pro 74LS245.

Adresa USB části je dekódovaná pomocí integrovaného obvodu 74LS138 s pomocí několika hradel 74LS32. Propojkový blok J2 umožňuje zvolit adresu (230h, 240h, 250h, 260h). Dekódovaných je zde pouze spodních 10 adresních linek, což je pro I/O účely dostačující, pokud není nainstalována žádná speciální karta využívající více adresních linek, kde by zároveň docházelo ke konfliktu při stejných úrovních na A0-A9. Adresní linky A1-A2 jsou ignorovány. Při nastavení adresy např. 260h tedy karta zabere adresy 260h-267h. Propojkový blok J3 umožňuje zvolit přerušení (vypnuto či IRQ3...IRQ7 - 1-2: vypnuto, 3-4: IRQ3, 5-6: IRQ4...), s tím, že přerušení nemusí být povoleno a karta bude fungovat i tak, pokud bude správně nastaven ovladač - samozřejmě s vlivem na rychlost. Výstup přerušení CH375 je aktivní v log. 0, zatímco přerušení ISA sběrnice jsou aktivní v log. 1, na obrácení polarity je použitý tranzistor Q1 s rezistory R2, R5, posílený U1A. Pozor, tranzistor BSS138 je extrémně citlivý na ESD, doporučuji použít verzi se zabudovanou ochranou.

Propojkou J7 lze zvolit externí napájení (J6) či interní napájení (z ISA sběrnice). Napájení USB je filtrováno feritovým jadérkem FB1, jištěno vratnou pojistkou F1 a filtrováno kondenzátory C11-C13. Ztrátovost elektrolytických kondenzátorů (vyšší ESR) je zde využita pro zatlumení případných nechtěných oscilací. Dále je zde IO U6 (USBLC6-2SC6) pro ESD ochranu - není nutný (lze přemostit piny 1-6 a 3-4), ale doporučuji ho osadit. Kondenzátor C13 a IO U6 by měly být umístěny co nejblíže USB konektoru. Kondenzátory C15, C16 doporučuje datasheet CH375B a bez nich docházelo k poškození přenášených dat. Měly by být umístěny blízko obvodu CH375.

Provozní frekvence 12 MHz je generována zabudovaným krystalovaným oscilátorem, na který je připojen krystal Y1 spolu se zatěžovacími kondenzátory C8, C9. Krystal i kondenzátory C8, C9 by měly být opět umístěny blízko obvodu CH375B, to stejné platí o blokovacích kondenzátorech C6, C7 na jeho napájení. CH375B má zabudovaný 3-voltový regulátor pro USB, ke kterému stačí připojit pouze externí kondenzátor C7. Co se týká blokovacích kondenzátorů obecně (C2, C4-C7, C10, C14), měly by být vhodně umístěny blízko příslušných integrovaných obvodů - a obecně by měla být dodržena běžná návrhová pravidla pro digitální obvody.

Přídavnou ROM ("option ROM") lze osadit na místo U7 a může být EPROM, EEPROM či FLASH série 2764, 2864, 28256, 29256 (jejich pinově kompatibilní variace lze najít označené jako 27C64, 28C64, 28C256, 29C256, AT28C64, AT28C256, AT29C256). Programovací algoritmus se ale může lišit pro ROM od různých výrobců. Typ ROM se zvolí pomocí propojek J8, J10, J12, popis pozic je ve schématu. Pozor, špatné nastavení propojek (hlavně J8) může vést k problémům a v krajním případě i k poškození karty či základní desky. Propojka J11 slouží k volbě bázového segmentu ROM (C800h pokud je nainstalována, jinak D800h). Rozsah adres, kam je ROM mapovaná, je C8000h-CFFFFh či D8000h-DFFFFh pro 32 kB ROM, respektive C8000-C9FFFh či D8000-D9FFFh pro 8 kB ROM. Propojka J5 slouží k povolení ROM a propojka J4 slouží k povolení zápisu do ROM (pouze pro 28xx a 29xx). ROM je připojena přímo, bez budiče sběrnice, je tedy vhodné používat typ, který nemá příliš slabé výstupy.

Logické obvody řady 74LS... (74LS32, 74LS138, 74LS245, 74LS688) mohou být zaměněny za 74HCT... (74HCT32, 74HCT138, 74HCT245, 74HCT688). Řada HCT je zde dokonce preferována kvůli nižší spotřebě a stále dostatečné rychlosti.

Prototyp byl sestaven převážně pomocí SMD součástek v pouzdrech 0603. Pro integrované obvody byla použita pouzdra SOIC. Propojky jsou běžné, s roztečí 2,54 mm. Kondenzátory 10 µF jsou zde použity keramické, 1206, >16 V. Feritové jadérko je použité v pouzdře 0805, typu FCM2012KF-601T5, ale typ není kritický (ztrátové, doporučené parametry: proud ≥500 mA či lépe ≥1 A, impedance ≥100 Ω při 100 MHz). Pojistka je polymerová (vratná) v pouzdře 1206. Elektrolytické kondenzátory jsou běžné THT s průměrem 5 mm.

Verze 1.0 a 1.0a se liší minimálně (doladěné hodnoty součástek, atd). Tento článek se zabývá původní verzí. Například hodnota pull-up rezistorů R1, R2, R3, R5, R9 (1 kΩ) je zde zbytečně nízká a je vhodnější použít 2,2-4,7 kΩ.

Rozměry otvorů záslepky a příslušných rozpěrek se bohužel od doby konstrukce stihly ztratit.

Je vhodné použít pozlacený hranový konektor oproti cínovanému (HASL), obzvlášťe v případě, že kontakty ISA konektorů na desce nejsou mosazné, bronzové, či pouze niklované bez zlacení, ale zlacené, jinak může docházet k jejich degradaci. Při použití ENIG povrchové úpravy plošného spoje je zlatá vrstva velice tenká a snadno se opotřebí - nicméně niklová vrstva pod ní je dostatečně tlustá (cca 5 µm), aby poskytla dostatečnou ochranu, i když odpor kontaktu bude pravděpodobně trochu vyšší.


2. Software

Podporované systémy jsou MS-DOS, případně jiné DOSy, a Windows 9x (testování proběhlo s Windows 95, pravděpodobně bude ale ovladač fungovat i s Windows 98 či 98SE). Jako ovladač lze použít ten, který je přímo dodávaný výrobcem čipu a pro DOS ho zavést v konfiguračním souboru CONFIG.SYS. Řádek v CONFIG.SYS bude vypadat například takto:

DEVICE=C:\DRIVERS\CH375DOS.SYS @260 #03

kde @260 určuje adresu a #03 přerušení. Případně lze uvést ještě rychlost ve formátu %03, čím nižší číslo, tím vyšší rychlost - ale nedoporučuji měnit. Pokud není přerušení použito, lze zadat #00.

U Windows 9x je problém, kdy po načtení ovladače v CONFIG.SYS dojde k vynucení MS-DOS režimu kompatibility pro všechny disky, což vede ke snížení rychlosti systému. Problém je řešitelný načtením ovladače CH375 až v souboru AUTOEXEC.BAT, například pomocí LOADSYS, DEVLOAD či jiné podobné utility. Pravděpodobně se systém snaží načíst některé ovladače jako například IFSHLP až po načtení CONFIG.SYS a s tímto pořadím načítání má problém. Řádek v AUTOEXEC.BAT může vypadat například takto:

C:\DRIVERS\DEVLOAD /H C:\DRIVERS\CH375DOS.SYS @260 #00

V systému se objeví nové písmeno disku. Pokud není připojen flash disk, vrátí se při pokusu o přístup typická chyba "device not ready", jinak lze přistupovat na disk normálně. Doporučuji vypnout pro toto písmeno cache. Disk nelze formátovat pomocí příkazu FORMAT. Pro DOS starší než 7.1 musí mít flash disk formát FAT16.


3. Závěr

Karta byla otestována v několika různých počítačích, bylo sestaveno několik kusů a jeden je již téměř rok provozován bez problémů v počítači DECpc LPv+ 425sx. I přes to je tento článek včetně přiložených souborů poskytnut bez jakékoliv záruky.

Soubory ke stažení

Utilita DEVLOAD (GPL v2) a ovladač CH375DOS.SYS.
Kicad 6 soubory, Gerber soubory, verze 1.0 i 1.0a.
HW návrh je zde dostupný pod licencí Creative Commons BY-SA 3.0, či novější (4.0).


 


 
Reklama (od webhostingu):