měřící karta ADC1216
Ovladač: |
dodává někdo jiný |
Technické parametry
Je to 16 kanálový 12 bitový AD převodník používaný jako voltmetr nebo jako pomalý osciloskop. Doba jednoho měření
trvá cca 50 mikrosekund, takže chodí asi do 20kHz. Měřený napěťový rozsah je 0..5V nebo -2.5 .. 2.5 V (možno nastavit). Karta je vybavena zesilovačem se zesílením
1 až 1000. Výrobce udává dlouhodobou přesnost 500 ppm (tj. chyba půl promile z rozsahu).
Karta je dále vybavena 8 digitálními vstupy/výstupy.
Identifikace pod Linuxem
Nevím, asi nijak. Karta nevyužívá žádné IRQ. Ovládá se pouze
přes tři porty. Pomocí jumperů se nastaví, které porty to mají být.
Postup zprovoznění pod Linuxem
Drivery pro Linux nejsou, ale od výrobce je k dispozici assemblerovský zdroják driverů pro DOS
http://www.aditech.cz/Download/adc1216.zip
Podle toho je možné napsat ovladač i pro Linux. Řekněme,
že bázová adresa je BA.
Vezměme těchto 16 bitů:
kkkk xxxx xxxx xxxx (MSB LSB)
kkkk - kanál (0..15)
xxxx xxxx xxxx - dvanáctibitová hodnota (odhad)
MSB se pošle na port (BA+2),
LSB se pošle na port (BA+1)
Dále se přečte bajt na portu (BA+1) a jeho
poslední bit (nultý) je hodnota komparátoru (nula, když je měřená hodnota vyšší). Tohle je potřeba provést dvanáctkrát.
Výsledek se pak musí vynásobit 5/2^12 = 0.001220703125
abychom dostali skutečnou hodnotu ve voltech.
Port (BA) slouží k ovládání přídavných digitálních I/O linek.
Poznámka
Karta je na ISA. Doba jednoho měření je závislá na procesoru, protože se měří metodou půlení intervalů (postupná aproximace). Driver pošle kartě nějaké číslo, ona to komparátorem porovná s měřenou hodnotou a odpoví, jestli je to vyšší nebo nižší. Takže na změření jedné hodnoty se driver musí zeptat dvanáctkrát, než se "trefí". Na 486 jsem
dosáhl cca 6000 měření za sekundu (jeden kanál), ale orig. drivery pod DOS to dokážou třikrát rychleji. No bodejť, napsal jsem to blbě