Juergen Prenzel (jprenze@gwdg.de) March 2001 This is the README file for acl8112, a LINUX driver for the ACL-8112 series of cards. Version: 0.1 Copyright(C): J.Prenzel 2001 The driver is placed under the GNU public License. Introduction ============ The ACL-8112 cards (made by ADLink Technology, www.adlinktechnology.com) are ISA cards for voltage measurement (12 bit A/D, 8 or 16 channels), voltage output (12 bit D/A, 2 channels), and digital input and output (TTL, 16 channels in either direction). Limitations =========== This driver, at least in the present version, does not give access to the full potential of the ACL-8112 cards. It does not support the on board timer, interrupt data transfer, and dma data transfer. Rather, it uses software trigger and polling for reading A/D results. This leaves the timing of A/D reads totally to the calling user program. A mode of operation that is certainly workeable for reading frequencys up to 1 Hz and possibly a bit higher. But for frequencies above 100 Hz (the cards support up to 100 kHz) a different mode of operation would be necessary. The driver has been developed and tested on an i386 machine with a 2.2 kernel. No compatibility with other architectures and earlier kernel versions is claimed. Usage ===== This is at present a kernel module detached from the usual kernel building machinery. This means that you must compile the driver seperately (make; make install) after making a new kernel. Everything should be placed in a special directory, e.g. /usr/local/acl8112, and the scripts insmod.pl and rmmod.pl should be used to load and unload the module respectively. There is a perl module, acl8112.pm, to make the use of the ACL-8112 with perl scripts easy. Hardware configuration ====================== The driver supports up to four ACL-8112 cards. The ACL-8112 comes in three types, HG, DG, and PG, that differ in signal amplification prior to A/D transformation. The driver should work with all three types though it has been tested only with the HG type. Everything that the driver must know about the ACL-8112 hardware, including postions of switches and jumpers, is coded in insmod parameters. A head section in insmod.pl can be edited to reflect the state of the hardware. There is no autoprobing, the insmod parameters must tell the state of the hardware correctly. Major and minor numbers ======================= We use the dynamic allocation of a mojor number at insmod time. Therefore, the nodes in /dev have to be constructed after the actual major number is known. The minor number byte encodes the actual card (out of a total of up to four) in the two most significant bits and the mode of operation in the lower six bits. There are 20 such modes od operation: 0 ... 15 => analog input (channel 0 to 15) 16 ... 17 => analog output (channel 0 to 1) 18 => digital input 19 => digital output The script insmod.pl takes care of the construction of nodes in /dev It must be run with root priviledge, e.g. from rc.local. The names of the nodes in /dev start with "acl", followed by "A", "B", "C", or "D" for the card, followed by "ai", "ao", "di", or "do" for analog input, analog output, digital input, or digital output respectively, followed by a channel number where appropriate. Insmod parameters ================= The number of cards is identified by the length of the list "io" of ports in the insmod parameters, e.g. insmod io=0x230,0x240 for two cards. Default is one card at io=0x220. The following parameters have to be specified as lists also, one value for each card, the order of values corresponing to the io port list. The meaning of the parameters is described in the card manual booklet (see doc). air stands for analog input range. Possible values are 5 or 10 (volts), default is 5. This is only effective for the PG card type. aor stands for analog output range. Default is 5 (volts). bp stands for bipolar and indicates whether the analog input is bipolar or unipolar. Possible values are 1 (for bipolar) or 0, default is 0. ctp stands for card type. Possible values are 72 for HG, 68 for DG, and 80 for PG card type. Default is 72.