Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 02e7bc50735df2e365110343fbf39739 > files > 106

comedilib-devel-0.8.1-7.fc14.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>    Low-level drivers
  </TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="    Comedi
  "
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Writing a Comedi driver"
HREF="x1394.html"><LINK
REL="NEXT"
TITLE="    Comedi Reference
  "
HREF="x4629.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Comedi: The <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Control and Measurement Device Interface</I
></SPAN
>
handbook
  </TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x1394.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x4629.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="LOWLEVELDRIVERS"
>6. Low-level drivers</A
></H1
><DIV
CLASS="SECTION"
><H2
CLASS="SECTION"
><A
NAME="AEN1783"
>6.1. Low-level drivers</A
></H2
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1785"
>6.1.1. 8255.o -- generic 8255 support</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1789"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>standard
      </TD
><TD
>8255
      </TD
><TD
>8255
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;The classic in digital I/O.  The 8255 appears in Comedi as a single
digital I/O subdevice with 24 channels.  The channel 0 corresponds
to the 8255's port A, bit 0; channel 23 corresponds to port C, bit
7.  Direction configuration is done in blocks, with channels 0-7,
8-15, 16-19, and 20-23 making up the 4 blocks.  The only 8255 mode
supported is mode 0.

You should enable compilation this driver if you plan to use a board
that has an 8255 chip.  For multifunction boards, the main driver will
configure the 8255 subdevice automatically.

This driver also works independently with ISA and PCI cards that
directly map the 8255 registers to I/O ports, including cards with
multiple 8255 chips.  To configure the driver for such a card, the
option list should be a list of the I/O port bases for each of the
8255 chips.  For example,

  comedi_config /dev/comedi0 8255 0x200,0x204,0x208,0x20c

Note that most PCI 8255 boards do NOT work with this driver, and
need a separate driver as a wrapper.  For those that do work, the
I/O port base address can be found in the output of 'lspci -v'.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1802"
>6.1.2. acl7225b.o -- Adlink NuDAQ ACL-7225b &#38; compatibles</A
></H3
><P
>Author: José Luis Sánchez (jsanchezv@teleline.es)
  </P
><P
>Status: testing
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1806"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Adlink
      </TD
><TD
>ACL-7225b
      </TD
><TD
>acl7225b
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>P16R16DIO
      </TD
><TD
>p16r16dio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;



  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1823"
>6.1.3. adl_pci6208.o -- ADLink PCI-6208A</A
></H3
><P
>Author: nsyeow &lt;nsyeow@pd.jaring.my&gt;
  </P
><P
>Status: untested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1827"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ADLink
      </TD
><TD
>PCI-6208A
      </TD
><TD
>adl_pci6208
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration Options:
  none





  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1840"
>6.1.4. adl_pci7296.o -- Driver for the Adlink PCI-7296 96 ch. digital io board</A
></H3
><P
>Author: Jon Grierson &lt;jd@renko.co.uk&gt;
  </P
><P
>Status: testing
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1844"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ADLink
      </TD
><TD
>PCI-7296
      </TD
><TD
>pci7296
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration Options:
  none




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1857"
>6.1.5. adl_pci7432.o -- Driver for the Adlink PCI-7432 64 ch. isolated digital io board</A
></H3
><P
>Author: Michel Lachaine &lt;mike@mikelachaine.ca&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1861"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ADLink
      </TD
><TD
>PCI-7432
      </TD
><TD
>pci7432
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration Options:
  none




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1874"
>6.1.6. adl_pci8164.o -- Driver for the Adlink PCI-8164 4 Axes Motion Control board</A
></H3
><P
>Author: Michel Lachaine &lt;mike@mikelachaine.ca&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1878"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ADLink
      </TD
><TD
>PCI-8164
      </TD
><TD
>pci8164
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration Options:
  none




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1891"
>6.1.7. adl_pci9111.o -- Adlink PCI-9111HR</A
></H3
><P
>Author: Emmanuel Pacaud &lt;emmanuel.pacaud@univ-poitiers.fr&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1895"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ADLink
      </TD
><TD
>PCI-9111HR
      </TD
><TD
>adl_pci9111
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
  - ai_insn read
  - ao_insn read/write
  - di_insn read
  - do_insn read/write
  - ai_do_cmd mode with the following sources:

    - start_src 		TRIG_NOW
    - scan_begin_src 		TRIG_FOLLOW	TRIG_TIMER	TRIG_EXT
    - convert_src				TRIG_TIMER	TRIG_EXT
    - scan_end_src		TRIG_COUNT
    - stop_src			TRIG_COUNT	TRIG_NONE

    The scanned channels must be consecutive and start from 0. They must
    all have the same range and aref.

Configuration options:

    [0] - PCI bus number (optional)
    [1] - PCI slot number (optional)

    If bus/slot is not specified, the first available PCI
    device will be used.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1908"
>6.1.8. adl_pci9118.o -- Adlink PCI-9118DG, PCI-9118HG, PCI-9118HR</A
></H3
><P
>Author: Michal Dobes &lt;dobes@tesnet.cz&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1912"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ADLink
      </TD
><TD
>PCI-9118DG
      </TD
><TD
>pci9118dg
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>PCI-9118HG
      </TD
><TD
>pci9118hg
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>PCI-9118HR
      </TD
><TD
>pci9118hr
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
This driver supports AI, AO, DI and DO subdevices.
AI subdevice supports cmd and insn interface,
other subdevices support only insn interface.
For AI:
- If cmd-&gt;scan_begin_src=TRIG_EXT then trigger input is TGIN (pin 46).
- If cmd-&gt;convert_src=TRIG_EXT then trigger input is EXTTRG (pin 44).
- If cmd-&gt;start_src/stop_src=TRIG_EXT then trigger input is TGIN (pin 46).
- It is not neccessary to have cmd.scan_end_arg=cmd.chanlist_len but
  cmd.scan_end_arg modulo cmd.chanlist_len must by 0.
- If return value of cmdtest is 5 then you've bad channel list
  (it isn't possible mixture S.E. and DIFF inputs or bipolar and unipolar
  ranges).

There are some hardware limitations:
a) You cann't use mixture of unipolar/bipoar ranges or differencial/single
   ended inputs.
b) DMA transfers must have the length aligned to two samples (32 bit),
   so there is some problems if cmd-&gt;chanlist_len is odd. This driver tries
   bypass this with adding one sample to the end of the every scan and discard
   it on output but this cann't be used if cmd-&gt;scan_begin_src=TRIG_FOLLOW
   and is used flag TRIG_WAKE_EOS, then driver switch to interrupt driven mode
   with interrupt after every sample.
c) If isn't used DMA then you can use only mode where
   cmd-&gt;scan_begin_src=TRIG_FOLLOW.

Configuration options:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
          If bus/slot is not specified, then first available PCI
          card will be used.
  [2] - 0= standard 8 DIFF/16 SE channels configuration
        n= external multiplexer connected, 1&lt;=n&lt;=256
  [3] - 0=autoselect DMA or EOC interrupts operation
        1=disable DMA mode
        3=disable DMA and INT, only insn interface will work
  [4] - sample&amp;hold signal - card can generate signal for external S&amp;H board
        0=use SSHO (pin 45) signal is generated in onboard hardware S&amp;H logic
        0!=use ADCHN7 (pin 23) signal is generated from driver, number
           say how long delay is requested in ns and sign polarity of the hold
           (in this case external multiplexor can serve only 128 channels)
  [5] - 0=stop measure on all hardware errors
        2|=ignore ADOR - A/D Overrun status
	8|=ignore Bover - A/D Burst Mode Overrun status
	256|=ignore nFull - A/D FIFO Full status




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1933"
>6.1.9. adv_pci1710.o -- Advantech PCI-1710, PCI-1710HG, PCI-1711, PCI-1713,              Advantech PCI-1720, PCI-1731</A
></H3
><P
>Author: Michal Dobes &lt;dobes@tesnet.cz&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1937"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1710
      </TD
><TD
>pci1710
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1710HG
      </TD
><TD
>pci1710hg
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1711
      </TD
><TD
>pci1711
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1713
      </TD
><TD
>pci1713
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1720
      </TD
><TD
>pci1720
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1731
      </TD
><TD
>pci1731
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
This driver supports AI, AO, DI and DO subdevices.
AI subdevice supports cmd and insn interface,
other subdevices support only insn interface.

The PCI-1710 and PCI-1710HG have the same PCI device ID, so the
driver cannot distinguish between them, as would be normal for a
PCI driver.

Configuration options:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
          If bus/slot is not specified, the first available PCI
          device will be used.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN1970"
>6.1.10. adv_pci_dio.o -- Advantech PCI-1730, PCI-1733, PCI-1734, PCI-1750, PCI-1751,              PCI-1752, PCI-1753/E, PCI-1754, PCI-1756, PCI-1762</A
></H3
><P
>Author: Michal Dobes &lt;dobes@tesnet.cz&gt;
  </P
><P
>Status: untested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN1974"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1730
      </TD
><TD
>pci1730
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1733
      </TD
><TD
>pci1733
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1734
      </TD
><TD
>pci1734
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1750
      </TD
><TD
>pci1750
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1751
      </TD
><TD
>pci1751
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1752
      </TD
><TD
>pci1752
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1753
      </TD
><TD
>pci1753
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1753+PCI-1753E
      </TD
><TD
>pci1753e
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1754
      </TD
><TD
>pci1754
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1756
      </TD
><TD
>pci1756
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1760
      </TD
><TD
>pci1760
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCI-1762
      </TD
><TD
>pci1762
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver supports now only insn interface for DI/DO/DIO.

Configuration options:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
          If bus/slot is not specified, the first available PCI
          device will be used.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2031"
>6.1.11. aio_aio12_8.o -- Acces I/O Products PC-104 AIO12-8 Analog I/O Board</A
></H3
><P
>Author: Pablo Mejia &lt;pablo.mejia@cctechnol.com&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2035"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Acces I/O
      </TD
><TD
>PC-104 AIO12-8
      </TD
><TD
>pci1762
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Configuration Options:
  [0] - I/O port base address


  Only synchronous operations are supported.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2048"
>6.1.12. aio_iiro_16.o -- Acces I/O Products PC-104 IIRO16 Relay And Isolated Input Board</A
></H3
><P
>Author: Zachary Ware &lt;zach.ware@cctechnol.com&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2052"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Acces I/O
      </TD
><TD
>PC-104 AIO12-8
      </TD
><TD
>pci1762
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Configuration Options:
  [0] - I/O port base address




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2065"
>6.1.13. amplc_dio200.o -- Amplicon PC272E, PCI272</A
></H3
><P
>Author: Ian Abbott &lt;abbotti@mev.co.uk&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2069"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Amplicon
      </TD
><TD
>PC212E
      </TD
><TD
>pc212e
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PC214E
      </TD
><TD
>pc214e
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PC215E
      </TD
><TD
>pc215e
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PCI215
      </TD
><TD
>pci215
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PC218E
      </TD
><TD
>pc218e
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PC272E
      </TD
><TD
>pc272e
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PCI272
      </TD
><TD
>pci272
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Configuration options - PC212E, PC214E, PC215E, PC218E, PC272E:
  [0] - I/O port base address
  [1] - IRQ (optional, but commands won't work without it)

Configuration options - PCI215, PCI272:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
  If bus/slot is not specified, the first available PCI device will
  be used.

Passing a zero for an option is the same as leaving it unspecified.


SUBDEVICES

                    PC218E         PC212E      PC215E/PCI215
                 -------------  -------------  -------------
  Subdevices           7              6              5
   0                 CTR-X1         PPI-X          PPI-X
   1                 CTR-X2         CTR-Y1         PPI-Y
   2                 CTR-Y1         CTR-Y2         CTR-Z1
   3                 CTR-Y2         CTR-Z1         CTR-Z2
   4                 CTR-Z1         CTR-Z2       INTERRUPT
   5                 CTR-Z2       INTERRUPT
   6               INTERRUPT

                    PC214E      PC272E/PCI272
                 -------------  -------------
  Subdevices           4              4
   0                 PPI-X          PPI-X
   1                 PPI-Y          PPI-Y
   2                 CTR-Z1*        PPI-Z
   3               INTERRUPT*     INTERRUPT


Each PPI is a 8255 chip providing 24 DIO channels.  The DIO channels
are configurable as inputs or outputs in four groups:

  Port A  - channels  0 to  7
  Port B  - channels  8 to 15
  Port CL - channels 16 to 19
  Port CH - channels 20 to 23

Only mode 0 of the 8255 chips is supported.

Each CTR is a 8254 chip providing 3 16-bit counter channels.  Each
channel is configured individually with INSN_CONFIG instructions.  The
specific type of configuration instruction is specified in data[0].
Some configuration instructions expect an additional parameter in
data[1]; others return a value in data[1].  The following configuration
instructions are supported:

  INSN_CONFIG_8254_SET_MODE.  Sets the counter channel's mode and
    BCD/binary setting specified in data[1].

  INSN_CONFIG_8254_READ_STATUS.  Reads the status register value for the
    counter channel into data[1].

  INSN_CONFIG_SET_CLOCK_SRC.  Sets the counter channel's clock source as
    specified in data[1] (this is a hardware-specific value).  Not
    supported on PC214E.  For the other boards, valid clock sources are
    0 to 7 as follows:

      0.  CLK n, the counter channel's dedicated CLK input from the SK1
        connector.  (N.B. for other values, the counter channel's CLKn
        pin on the SK1 connector is an output!)
      1.  Internal 10 MHz clock.
      2.  Internal 1 MHz clock.
      3.  Internal 100 kHz clock.
      4.  Internal 10 kHz clock.
      5.  Internal 1 kHz clock.
      6.  OUT n-1, the output of counter channel n-1 (see note 1 below).
      7.  Ext Clock, the counter chip's dedicated Ext Clock input from
        the SK1 connector.  This pin is shared by all three counter
        channels on the chip.

  INSN_CONFIG_GET_CLOCK_SRC.  Returns the counter channel's current
    clock source in data[1].  For internal clock sources, data[2] is set
    to the period in ns.

  INSN_CONFIG_SET_GATE_SRC.  Sets the counter channel's gate source as
    specified in data[2] (this is a hardware-specific value).  Not
    supported on PC214E.  For the other boards, valid gate sources are 0
    to 7 as follows:

      0.  VCC (internal +5V d.c.), i.e. gate permanently enabled.
      1.  GND (internal 0V d.c.), i.e. gate permanently disabled.
      2.  GAT n, the counter channel's dedicated GAT input from the SK1
        connector.  (N.B. for other values, the counter channel's GATn
        pin on the SK1 connector is an output!)
      3.  /OUT n-2, the inverted output of counter channel n-2 (see note
        2 below).
      4.  Reserved.
      5.  Reserved.
      6.  Reserved.
      7.  Reserved.

  INSN_CONFIG_GET_GATE_SRC.  Returns the counter channel's current gate
    source in data[2].

Clock and gate interconnection notes:

  1.  Clock source OUT n-1 is the output of the preceding channel on the
  same counter subdevice if n &gt; 0, or the output of channel 2 on the
  preceding counter subdevice (see note 3) if n = 0.

  2.  Gate source /OUT n-2 is the inverted output of channel 0 on the
  same counter subdevice if n = 2, or the inverted output of channel n+1
  on the preceding counter subdevice (see note 3) if n &lt; 2.

  3.  The counter subdevices are connected in a ring, so the highest
  counter subdevice precedes the lowest.

The 'INTERRUPT' subdevice pretends to be a digital input subdevice.  The
digital inputs come from the interrupt status register.  The number of
channels matches the number of interrupt sources.  The PC214E does not
have an interrupt status register; see notes on 'INTERRUPT SOURCES'
below.


INTERRUPT SOURCES

                    PC218E         PC212E      PC215E/PCI215
                 -------------  -------------  -------------
  Sources              6              6              6
   0              CTR-X1-OUT      PPI-X-C0       PPI-X-C0
   1              CTR-X2-OUT      PPI-X-C3       PPI-X-C3
   2              CTR-Y1-OUT     CTR-Y1-OUT      PPI-Y-C0
   3              CTR-Y2-OUT     CTR-Y2-OUT      PPI-Y-C3
   4              CTR-Z1-OUT     CTR-Z1-OUT     CTR-Z1-OUT
   5              CTR-Z2-OUT     CTR-Z2-OUT     CTR-Z2-OUT

                    PC214E      PC272E/PCI272
                 -------------  -------------
  Sources              1              6
   0               JUMPER-J5      PPI-X-C0
   1                              PPI-X-C3
   2                              PPI-Y-C0
   3                              PPI-Y-C3
   4                              PPI-Z-C0
   5                              PPI-Z-C3

When an interrupt source is enabled in the interrupt source enable
register, a rising edge on the source signal latches the corresponding
bit to 1 in the interrupt status register.

When the interrupt status register value as a whole (actually, just the
6 least significant bits) goes from zero to non-zero, the board will
generate an interrupt.  For level-triggered hardware interrupts (PCI
card), the interrupt will remain asserted until the interrupt status
register is cleared to zero.  For edge-triggered hardware interrupts
(ISA card), no further interrupts will occur until the interrupt status
register is cleared to zero.  To clear a bit to zero in the interrupt
status register, the corresponding interrupt source must be disabled
in the interrupt source enable register (there is no separate interrupt
clear register).

The PC214E does not have an interrupt source enable register or an
interrupt status register; its 'INTERRUPT' subdevice has a single
channel and its interrupt source is selected by the position of jumper
J5.


COMMANDS

The driver supports a read streaming acquisition command on the
'INTERRUPT' subdevice.  The channel list selects the interrupt sources
to be enabled.  All channels will be sampled together (convert_src ==
TRIG_NOW).  The scan begins a short time after the hardware interrupt
occurs, subject to interrupt latencies (scan_begin_src == TRIG_EXT,
scan_begin_arg == 0).  The value read from the interrupt status register
is packed into a sampl_t value, one bit per requested channel, in the
order they appear in the channel list.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2106"
>6.1.14. amplc_pc236.o -- Amplicon PC36AT, PCI236</A
></H3
><P
>Author: Ian Abbott &lt;abbotti@mev.co.uk&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2110"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Amplicon
      </TD
><TD
>PC36AT
      </TD
><TD
>pc36at
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PCI236
      </TD
><TD
>pci236
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options - PC36AT:
  [0] - I/O port base address
  [1] - IRQ (optional)

Configuration options - PCI236:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
  If bus/slot is not specified, the first available PCI device will be
  used.

The PC36AT ISA board and PCI236 PCI board have a single 8255 appearing
as subdevice 0.

Subdevice 1 pretends to be a digital input device, but it always returns
0 when read. However, if you run a command with scan_begin_src=TRIG_EXT,
a rising edge on port C bit 7 acts as an external trigger, which can be
used to wake up tasks.  This is like the comedi_parport device, but the
only way to physically disable the interrupt on the PC36AT is to remove
the IRQ jumper.  If no interrupt is connected, then subdevice 1 is
unused.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2127"
>6.1.15. amplc_pc263.o -- Amplicon PC263, PCI263</A
></H3
><P
>Author: Ian Abbott &lt;abbotti@mev.co.uk&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2131"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Amplicon
      </TD
><TD
>PC263
      </TD
><TD
>pc263
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PCI263
      </TD
><TD
>pci263
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options - PC263:
  [0] - I/O port base address

Configuration options - PCI263:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
  If bus/slot is not specified, the first available PCI device will be
  used.

Each board appears as one subdevice, with 16 digital outputs, each
connected to a reed-relay. Relay contacts are closed when output is 1.
The state of the outputs can be read.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2148"
>6.1.16. amplc_pci224.o -- Amplicon PCI224, PCI234</A
></H3
><P
>Author: Ian Abbott &lt;abbotti@mev.co.uk&gt;
  </P
><P
>Status: works, but see caveats
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2152"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Amplicon
      </TD
><TD
>PCI224
      </TD
><TD
>pci224
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PCI234
      </TD
><TD
>pci234
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
  - ao_insn read/write
  - ao_do_cmd mode with the following sources:

    - start_src         TRIG_INT        TRIG_EXT
    - scan_begin_src    TRIG_TIMER      TRIG_EXT
    - convert_src       TRIG_NOW
    - scan_end_src      TRIG_COUNT
    - stop_src          TRIG_COUNT      TRIG_EXT        TRIG_NONE

    The channel list must contain at least one channel with no repeated
    channels.  The scan end count must equal the number of channels in
    the channel list.

    There is only one external trigger source so only one of start_src,
    scan_begin_src or stop_src may use TRIG_EXT.

Configuration options - PCI224:
  [0] - PCI bus of device (optional).
  [1] - PCI slot of device (optional).
          If bus/slot is not specified, the first available PCI device
          will be used.
  [2] - Select available ranges according to jumper LK1.  All channels
        are set to the same range:
        0=Jumper position 1-2 (factory default), 4 software-selectable
          internal voltage references, giving 4 bipolar and 4 unipolar
          ranges:
            [-10V,+10V], [-5V,+5V], [-2.5V,+2.5V], [-1.25V,+1.25V],
            [0,+10V], [0,+5V], [0,+2.5V], [0,1.25V].
        1=Jumper position 2-3, 1 external voltage reference, giving
          1 bipolar and 1 unipolar range:
            [-Vext,+Vext], [0,+Vext].

Configuration options - PCI234:
  [0] - PCI bus of device (optional).
  [1] - PCI slot of device (optional).
          If bus/slot is not specified, the first available PCI device
          will be used.
  [2] - Select internal or external voltage reference according to
        jumper LK1.  This affects all channels:
        0=Jumper position 1-2 (factory default), Vref=5V internal.
        1=Jumper position 2-3, Vref=Vext external.
  [3] - Select channel 0 range according to jumper LK2:
        0=Jumper position 2-3 (factory default), range [-2*Vref,+2*Vref]
          (10V bipolar when options[2]=0).
        1=Jumper position 1-2, range [-Vref,+Vref]
          (5V bipolar when options[2]=0).
  [4] - Select channel 1 range according to jumper LK3: cf. options[3].
  [5] - Select channel 2 range according to jumper LK4: cf. options[3].
  [6] - Select channel 3 range according to jumper LK5: cf. options[3].

Passing a zero for an option is the same as leaving it unspecified.


  1) All channels on the PCI224 share the same range.  Any change to the
     range as a result of insn_write or a streaming command will affect
     the output voltages of all channels, including those not specified
     by the instruction or command.

  2) For the analog output command,  the first scan may be triggered
     falsely at the start of acquisition.  This occurs when the DAC scan
     trigger source is switched from 'none' to 'timer' (scan_begin_src =
     TRIG_TIMER) or 'external' (scan_begin_src == TRIG_EXT) at the start
     of acquisition and the trigger source is at logic level 1 at the
     time of the switch.  This is very likely for TRIG_TIMER.  For
     TRIG_EXT, it depends on the state of the external line and whether
     the CR_INVERT flag has been set.  The remaining scans are triggered
     correctly.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2169"
>6.1.17. amplc_pci230.o -- Amplicom PCI230, PCI260 Multifunction I/O boards</A
></H3
><P
>Author: Allan Willcox &lt;allanwillcox@ozemail.com.au&gt;, Steve D Sharples &lt;steve.sharples@nottingham.ac.uk&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2173"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Amplicon
      </TD
><TD
>PCI230
      </TD
><TD
>pci230 or amplc_pci230
      </TD
></TR
><TR
><TD
>Amplicon
      </TD
><TD
>PCI260
      </TD
><TD
>pci260 or amplc_pci230
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - PCI bus of device (optional).
  [1] - PCI slot of device (optional).
          If bus/slot is not specified, the first available PCI device
          will be used.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2190"
>6.1.18. c6xdigio.o -- Mechatronic Systems Inc. C6x_DIGIO DSP daughter card</A
></H3
><P
>Author: Dan Block
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2194"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Mechatronic Systems Inc.
      </TD
><TD
>C6x_DIGIO DSP daughter card
      </TD
><TD
>c6xdigio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver will not work with a 2.4 kernel.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2207"
>6.1.19. cb_das16_cs.o -- Computer Boards PC-CARD DAS16/16</A
></H3
><P
>Author: ds
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2211"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ComputerBoards
      </TD
><TD
>PC-CARD DAS16/16
      </TD
><TD
>cb_das16_cs
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>PC-CARD DAS16/16-AO
      </TD
><TD
>cb_das16_cs
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;



  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2228"
>6.1.20. cb_pcidas64.o -- MeasurementComputing PCI-DAS64xx, 60XX, and 4020 series with the PLX 9080 PCI controller</A
></H3
><P
>Author: Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2232"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6402/16
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6402/12
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M1/16
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M2/16
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M3/16
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6402/16/JR
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M1/16/JR
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M2/16/JR
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M3/16/JR
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M1/14
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M2/14
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS64/M3/14
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6014
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6023
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6025
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6030
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6031
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6032
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6033
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6034
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6035
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6036
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6040
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6052
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6070
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS6071
      </TD
><TD
>cb_pcidas64
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS4020/12
      </TD
><TD
>cb_pcidas64
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;

Configuration options:
   [0] - PCI bus of device (optional)
   [1] - PCI slot of device (optional)

These boards may be autocalibrated with the comedi_calibrate utility.

To select the bnc trigger input on the 4020 (instead of the dio input),
specify a nonzero channel in the chanspec.  If you wish to use an external
master clock on the 4020, you may do so by setting the scan_begin_src
to TRIG_OTHER, and using an INSN_CONFIG_TIMER_1 configuration insn
to configure the divisor to use for the external clock.

Some devices are not identified because the PCI device IDs are not yet
known. If you have such a board, please file a bug report at




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2349"
>6.1.21. cb_pcidas.o -- MeasurementComputing PCI-DAS series with the AMCC S5933 PCI controller</A
></H3
><P
>Author: Ivan Martinez &lt;imr@oersted.dtu.dk&gt;,   Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status:   There are many reports of the driver being used with most of the   supported cards. Despite no detailed log is maintained, it can   be said that the driver is quite tested and stable.
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2353"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS1602/16
      </TD
><TD
>cb_pcidas
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS1602/16jr
      </TD
><TD
>cb_pcidas
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS1602/12
      </TD
><TD
>cb_pcidas
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS1200
      </TD
><TD
>cb_pcidas
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS1200jr
      </TD
><TD
>cb_pcidas
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS1000
      </TD
><TD
>cb_pcidas
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DAS1001
      </TD
><TD
>cb_pcidas
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI_DAS1002
      </TD
><TD
>cb_pcidas
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;

  The boards may be autocalibrated using the comedi_calibrate
  utility.

Configuration options:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
  If bus/slot is not specified, the first supported
  PCI device found will be used.

For commands, the scanned channels must be consecutive
(i.e. 4-5-6-7, 2-3-4,...), and must all have the same
range and aref.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2394"
>6.1.22. cb_pcidda.o -- MeasurementComputing PCI-DDA series</A
></H3
><P
>Author: Ivan Martinez &lt;ivanmr@altavista.com&gt;, Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: Supports 08/16, 04/16, 02/16, 08/12, 04/12, and 02/12
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2398"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DDA08/12
      </TD
><TD
>cb_pcidda
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DDA04/12
      </TD
><TD
>cb_pcidda
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DDA02/12
      </TD
><TD
>cb_pcidda
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DDA08/16
      </TD
><TD
>cb_pcidda
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DDA04/16
      </TD
><TD
>cb_pcidda
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DDA02/16
      </TD
><TD
>cb_pcidda
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
  If bus/slot is not specified, the first available PCI
  device will be used.

Only simple analog output writing is supported.

So far it has only been tested with:
  - PCI-DDA08/12
Please report sucess/failure with other different cards to
&lt;comedi@comedi.org&gt;.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2431"
>6.1.23. cb_pcidio.o -- ComputerBoards' DIO boards with PCI interface</A
></H3
><P
>Author: Yoshiya Matsuzaka
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2435"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DIO24H
      </TD
><TD
>cb_pcidio
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCI-DIO48H
      </TD
><TD
>cb_pcidio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver has been modified from skel.c of comedi-0.7.70.

Configuration Options:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
  If bus/slot is not specified, the first available PCI device will
  be used.

Passing a zero for an option is the same as leaving it unspecified.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2452"
>6.1.24. cb_pcimdas.o -- Measurement Computing PCI Migration series boards</A
></H3
><P
>Author: Richard Bytheway
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2456"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ComputerBoards
      </TD
><TD
>PCIM-DAS1602/16
      </TD
><TD
>cb_pcimdas
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Written to support the PCIM-DAS1602/16 on a 2.4 series kernel.

Configuration Options:
    [0] - PCI bus number
    [1] - PCI slot number

Developed from cb_pcidas and skel by Richard Bytheway (mocelet@sucs.org).
Only supports DIO, AO and simple AI in it's present form.
No interrupts, multi channel or FIFO AI, although the card looks like it could support this.
See http://www.measurementcomputing.com/PDFManuals/pcim-das1602_16.pdf for more details.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2469"
>6.1.25. cb_pcimdda.o -- Measurement Computing PCIM-DDA06-16</A
></H3
><P
>Author: Calin Culianu &lt;calin@ajvar.org&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2473"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Measurement Computing
      </TD
><TD
>PCIM-DDA06-16
      </TD
><TD
>cb_pcimdda
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;All features of the PCIM-DDA06-16 board are supported.  This board
has 6 16-bit AO channels, and the usual 8255 DIO setup.  (24 channels,
configurable in banks of 8 and 4, etc.).  This board does not support commands.

The board has a peculiar way of specifying AO gain/range settings -- You have
1 jumper bank on the card, which either makes all 6 AO channels either
5 Volt unipolar, 5V bipolar, 10 Volt unipolar or 10V bipolar.

Since there is absolutely _no_ way to tell in software how this jumper is set
(well, at least according  to the rather thin spec. from Measurement Computing
 that comes with the board), the driver assumes the jumper is at its factory
default setting of +/-5V.

Also of note is the fact that this board features another jumper, whose
state is also completely invisible to software.  It toggles two possible AO
output modes on the board:

  - Update Mode: Writing to an AO channel instantaneously updates the actual
    signal output by the DAC on the board (this is the factory default).
  - Simultaneous XFER Mode: Writing to an AO channel has no effect until
    you read from any one of the AO channels.  This is useful for loading
    all 6 AO values, and then reading from any one of the AO channels on the
    device to instantly update all 6 AO values in unison.  Useful for some
    control apps, I would assume?  If your jumper is in this setting, then you
    need to issue your comedi_data_write()s to load all the values you want,
    then issue one comedi_data_read() on any channel on the AO subdevice
    to initiate the simultaneous XFER.


Configuration Options:
  [0] PCI bus (optional) (unimplemented)
  [1] PCI slot (optional) (unimplemented)
  [2] analog output range jumper setting
      0 == +/- 5 V
      1 == +/- 10 V




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2486"
>6.1.26. comedi_bond.o -- A driver to 'bond' (merge) multiple subdevices from multiple devices together as one.</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><PRE
CLASS="SCREEN"
>&#13;This driver allows you to 'bond' (merge) multiple comedi subdevices
(coming from possibly difference boards and/or drivers) together.  For
example, if you had a board with 2 different DIO subdevices, and
another with 1 DIO subdevice, you could 'bond' them with this driver
so that they look like one big fat DIO subdevice.  This makes writing
applications slightly easier as you don't have to worry about managing
different subdevices in the application -- you just worry about
indexing one linear array of channel id's.

Right now only DIO subdevices are supported as that's the personal itch
I am scratching with this driver.  If you want to add support for AI and AO
subdevs, go right on ahead and do so!

Commands aren't supported -- although it would be cool if they were.

Configuration Options:
  List of comedi-minors to bond.  All subdevices of the same type
  within each minor will be concatenated together in the order given here.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2491"
>6.1.27. comedi_parport.o -- Standard PC parallel port</A
></H3
><P
>Author: ds
  </P
><P
>Status: works in immediate mode
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2495"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>standard
      </TD
><TD
>parallel port
      </TD
><TD
>comedi_parport
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;A cheap and easy way to get a few more digital I/O lines.  Steal
additional parallel ports from old computers or your neighbors'
computers.

Option list:
 0: I/O port base for the parallel port.
 1: IRQ

Parallel Port Lines:

pin     subdev  chan    aka
---     ------  ----    ---
1       2       0       strobe
2       0       0       data 0
3       0       1       data 1
4       0       2       data 2
5       0       3       data 3
6       0       4       data 4
7       0       5       data 5
8       0       6       data 6
9       0       7       data 7
10      1       3       acknowledge
11      1       4       busy
12      1       2       output
13      1       1       printer selected
14      2       1       auto LF
15      1       0       error
16      2       2       init
17      2       3       select printer
18-25   ground


Subdevices 0 is digital I/O, subdevice 1 is digital input, and
subdevice 2 is digital output.  Unlike other Comedi devices,
subdevice 0 defaults to output.

Pins 13 and 14 are inverted once by Comedi and once by the
hardware, thus cancelling the effect.

Pin 1 is a strobe, thus acts like one.  There's no way in software
to change this, at least on a standard parallel port.

Subdevice 3 pretends to be a digital input subdevice, but it always
returns 0 when read.  However, if you run a command with
scan_begin_src=TRIG_EXT, it uses pin 10 as a external triggering
pin, which can be used to wake up tasks.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2508"
>6.1.28. comedi_rt_timer.o -- Command emulator using real-time tasks</A
></H3
><P
>Author: ds, fmhess
  </P
><P
>Status: works
  </P
><PRE
CLASS="SCREEN"
>&#13;This driver requires RTAI or RTLinux to work correctly.  It doesn't
actually drive hardware directly, but calls other drivers and uses
a real-time task to emulate commands for drivers and devices that
are incapable of native commands.  Thus, you can get accurately
timed I/O on any device.

Since the timing is all done in software, sampling jitter is much
higher than with a device that has an on-board timer, and maximum
sample rate is much lower.

Configuration options:
  [0] - minor number of device you wish to emulate commands for
  [1] - subdevice number you wish to emulate commands for




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2513"
>6.1.29. comedi_test.o -- generates fake waveforms</A
></H3
><P
>Author: Joachim Wuttke &lt;Joachim.Wuttke@icn.siemens.de&gt;, Frank Mori Hess   &lt;fmhess@users.sourceforge.net&gt;, ds
  </P
><P
>Status: works
  </P
><PRE
CLASS="SCREEN"
>&#13;This driver is mainly for testing purposes, but can also be used to
generate sample waveforms on systems that don't have data acquisition
hardware.

Configuration options:
  [0] - Amplitude in microvolts for fake waveforms (default 1 volt)
  [1] - Period in microseconds for fake waveforms (default 0.1 sec)

Generates a sawtooth wave on channel 0, square wave on channel 1, additional
waveforms could be added to other channels (currently they return flatline
zero volts).




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2518"
>6.1.30. contec_pci_dio.o -- Contec PIO1616L digital I/O board</A
></H3
><P
>Author: Stefano Rivoir &lt;s.rivoir@gts.it&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2522"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Contec
      </TD
><TD
>PIO1616L
      </TD
><TD
>contec_pci_dio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Configuration Options:
  [0] - PCI bus of device (optional)
  [1] - PCI slot of device (optional)
  If bus/slot is not specified, the first supported
  PCI device found will be used.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2535"
>6.1.31. daqboard2000.o -- IOTech DAQBoard/2000</A
></H3
><P
>Author: Anders Blomdell &lt;anders.blomdell@control.lth.se&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2539"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>IOTech
      </TD
><TD
>DAQBoard/2000
      </TD
><TD
>daqboard2000
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Much of the functionality of this driver was determined from reading
the source code for the Windows driver.

The FPGA on the board requires initialization code, which can 
be loaded by comedi_config using the -i
option.  The initialization code is available from http://www.comedi.org
in the comedi_nonfree_firmware tarball.

Configuration options:
    none




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2552"
>6.1.32. das08.o -- DAS-08 compatible boards</A
></H3
><P
>Author: Warren Jasper, ds, Frank Hess
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2556"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS08
      </TD
><TD
>das08
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08
      </TD
><TD
>das08
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08-PGM
      </TD
><TD
>das08-pgm
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08-PGH
      </TD
><TD
>das08-pgh
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08-PGL
      </TD
><TD
>das08-pgl
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08-AOH
      </TD
><TD
>das08-aoh
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08-AOL
      </TD
><TD
>das08-aol
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08-AOM
      </TD
><TD
>das08-aom
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08/JR-AO
      </TD
><TD
>das08/jr-ao
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08/JR-16-AO
      </TD
><TD
>das08jr-16-ao
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>PCI-DAS08
      </TD
><TD
>pci-das08
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>PC104-DAS08
      </TD
><TD
>pc104-das08
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>DAS08/JR/16
      </TD
><TD
>das08jr/16
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This is a rewrite of the das08 and das08jr drivers.

Options (for ISA cards):
        [0] - base io address

Options (for pci-das08):
        [0] - bus  (optional)
        [1] = slot (optional)
Use the name 'pci-das08' for the pci-das08, NOT 'das08'.


The das08 driver doesn't support asynchronous commands, since
the cheap das08 hardware doesn't really support them.  The
comedi_rt_timer driver can be used to emulate commands for this
driver.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2617"
>6.1.33. das08_cs.o -- DAS-08 PCMCIA boards</A
></H3
><P
>Author: Warren Jasper, ds, Frank Hess
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2621"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ComputerBoards
      </TD
><TD
>PCM-DAS08
      </TD
><TD
>pcm-das08
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This is the PCMCIA-specific support split off from the
das08 driver.

Options (for pcm-das08):
        NONE

Command support does not exist, but could be added for this board.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2634"
>6.1.34. das16.o -- DAS16 compatible boards</A
></H3
><P
>Author: Sam Moore, Warren Jasper, ds, Chris Baugher, Frank Hess, Roman Fietze
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2638"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-16
      </TD
><TD
>das-16
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-16G
      </TD
><TD
>das-16g
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-16F
      </TD
><TD
>das-16f
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1201
      </TD
><TD
>das-1201
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1202
      </TD
><TD
>das-1202
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1401
      </TD
><TD
>das-1401
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1402
      </TD
><TD
>das-1402
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1601
      </TD
><TD
>das-1601
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1602
      </TD
><TD
>das-1602
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>PC104-DAS16/JR
      </TD
><TD
>pc104-das16jr
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>PC104-DAS16JR/16
      </TD
><TD
>pc104-das16jr/16
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS16JR/16
      </TD
><TD
>cio-das16jr/16
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS16/JR
      </TD
><TD
>cio-das16/jr
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS1401/12
      </TD
><TD
>cio-das1401/12
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS1402/12
      </TD
><TD
>cio-das1402/12
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS1402/16
      </TD
><TD
>cio-das1402/16
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS1601/12
      </TD
><TD
>cio-das1601/12
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS1602/12
      </TD
><TD
>cio-das1602/12
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS1602/16
      </TD
><TD
>cio-das1602/16
      </TD
></TR
><TR
><TD
>ComputerBoards
      </TD
><TD
>CIO-DAS16/330
      </TD
><TD
>cio-das16/330
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;A rewrite of the das16 and das1600 drivers.

Passing a zero for an option is the same as leaving it unspecified.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2727"
>6.1.35. das16m1.o -- CIO-DAS16/M1</A
></H3
><P
>Author: Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2731"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Measurement Computing
      </TD
><TD
>CIO-DAS16/M1
      </TD
><TD
>cio-das16/m1
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
This driver supports a single board - the CIO-DAS16/M1.
As far as I know, there are no other boards that have
the same register layout.  Even the CIO-DAS16/M1/16 is
significantly different.

I was _barely_ able to reach the full 1 MHz capability
of this board, using a hard real-time interrupt
(set the TRIG_RT flag in your comedi_cmd and use
rtlinux or RTAI).  The board can't do dma, so the bottleneck is
pulling the data across the ISA bus.  I timed the interrupt
handler, and it took my computer ~470 microseconds to pull 512
samples from the board.  So at 1 Mhz sampling rate,
expect your CPU to be spending almost all of its
time in the interrupt handler.

This board has some unusual restrictions for its channel/gain list.  If the
list has 2 or more channels in it, then two conditions must be satisfied:
(1) - even/odd channels must appear at even/odd indices in the list
(2) - the list must have an even number of entries.


irq can be omitted, although the cmd interface will not work without it.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2744"
>6.1.36. das1800.o -- Keithley Metrabyte DAS1800 (&#38; compatibles)</A
></H3
><P
>Author: Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2748"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1701ST
      </TD
><TD
>das-1701st
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1701ST-DA
      </TD
><TD
>das-1701st-da
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1701/AO
      </TD
><TD
>das-1701ao
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1702ST
      </TD
><TD
>das-1702st
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1702ST-DA
      </TD
><TD
>das-1702st-da
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1702HR
      </TD
><TD
>das-1702hr
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1702HR-DA
      </TD
><TD
>das-1702hr-da
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1702/AO
      </TD
><TD
>das-1702ao
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1801ST
      </TD
><TD
>das-1801st
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1801ST-DA
      </TD
><TD
>das-1801st-da
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1801HC
      </TD
><TD
>das-1801hc
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1801AO
      </TD
><TD
>das-1801ao
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1802ST
      </TD
><TD
>das-1802st
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1802ST-DA
      </TD
><TD
>das-1802st-da
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1802HR
      </TD
><TD
>das-1802hr
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1802HR-DA
      </TD
><TD
>das-1802hr-da
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1802HC
      </TD
><TD
>das-1802hc
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-1802AO
      </TD
><TD
>das-1802ao
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;The waveform analog output on the 'ao' cards is not supported.
If you need it, send me (Frank Hess) an email.

Configuration options:
  [0] - I/O port base address
  [1] - IRQ (optional, required for timed or externally triggered conversions)
  [2] - DMA0 (optional, requires irq)
  [3] - DMA1 (optional, requires irq and dma0)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2829"
>6.1.37. das6402.o -- Keithley Metrabyte DAS6402 (&#38; compatibles)</A
></H3
><P
>Author: Oystein Svendsen &lt;svendsen@pvv.org&gt;
  </P
><P
>Status: bitrotten
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2833"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS6402
      </TD
><TD
>das6402
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver has suffered bitrot.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2846"
>6.1.38. das800.o -- Keithley Metrabyte DAS800 (&#38; compatibles)</A
></H3
><P
>Author: Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: works, cio-das802/16 untested - email me if you have tested it
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2850"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-800
      </TD
><TD
>das-800
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-801
      </TD
><TD
>das-801
      </TD
></TR
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAS-802
      </TD
><TD
>das-802
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>CIO-DAS800
      </TD
><TD
>cio-das800
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>CIO-DAS801
      </TD
><TD
>cio-das801
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>CIO-DAS802
      </TD
><TD
>cio-das802
      </TD
></TR
><TR
><TD
>Measurement Computing
      </TD
><TD
>CIO-DAS802/16
      </TD
><TD
>cio-das802/16
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - I/O port base address
  [1] - IRQ (optional, required for timed or externally triggered conversions)


	All entries in the channel/gain list must use the same gain and be
	consecutive channels counting upwards in channel number (these are
	hardware limitations.)

	I've never tested the gain setting stuff since I only have a
	DAS-800 board with fixed gain.

	The cio-das802/16 does not have a fifo-empty status bit!  Therefore
	only fifo-half-full transfers are possible with this card.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2887"
>6.1.39. dmm32at.o -- Diamond Systems mm32at driver.</A
></H3
><P
>Author: Perry J. Piplani &lt;perry.j.piplani@nasa.gov&gt;
  </P
><P
>Status: experimental
  </P
><PRE
CLASS="SCREEN"
>&#13;This driver is for the Diamond Systems MM-32-AT board

Configuration Options:
  comedi_config /dev/comedi0 dmm32at baseaddr,irq




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2892"
>6.1.40. dt2801.o -- Data Translation DT2801 series and DT01-EZ</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2896"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT2801
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2801-A
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2801/5716A
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2805
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2805/5716A
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2808
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2818
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2809
      </TD
><TD
>dt2801
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT01-EZ
      </TD
><TD
>dt2801
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver can autoprobe the type of board.

Configuration options:
  [0] - I/O port base address
  [1] - unused
  [2] - A/D reference 0=differential, 1=single-ended
  [3] - A/D range
          0 = [-10,10]
	  1 = [0,10]
  [4] - D/A 0 range
          0 = [-10,10]
	  1 = [-5,5]
	  2 = [-2.5,2.5]
	  3 = [0,10]
	  4 = [0,5]
  [5] - D/A 1 range (same choices)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2941"
>6.1.41. dt2811.o -- Data Translation DT2811</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2945"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT2811-PGL
      </TD
><TD
>dt2811-pgl
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2811-PGH
      </TD
><TD
>dt2811-pgh
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - I/O port base address
  [1] - IRQ, although this is currently unused
  [2] - A/D reference
          0 = signle-ended
          1 = differential
	  2 = pseudo-differential (common reference)
  [3] - A/D range
          0 = [-5,5]
	  1 = [-2.5,2.5]
	  2 = [0,5]
  [4] - D/A 0 range (same choices)
  [4] - D/A 1 range (same choices)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2962"
>6.1.42. dt2814.o -- Data Translation DT2814</A
></H3
><P
>Author: ds
  </P
><P
>Status: complete
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2966"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT2814
      </TD
><TD
>dt2814
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - I/O port base address
  [1] - IRQ

This card has 16 analog inputs multiplexed onto a 12 bit ADC.  There
is a minimally useful onboard clock.  The base frequency for the
clock is selected by jumpers, and the clock divider can be selected
via programmed I/O.  Unfortunately, the clock divider can only be
a power of 10, from 1 to 10^7, of which only 3 or 4 are useful.  In
addition, the clock does not seem to be very accurate.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2979"
>6.1.43. dt2815.o -- Data Translation DT2815</A
></H3
><P
>Author: ds
  </P
><P
>Status: mostly complete, untested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN2983"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT2815
      </TD
><TD
>dt2815
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;I'm not sure anyone has ever tested this board.  If you have information
contrary, please update.

Configuration options:
  [0] - I/O port base base address
  [1] - IRQ (unused)
  [2] - Voltage unipolar/bipolar configuration
          0 == unipolar 5V  (0V -- +5V)
	  1 == bipolar 5V  (-5V -- +5V)
  [3] - Current offset configuration
          0 == disabled  (0mA -- +32mAV)
          1 == enabled  (+4mA -- +20mAV)
  [4] - Firmware program configuration
          0 == program 1 (see manual table 5-4)
          1 == program 2 (see manual table 5-4)
          2 == program 3 (see manual table 5-4)
          3 == program 4 (see manual table 5-4)
  [5] - Analog output 0 range configuration
          0 == voltage
          1 == current
  [6] - Analog output 1 range configuration (same options)
  [7] - Analog output 2 range configuration (same options)
  [8] - Analog output 3 range configuration (same options)
  [9] - Analog output 4 range configuration (same options)
  [10] - Analog output 5 range configuration (same options)
  [11] - Analog output 6 range configuration (same options)
  [12] - Analog output 7 range configuration (same options)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN2996"
>6.1.44. dt2817.o -- Data Translation DT2817</A
></H3
><P
>Author: ds
  </P
><P
>Status: complete
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3000"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT2817
      </TD
><TD
>dt2817
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;A very simple digital I/O card.  Four banks of 8 lines, each bank
is configurable for input or output.  One wonders why it takes a
50 page manual to describe this thing.

The driver (which, btw, is much less than 50 pages) has 1 subdevice
with 32 channels, configurable in groups of 8.

Configuration options:
  [0] - I/O port base base address




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3013"
>6.1.45. dt282x.o -- Data Translation DT2821 series (including DT-EZ)</A
></H3
><P
>Author: ds
  </P
><P
>Status: complete
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3017"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT2821
      </TD
><TD
>dt2821
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2821-F-16SE
      </TD
><TD
>dt2821-f
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2821-F-8DI
      </TD
><TD
>dt2821-f
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2821-G-16SE
      </TD
><TD
>dt2821-f
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2821-G-8DI
      </TD
><TD
>dt2821-g
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2823
      </TD
><TD
>dt2823
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2824-PGH
      </TD
><TD
>dt2824-pgh
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2824-PGL
      </TD
><TD
>dt2824-pgl
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2825
      </TD
><TD
>dt2825
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2827
      </TD
><TD
>dt2827
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT2828
      </TD
><TD
>dt2828
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT21-EZ
      </TD
><TD
>dt21-ez
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT23-EZ
      </TD
><TD
>dt23-ez
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT24-EZ
      </TD
><TD
>dt24-ez
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT24-EZ-PGL
      </TD
><TD
>dt24-ez-pgl
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - I/O port base address
  [1] - IRQ
  [2] - DMA 1
  [3] - DMA 2
  [4] - AI jumpered for 0=single ended, 1=differential
  [5] - AI jumpered for 0=straight binary, 1=2's complement
  [6] - AO 0 jumpered for 0=straight binary, 1=2's complement
  [7] - AO 1 jumpered for 0=straight binary, 1=2's complement
  [8] - AI jumpered for 0=[-10,10]V, 1=[0,10], 2=[-5,5], 3=[0,5]
  [9] - AO 0 jumpered for 0=[-10,10]V, 1=[0,10], 2=[-5,5], 3=[0,5],
        4=[-2.5,2.5]
  [10]- A0 1 jumpered for 0=[-10,10]V, 1=[0,10], 2=[-5,5], 3=[0,5],
        4=[-2.5,2.5]





  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3086"
>6.1.46. dt3000.o -- Data Translation DT3000 series</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3090"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT3001
      </TD
><TD
>dt3000
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT3001-PGL
      </TD
><TD
>dt3000
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT3002
      </TD
><TD
>dt3000
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT3003
      </TD
><TD
>dt3000
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT3003-PGL
      </TD
><TD
>dt3000
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT3004
      </TD
><TD
>dt3000
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT3005
      </TD
><TD
>dt3000
      </TD
></TR
><TR
><TD
>Data Translation
      </TD
><TD
>DT3004-200
      </TD
><TD
>dt3000
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;There is code to support AI commands, but it may not work.

AO commands are not supported.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3131"
>6.1.47. dt9812.o -- Data Translation DT9812 USB module</A
></H3
><P
>Author: anders.blomdell@control.lth.se (Anders Blomdell)
  </P
><P
>Status: in development
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3135"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Data Translation
      </TD
><TD
>DT9812
      </TD
><TD
>dt9812
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver works, but bulk transfers not implemented. Might be a starting point
for someone else. I found out too late that USB has too high latencies (&gt;1 ms)
for my needs.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3148"
>6.1.48. fl512.o -- unknown</A
></H3
><P
>Author: Anders Gnistrup &lt;ex18@kalman.iau.dtu.dk&gt;
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3152"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>unknown
      </TD
><TD
>FL512
      </TD
><TD
>fl512
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Digital I/O is not supported.

Configuration options:
  [0] - I/O port base address




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3165"
>6.1.49. gsc_hpdi.o -- General Standards Corporation High     Speed Parallel Digital Interface rs485 boards</A
></H3
><P
>Author: Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: only receive mode works, transmit not supported
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3169"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>General Standards Corporation
      </TD
><TD
>PCI-HPDI32
      </TD
><TD
>gsc_hpdi
      </TD
></TR
><TR
><TD
>General Standards Corporation
      </TD
><TD
>PMC-HPDI32
      </TD
><TD
>gsc_hpdi
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
   [0] - PCI bus of device (optional)
   [1] - PCI slot of device (optional)

There are some additional hpdi models available from GSC for which
support could be added to this driver.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3186"
>6.1.50. icp_multi.o -- Inova ICP_MULTI</A
></H3
><P
>Author: Anne Smorthit &lt;anne.smorthit@sfwte.ch&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3190"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Inova
      </TD
><TD
>ICP_MULTI
      </TD
><TD
>icp_multi
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
The driver works for analog input and output and digital input and output.
It does not work with interrupts or with the counters.  Currently no support
for DMA.

It has 16 single-ended or 8 differential Analogue Input channels with 12-bit
resolution.  Ranges : 5V, 10V, +/-5V, +/-10V, 0..20mA and 4..20mA.  Input
ranges can be individually programmed for each channel.  Voltage or current
measurement is selected by jumper.

There are 4 x 12-bit Analogue Outputs.  Ranges : 5V, 10V, +/-5V, +/-10V

16 x Digital Inputs, 24V

8 x Digital Outputs, 24V, 1A

4 x 16-bit counters





  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3203"
>6.1.51. ii_pci20kc.o -- Intelligent Instruments PCI-20001C carrier board</A
></H3
><P
>Author: Markus Kempf &lt;kempf@matsci.uni-sb.de&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3207"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Intelligent Instrumentation
      </TD
><TD
>PCI-20001C
      </TD
><TD
>ii_pci20kc
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Supports the PCI-20001 C-2a Carrier board, and could probably support
the other carrier boards with small modifications.  Modules supported


options for PCI-20006M:
  first:   Analog output channel 0 range configuration
             0  bipolar 10  (-10V -- +10V)
             1  unipolar 10  (0V -- +10V)
             2  bipolar 5  (-5V -- 5V)
  second:  Analog output channel 1 range configuration

options for PCI-20341M:
  first:   Analog input gain configuration
             0  1
             1  10
             2  100
             3  200




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3220"
>6.1.52. jr3_pci.o -- JR3/PCI force sensor board</A
></H3
><P
>Author: Anders Blomdell &lt;anders.blomdell@control.lth.se&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3224"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>JR3
      </TD
><TD
>PCI force sensor board
      </TD
><TD
>jr3_pci
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;  The DSP on the board requires initialization code, which can 
  be loaded by placing it in /lib/firmware/comedi.  
  The initialization code should be somewhere on the media you got 
  with your card. One version is available from http://www.comedi.org
  in the comedi_nonfree_firmware tarball.

  Configuration options:
  [0] - PCI bus number - if bus number and slot number are 0,
                         then driver search for first unused card
  [1] - PCI slot number




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3237"
>6.1.53. ke_counter.o -- Driver for Kolter Electronic Counter Card</A
></H3
><P
>Author: Michael Hillmann
  </P
><P
>Status: tested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3241"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Kolter Electronic
      </TD
><TD
>PCI Counter Card
      </TD
><TD
>ke_counter
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
This driver is a simple driver to read the counter values from
Kolter Electronic PCI Counter Card.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3254"
>6.1.54. me4000.o -- Meilhaus ME-4000 series boards</A
></H3
><P
>Author: gg (Guenter Gebhardt &lt;g.gebhardt@meilhaus.com&gt;)
  </P
><P
>Status: broken (no support for loading firmware)
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3258"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Meilhaus
      </TD
><TD
>ME-4650
      </TD
><TD
>me4000
      </TD
></TR
><TR
><TD
>Meilhaus
      </TD
><TD
>ME-4670i
      </TD
><TD
>me4000
      </TD
></TR
><TR
><TD
>Meilhaus
      </TD
><TD
>ME-4680
      </TD
><TD
>me4000
      </TD
></TR
><TR
><TD
>Meilhaus
      </TD
><TD
>ME-4680i
      </TD
><TD
>me4000
      </TD
></TR
><TR
><TD
>Meilhaus
      </TD
><TD
>ME-4680is
      </TD
><TD
>me4000
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
    - Analog Input
    - Analog Output
    - Digital I/O
    - Counter

Configuration Options:

    [0] - PCI bus number (optional)
    [1] - PCI slot number (optional)

    If bus/slot is not specified, the first available PCI
    device will be used.

The firmware required by these boards is available in the
comedi_nonfree_firmware tarball available from




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3287"
>6.1.55. me_daq.o -- Meilhaus PCI data acquisition cards</A
></H3
><P
>Author: Michael Hillmann &lt;hillmann@syscongroup.de&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3291"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Meilhaus
      </TD
><TD
>ME-2600i
      </TD
><TD
>me_daq
      </TD
></TR
><TR
><TD
>Meilhaus
      </TD
><TD
>ME-2000i
      </TD
><TD
>me_daq
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;

    Analog Output

Configuration options:

    [0] - PCI bus number (optional)
    [1] - PCI slot number (optional)

    If bus/slot is not specified, the first available PCI
    device will be used.

The 2600 requires a firmware upload, which can be accomplished
using the -i or --init-data option of comedi_config.
The firmware can be
found in the comedi_nonfree_firmware tarball available
from http://www.comedi.org




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3308"
>6.1.56. mpc624.o -- Micro/sys MPC-624 PC/104 board</A
></H3
><P
>Author: Stanislaw Raczynski &lt;sraczynski@op.pl&gt;
  </P
><P
>Status: working
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3312"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Micro/sys
      </TD
><TD
>MPC-624
      </TD
><TD
>mpc624
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
    The Micro/sys MPC-624 board is based on the LTC2440 24-bit sigma-delta
    ADC chip.
    
    Subdevices supported by the driver:
    - Analog In:   supported
    - Digital I/O: not supported
    - LEDs:        not supported
    - EEPROM:      not supported

Configuration Options:
  [0] - I/O base address
  [1] - convertion rate
            Convertion rate  RMS noise  Effective Number Of Bits
         0      3.52kHz        23uV                17
         1      1.76kHz       3.5uV                20
         2       880Hz         2uV                21.3
         3       440Hz        1.4uV               21.8
         4       220Hz         1uV                22.4
         5       110Hz        750uV               22.9
         6       55Hz         510nV               23.4
         7      27.5Hz        375nV                24 
         8      13.75Hz       250nV               24.4
         9      6.875Hz       200nV               24.6
   [2] - voltage range
         0      -1.01V .. +1.01V
         1      -10.1V .. +10.1V




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3325"
>6.1.57. mpc8260cpm.o -- MPC8260 CPM module generic digital I/O lines</A
></H3
><P
>Author: ds
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3329"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Motorola
      </TD
><TD
>MPC8260 CPM
      </TD
><TD
>mpc8260cpm
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver is specific to the Motorola MPC8260 processor, allowing
you to access the processor's generic digital I/O lines.

It is apparently missing some code.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3342"
>6.1.58. multiq3.o -- Quanser Consulting MultiQ-3</A
></H3
><P
>Author: Anders Blomdell &lt;anders.blomdell@control.lth.se&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3346"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Quanser Consulting
      </TD
><TD
>MultiQ-3
      </TD
><TD
>multiq3
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;


  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3359"
>6.1.59. ni_6527.o -- National Instruments 6527</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3363"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6527
      </TD
><TD
>ni6527
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6527
      </TD
><TD
>ni6527
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;



  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3380"
>6.1.60. ni_65xx.o -- National Instruments 65xx static dio boards</A
></H3
><P
>Author: Jon Grierson &lt;jd@renko.co.uk&gt;, Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: testing
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3384"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6509
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6509
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6510
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6511
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6511
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6512
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6512
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6513
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6513
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6514
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6514
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6515
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6515
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6516
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6517
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6518
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6519
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6520
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6521
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6521
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6528
      </TD
><TD
>ni_65xx
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6528
      </TD
><TD
>ni_65xx
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;

Based on the PCI-6527 driver by ds.
The interrupt subdevice (subdevice 3) is probably broken for all boards
except maybe the 6514.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3481"
>6.1.61. ni_660x.o -- National Instruments 660x counter/timer boards</A
></H3
><P
>Author: J.P. Mellor &lt;jpmellor@rose-hulman.edu&gt;, 	Herman.Bruyninckx@mech.kuleuven.ac.be, 	Wim.Meeussen@mech.kuleuven.ac.be, 	Klaas.Gadeyne@mech.kuleuven.ac.be, 	Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3485"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6601
      </TD
><TD
>ni_660x
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6602
      </TD
><TD
>ni_660x
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Encoders work, but only with instructions, commands are not
supported yet.  PulseGeneration (both single pulse and pulse train)
works. DIO is experimental (8 channels only). Interrupts do not
work.


Things to do:
- Add commands (see ni_tio.c and ni_mio_common.c)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3502"
>6.1.62. ni_670x.o -- National Instruments 670x</A
></H3
><P
>Author: Bart Joris &lt;bjoris@advalvas.be&gt;
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3506"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6703
      </TD
><TD
>ni_670x
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6704
      </TD
><TD
>ni_670x
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Commands are not supported.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3523"
>6.1.63. ni_at_a2150.o -- National Instruments AT-A2150</A
></H3
><P
>Author: Frank Mori Hess
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3527"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>AT-A2150C
      </TD
><TD
>at_a2150c
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-2150S
      </TD
><TD
>at_a2150s
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;If you want to ac couple the board's inputs, use AREF_OTHER.

Configuration options:
  [0] - I/O port base address
  [1] - IRQ (optional, required for timed conversions)
  [2] - DMA (optional, required for timed conversions)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3544"
>6.1.64. ni_at_ao.o -- National Instruments AT-AO-6/10</A
></H3
><P
>Author: ds
  </P
><P
>Status: should work
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3548"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>AT-AO-6
      </TD
><TD
>at-ao-6
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-AO-10
      </TD
><TD
>at-ao-10
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Configuration options:
  [0] - I/O port base address
  [1] - IRQ (unused)
  [2] - DMA (unused)
  [3] - analog output range, set by jumpers on hardware (0 for -10 to 10V bipolar, 1 for 0V to 10V unipolar)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3565"
>6.1.65. ni_atmio16d.o -- National Instruments AT-MIO-16D</A
></H3
><P
>Author: Chris R. Baugher &lt;baugher@enteract.com&gt;
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3569"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16
      </TD
><TD
>atmio16
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16D
      </TD
><TD
>atmio16d
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;



  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3586"
>6.1.66. ni_atmio.o -- National Instruments AT-MIO-E series</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3590"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16E-1
      </TD
><TD
>ni_atmio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16E-2
      </TD
><TD
>ni_atmio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16E-10
      </TD
><TD
>ni_atmio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16DE-10
      </TD
><TD
>ni_atmio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-64E-3
      </TD
><TD
>ni_atmio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16XE-50
      </TD
><TD
>ni_atmio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-MIO-16XE-10
      </TD
><TD
>ni_atmio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>AT-AI-16XE-10
      </TD
><TD
>ni_atmio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;The driver has 2.6 kernel isapnp support, and
will automatically probe for a supported board if the
I/O base is left unspecified with comedi_config.
However, many of
the isapnp id numbers are unknown.  If your board is not
recognized, please send the output of 'cat /proc/isapnp'
(you may need to modprobe the isa-pnp module for
/proc/isapnp to exist) so the
id numbers for your board can be added to the driver.

Otherwise, you can use the isapnptools package to configure
your board.  Use isapnp to
configure the I/O base and IRQ for the board, and then pass
the same values as
parameters in comedi_config.  A sample isapnp.conf file is included
in the etc/ directory of Comedilib.

Comedilib includes a utility to autocalibrate these boards.  The
boards seem to boot into a state where the all calibration DACs
are at one extreme of their range, thus the default calibration
is terrible.  Calibration at boot is strongly encouraged.

To use the extended digital I/O on some of the boards, enable the
8255 driver when configuring the Comedi source tree.

External triggering is supported for some events.  The channel index
(scan_begin_arg, etc.) maps to PFI0 - PFI9.

Some of the more esoteric triggering possibilities of these boards
are not supported.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3631"
>6.1.67. ni_daq_dio24.o -- National Instruments PCMCIA DAQ-Card DIO-24</A
></H3
><P
>Author: Daniel Vecino Castel &lt;dvecino@able.es&gt;
  </P
><P
>Status: ?
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3635"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>PCMCIA DAQ-Card DIO-24
      </TD
><TD
>ni_daq_dio24
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This is just a wrapper around the 8255.o driver to properly handle
the PCMCIA interface.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3648"
>6.1.68. ni_labpc.o -- National Instruments Lab-PC (&#38; compatibles)</A
></H3
><P
>Author: Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3652"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>Lab-PC-1200
      </TD
><TD
>labpc-1200
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>Lab-PC-1200AI
      </TD
><TD
>labpc-1200ai
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>Lab-PC+
      </TD
><TD
>lab-pc+
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-1200
      </TD
><TD
>pci-1200
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Tested with lab-pc-1200.  For the older Lab-PC+, not all input ranges
and analog references will work, the available ranges/arefs will
depend on how you have configured the jumpers on your board
(see your owner's manual).

Kernel-level ISA plug-and-play support for the lab-pc-1200
boards has not
yet been added to the driver, mainly due to the fact that
I don't know the device id numbers.  If you have one
of these boards,
please file a bug report at https://bugs.comedi.org/
so I can get the necessary information from you.

The 1200 series boards have onboard calibration dacs for correcting
analog input/output offsets and gains.  The proper settings for these
caldacs are stored on the board's eeprom.  To read the caldac values
from the eeprom and store them into a file that can be then be used by
comedilib, use the comedi_calibrate program.

Configuration options - ISA boards:
  [0] - I/O port base address
  [1] - IRQ (optional, required for timed or externally triggered conversions)
  [2] - DMA channel (optional)

Configuration options - PCI boards:
  [0] - bus (optional)
  [1] - slot (optional)

The Lab-pc+ has quirky chanlist requirements
when scanning multiple channels.  Multiple channel scan
sequence must start at highest channel, then decrement down to
channel 0.  The rest of the cards can scan down like lab-pc+ or scan
up from channel zero.  Chanlists consisting of all one channel
are also legal, and allow you to pace conversions in bursts.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3677"
>6.1.69. ni_labpc_cs.o -- National Instruments Lab-PC (&#38; compatibles)</A
></H3
><P
>Author: Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3681"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>DAQCard-1200
      </TD
><TD
>daqcard-1200
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Thanks go to Fredrik Lingvall for much testing and perseverance in
helping to debug daqcard-1200 support.

The 1200 series boards have onboard calibration dacs for correcting
analog input/output offsets and gains.  The proper settings for these
caldacs are stored on the board's eeprom.  To read the caldac values
from the eeprom and store them into a file that can be then be used by
comedilib, use the comedi_calibrate program.

Configuration options:
  none

The daqcard-1200 has quirky chanlist requirements
when scanning multiple channels.  Multiple channel scan
sequence must start at highest channel, then decrement down to
channel 0.  Chanlists consisting of all one channel
are also legal, and allow you to pace conversions in bursts.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3694"
>6.1.70. ni_mio_cs.o -- National Instruments DAQCard E series</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3698"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>DAQCard-AI-16XE-50
      </TD
><TD
>ni_mio_cs
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>DAQCard-AI-16E-4
      </TD
><TD
>ni_mio_cs
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>DAQCard-6062E
      </TD
><TD
>ni_mio_cs
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>DAQCard-6024E
      </TD
><TD
>ni_mio_cs
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>DAQCard-6036E
      </TD
><TD
>ni_mio_cs
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
See the notes in the ni_atmio.o driver.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3727"
>6.1.71. ni_pcidio.o -- National Instruments PCI-DIO32HS, PCI-DIO96, PCI-6533, PCI-6503</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3731"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-DIO-32HS
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6533
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-DIO-96
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-DIO-96B
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6508
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6503
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6503B
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6503X
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6503
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6533
      </TD
><TD
>ni_pcidio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6534
      </TD
><TD
>ni_pcidio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;The DIO-96 appears as four 8255 subdevices.  See the 8255
driver notes for details.

The DIO32HS board appears as one subdevice, with 32 channels.
Each channel is individually I/O configurable.  The channel order
is 0=A0, 1=A1, 2=A2, ... 8=B0, 16=C0, 24=D0.  The driver only
supports simple digital I/O; no handshaking is supported.

DMA mostly works for the PCI-DIO32HS, but only in timed input mode.

This driver could be easily modified to support AT-MIO32HS and
AT-MIO96.

The PCI-6534 requires a firmware upload after power-up to work, the
firmware data and instructions for loading it with comedi_config
it are contained in the
comedi_nonfree_firmware tarball available from http://www.comedi.org




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN3784"
>6.1.72. ni_pcimio.o -- National Instruments PCI-MIO-E series and M series (all boards)</A
></H3
><P
>Author: ds, John Hallen, Frank Mori Hess, Rolf Mueller, Herbert Peremans,   Herman Bruyninckx, Terry Barnaby
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN3788"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-MIO-16XE-50
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-MIO-16XE-10
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6030E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-MIO-16E-1
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-MIO-16E-4
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6014
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6040E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6040E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6030E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6031E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6032E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6033E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6071E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6023E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6024E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6025E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6025E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6034E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6035E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6052E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6110
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6111
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6220
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6221
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6224
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6225
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6229
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6250
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6251
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCIe-6251
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6254
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6259
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCIe-6259
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6280
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6281
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6281
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6284
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6289
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6711
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6711
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6713
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6713
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6071E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6070E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6070E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6052E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6036E
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6731
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6733
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6733
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PCI-6143
      </TD
><TD
>ni_pcimio
      </TD
></TR
><TR
><TD
>National Instruments
      </TD
><TD
>PXI-6143
      </TD
><TD
>ni_pcimio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;These boards are almost identical to the AT-MIO E series, except that
they use the PCI bus instead of ISA (i.e., AT).  See the notes for
the ni_atmio.o driver for additional information about these boards.

Autocalibration is supported on many of the devices, using the
comedi_calibrate (or comedi_soft_calibrate for m-series) utility.
M-Series boards do analog input and analog output calibration entirely
in software. The software calibration corrects
the analog input for offset, gain and
nonlinearity.  The analog outputs are corrected for offset and gain.
See the comedilib documentation on comedi_get_softcal_converter() for
more information.

By default, the driver uses DMA to transfer analog input data to
memory.  When DMA is enabled, not all triggering features are
supported.

Digital I/O may not work on 673x.

Note that the PCI-6143 is a simultaineous sampling device with 8 convertors.
With this board all of the convertors perform one simultaineous sample during
a scan interval. The period for a scan is used for the convert time in a
Comedi cmd. The convert trigger source is normally set to TRIG_NOW by default.

The RTSI trigger bus is supported on these cards on
subdevice 10. See the comedilib documentation for details.

Information (number of channels, bits, etc.) for some devices may be
incorrect.  Please check this and submit a bug if there are problems
for your device.

SCXI is probably broken for m-series boards.





  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4005"
>6.1.73. ni_tio.o -- National Instruments general purpose counters</A
></H3
><P
>Author: J.P. Mellor &lt;jpmellor@rose-hulman.edu&gt;, 	Herman.Bruyninckx@mech.kuleuven.ac.be, 	Wim.Meeussen@mech.kuleuven.ac.be, 	Klaas.Gadeyne@mech.kuleuven.ac.be, 	Frank Mori Hess &lt;fmhess@users.sourceforge.net&gt;
  </P
><P
>Status: experimental
  </P
><PRE
CLASS="SCREEN"
>&#13;
This module is not used directly by end-users.  Rather, it
is used by other drivers (for example ni_660x and ni_pcimio)
to provide support for NI's general purpose counters.  It was
originally based on the counter code from ni_660x.c and
ni_mio_common.c.





  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4010"
>6.1.74. pcl711.o -- Advantech PCL-711 and 711b, ADLink ACL-8112</A
></H3
><P
>Author: ds, Janne Jalkanen &lt;jalkanen@cs.hut.fi&gt;, Eric Bunn &lt;ebu@cs.hut.fi&gt;
  </P
><P
>Status: mostly complete
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4014"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-711
      </TD
><TD
>pcl711
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-711B
      </TD
><TD
>pcl711b
      </TD
></TR
><TR
><TD
>AdLink
      </TD
><TD
>ACL-8112HG
      </TD
><TD
>acl8112hg
      </TD
></TR
><TR
><TD
>AdLink
      </TD
><TD
>ACL-8112DG
      </TD
><TD
>acl8112dg
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Since these boards do not have DMA or FIFOs, only immediate mode is
supported.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4039"
>6.1.75. pcl724.o -- Advantech PCL-724, PCL-722, PCL-731 ADLink ACL-7122, ACL-7124,   PET-48DIO</A
></H3
><P
>Author: Michal Dobes &lt;dobes@tesnet.cz&gt;
  </P
><P
>Status: untested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4043"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-724
      </TD
><TD
>pcl724
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-722
      </TD
><TD
>pcl722
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-731
      </TD
><TD
>pcl731
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-7122
      </TD
><TD
>acl7122
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-7124
      </TD
><TD
>acl7124
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>PET-48DIO
      </TD
><TD
>pet48dio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
This is driver for digital I/O boards PCL-722/724/731 with 144/24/48 DIO
and for digital I/O boards ACL-7122/7124/PET-48DIO with 144/24/48 DIO.
It need 8255.o for operations and only immediate mode is supported.
See the source for configuration details.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4076"
>6.1.76. pcl725.o -- Advantech PCL-725 (&#38; compatibles)</A
></H3
><P
>Author: ds
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4080"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-725
      </TD
><TD
>pcl725
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;


  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4093"
>6.1.77. pcl726.o -- Advantech PCL-726 &#38; compatibles</A
></H3
><P
>Author: ds
  </P
><P
>Status: untested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4097"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-726
      </TD
><TD
>pcl726
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-727
      </TD
><TD
>pcl727
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-728
      </TD
><TD
>pcl728
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-6126
      </TD
><TD
>acl6126
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-6128
      </TD
><TD
>acl6128
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Interrupts are not supported.

    Options for PCL-726:
     [0] - IO Base
     [2]...[7] - D/A output range for channel 1-6:
               0: 0-5V, 1: 0-10V, 2: +/-5V, 3: +/-10V,
	       4: 4-20mA, 5: unknown (external reference)

    Options for PCL-727:
     [0] - IO Base
     [2]...[13] - D/A output range for channel 1-12:
               0: 0-5V, 1: 0-10V, 2: +/-5V,
	       3: 4-20mA

    Options for PCL-728 and ACL-6128:
     [0] - IO Base
     [2], [3] - D/A output range for channel 1 and 2:
               0: 0-5V, 1: 0-10V, 2: +/-5V, 3: +/-10V,
	       4: 4-20mA, 5: 0-20mA

    Options for ACL-6126:
     [0] - IO Base
     [1] - IRQ (0=disable, 3, 5, 6, 7, 9, 10, 11, 12, 15) (currently ignored)
     [2]...[7] - D/A output range for channel 1-6:
               0: 0-5V, 1: 0-10V, 2: +/-5V, 3: +/-10V,
	       4: 4-20mA




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4126"
>6.1.78. pcl730.o -- Advantech PCL-730 (&#38; compatibles)</A
></H3
><P
>Author: José Luis Sánchez (jsanchezv@teleline.es)
  </P
><P
>Status: untested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4130"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-730
      </TD
><TD
>pcl730
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>ISO-730
      </TD
><TD
>iso730
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>		 [Adlink] ACL-7130
      </TD
><TD
>acl7130
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Interrupts are not supported.
The ACL-7130 card have an 8254 timer/counter not supported by this driver.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4151"
>6.1.79. pcl812.o -- Advantech PCL-812/PG, PCL-813/B,              ADLink ACL-8112DG/HG/PG, ACL-8113, ACL-8216,              ICP DAS A-821PGH/PGL/PGL-NDA, A-822PGH/PGL, A-823PGH/PGL, A-826PG,              ICP DAS ISO-813</A
></H3
><P
>Author: Michal Dobes &lt;dobes@tesnet.cz&gt;
  </P
><P
>Status: works (I hope. My board fire up under my hands                and I cann't test all features.)
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4155"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-812
      </TD
><TD
>pcl812
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-812PG
      </TD
><TD
>pcl812pg
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-813
      </TD
><TD
>pcl813
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-813B
      </TD
><TD
>pcl813b
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-8112DG
      </TD
><TD
>acl8112dg
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-8112HG
      </TD
><TD
>acl8112hg
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-8113
      </TD
><TD
>acl-8113
      </TD
></TR
><TR
><TD
>ADLink
      </TD
><TD
>ACL-8216
      </TD
><TD
>acl8216
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>ISO-813
      </TD
><TD
>iso813
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-821PGH
      </TD
><TD
>a821pgh
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-821PGL
      </TD
><TD
>a821pgl
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-821PGL-NDA
      </TD
><TD
>a821pclnda
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-822PGH
      </TD
><TD
>a822pgh
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-822PGL
      </TD
><TD
>a822pgl
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-823PGH
      </TD
><TD
>a823pgh
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-823PGL
      </TD
><TD
>a823pgl
      </TD
></TR
><TR
><TD
>ICP
      </TD
><TD
>A-826PG
      </TD
><TD
>a826pg
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver supports insn and cmd interfaces. Some boards support only insn
becouse their hardware don't allow more (PCL-813/B, ACL-8113, ISO-813).
Data transfer over DMA is supported only when you measure only one
channel, this is too hardware limitation of these boards.
See the head of the source file pcl812.c for configuration options.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4232"
>6.1.80. pcl816.o -- Advantech PCL-816 cards, PCL-814</A
></H3
><P
>Author: Juan Grigera &lt;juan@grigera.com.ar&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4236"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-816
      </TD
><TD
>pcl816
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-814B
      </TD
><TD
>pcl814b
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;PCL 816 and 814B have 16 SE/DIFF ADCs, 16 DACs, 16 DI and 16 DO.
Differences are at resolution (16 vs 12 bits).

The driver support AI command mode, other subdevices not written.

Analog output and digital input and output are not supported.

Configuration Options:
  [0] - IO Base
  [1] - IRQ	(0=disable, 2, 3, 4, 5, 6, 7)
  [2] - DMA	(0=disable, 1, 3)
  [3] - 0, 10=10MHz clock for 8254
            1= 1MHz clock for 8254




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4253"
>6.1.81. pcl818.o -- Advantech PCL-818 cards, PCL-718</A
></H3
><P
>Author: Michal Dobes &lt;dobes@tesnet.cz&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4257"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCL-818L
      </TD
><TD
>pcl818l
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-818H
      </TD
><TD
>pcl818h
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-818HD
      </TD
><TD
>pcl818hd
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-818HG
      </TD
><TD
>pcl818hg
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-818
      </TD
><TD
>pcl818
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-718
      </TD
><TD
>pcl718
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
All cards have 16 SE/8 DIFF ADCs, one or two DACs, 16 DI and 16 DO.
Differences are only at maximal sample speed, range list and FIFO
support.
The driver support AI mode 0, 1, 3 other subdevices (AO, DI, DO) support
only mode 0. If DMA/FIFO/INT are disabled then AI support only mode 0.
PCL-818HD and PCL-818HG support 1kword FIFO. Driver support this FIFO
but this code is untested.
A word or two about DMA. Driver support DMA operations at two ways:
1) DMA uses two buffers and after one is filled then is generated
   INT and DMA restart with second buffer. With this mode I'm unable run
   more that 80Ksamples/secs without data dropouts on K6/233.
2) DMA uses one buffer and run in autoinit mode and the data are
   from DMA buffer moved on the fly with 2kHz interrupts from RTC.
   This mode is used if the interrupt 8 is available for allocation.
   If not, then first DMA mode is used. With this I can run at
   full speed one card (100ksamples/secs) or two cards with
   60ksamples/secs each (more is problem on account of ISA limitations).
   To use this mode you must have compiled  kernel with disabled
   "Enhanced Real Time Clock Support".
   Maybe you can have problems if you use xntpd or similar.
   If you've data dropouts with DMA mode 2 then:
    a) disable IDE DMA
    b) switch text mode console to fb.

   Options for PCL-818L:
    [0] - IO Base
    [1] - IRQ	(0=disable, 2, 3, 4, 5, 6, 7)
    [2] - DMA	(0=disable, 1, 3)
    [3] - 0, 10=10MHz clock for 8254
              1= 1MHz clock for 8254
    [4] - 0,  5=A/D input  -5V.. +5V
          1, 10=A/D input -10V..+10V
    [5] - 0,  5=D/A output 0-5V  (internal reference -5V)
          1, 10=D/A output 0-10V (internal reference -10V)
	  2    =D/A output unknow (external reference)

   Options for PCL-818, PCL-818H:
    [0] - IO Base
    [1] - IRQ	(0=disable, 2, 3, 4, 5, 6, 7)
    [2] - DMA	(0=disable, 1, 3)
    [3] - 0, 10=10MHz clock for 8254
              1= 1MHz clock for 8254
    [4] - 0,  5=D/A output 0-5V  (internal reference -5V)
          1, 10=D/A output 0-10V (internal reference -10V)
	  2    =D/A output unknow (external reference)

   Options for PCL-818HD, PCL-818HG:
    [0] - IO Base
    [1] - IRQ	(0=disable, 2, 3, 4, 5, 6, 7)
    [2] - DMA/FIFO  (-1=use FIFO, 0=disable both FIFO and DMA,
                      1=use DMA ch 1, 3=use DMA ch 3)
    [3] - 0, 10=10MHz clock for 8254
              1= 1MHz clock for 8254
    [4] - 0,  5=D/A output 0-5V  (internal reference -5V)
          1, 10=D/A output 0-10V (internal reference -10V)
   	  2    =D/A output unknow (external reference)

   Options for PCL-718:
    [0] - IO Base
    [1] - IRQ	(0=disable, 2, 3, 4, 5, 6, 7)
    [2] - DMA	(0=disable, 1, 3)
    [3] - 0, 10=10MHz clock for 8254
              1= 1MHz clock for 8254
    [4] -     0=A/D Range is +/-10V
	      1=             +/-5V
	      2=             +/-2.5V
	      3=             +/-1V
	      4=             +/-0.5V
	      5=  	     user defined bipolar
	      6=	     0-10V
	      7=	     0-5V
 	      8=	     0-2V
	      9=	     0-1V
	     10=	     user defined unipolar
    [5] - 0,  5=D/A outputs 0-5V  (internal reference -5V)
          1, 10=D/A outputs 0-10V (internal reference -10V)
	      2=D/A outputs unknow (external reference)
    [6] - 0, 60=max  60kHz A/D sampling
          1,100=max 100kHz A/D sampling (PCL-718 with Option 001 installed)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4290"
>6.1.82. pcm3724.o -- Advantech PCM-3724</A
></H3
><P
>Author: Drew Csillag &lt;drew_csillag@yahoo.com&gt;
  </P
><P
>Status: tested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4294"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCM-3724
      </TD
><TD
>pcm724
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
This is driver for digital I/O boards PCM-3724 with 48 DIO.
It needs 8255.o for operations and only immediate mode is supported.
See the source for configuration details.

Copy/pasted/hacked from pcm724.c




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4307"
>6.1.83. pcm3730.o -- PCM3730</A
></H3
><P
>Author: Blaine Lee
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4311"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Advantech
      </TD
><TD
>PCM-3730
      </TD
><TD
>pcm3730
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - I/O port base




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4324"
>6.1.84. pcmad.o -- Winsystems PCM-A/D12, PCM-A/D16</A
></H3
><P
>Author: ds
  </P
><P
>Status: untested
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4328"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Winsystems
      </TD
><TD
>PCM-A/D12
      </TD
><TD
>pcmad12
      </TD
></TR
><TR
><TD
>Winsystems
      </TD
><TD
>PCM-A/D16
      </TD
><TD
>pcmad16
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver was written on a bet that I couldn't write a driver
in less than 2 hours.  I won the bet, but never got paid.  =(

Configuration options:
  [0] - I/O port base
  [1] - unused
  [2] - Analog input reference
          0 = single ended
          1 = differential
  [3] - Analog input encoding (must match jumpers)
          0 = straight binary
          1 = two's complement




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4345"
>6.1.85. pcmda12.o -- A driver for the Winsystems PCM-D/A-12</A
></H3
><P
>Author: Calin Culianu &lt;calin@ajvar.org&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4349"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Winsystems
      </TD
><TD
>PCM-D/A-12
      </TD
><TD
>pcmda12
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;A driver for the relatively straightforward-to-program PCM-D/A-12.
This board doesn't support commands, and the only way to set its
analog output range is to jumper the board.  As such,
comedi_data_write() ignores the range value specified.

The board uses 16 consecutive I/O addresses starting at the I/O port
base address.  Each address corresponds to the LSB then MSB of a
particular channel from 0-7.

Note that the board is not ISA-PNP capable and thus
needs the I/O port comedi_config parameter.

Note that passing a nonzero value as the second config option will
enable "simultaneous xfer" mode for this board, in which AO writes
will not take effect until a subsequent read of any AO channel.  This
is so that one can speed up programming by preloading all AO registers
with values before simultaneously setting them to take effect with one
read command.

Configuration Options:
  [0] - I/O port base address
  [1] - Do Simultaneous Xfer (see description)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4362"
>6.1.86. pcmmio.o -- A driver for the PCM-MIO multifunction board</A
></H3
><P
>Author: Calin Culianu &lt;calin@ajvar.org&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4366"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Winsystems
      </TD
><TD
>PCM-MIO
      </TD
><TD
>pcmmio
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;A driver for the relatively new PCM-MIO multifunction board from
Winsystems.  This board is a PC-104 based I/O board.  It contains
four subdevices:
  subdevice 0 - 16 channels of 16-bit AI
  subdevice 1 - 8 channels of 16-bit AO
  subdevice 2 - first 24 channels of the 48 channel of DIO (with edge-triggered interrupt support)
  subdevice 3 - last 24 channels of the 48 channel DIO (no interrupt support for this bank of channels)

  Some notes:

  Synchronous reads and writes are the only things implemented for AI and AO,
  even though the hardware itself can do streaming acquisition, etc.  Anyone
  want to add asynchronous I/O for AI/AO as a feature?  Be my guest...

  Asynchronous I/O for the DIO subdevices *is* implemented, however!  They are
  basically edge-triggered interrupts for any configuration of the first
  24 DIO-lines.

  Also note that this interrupt support is untested.

  A few words about edge-detection IRQ support (commands on DIO):

  * To use edge-detection IRQ support for the DIO subdevice, pass the IRQ
    of the board to the comedi_config command.  The board IRQ is not jumpered
    but rather configured through software, so any IRQ from 1-15 is OK.

  * Due to the genericity of the comedi API, you need to create a special
    comedi_command in order to use edge-triggered interrupts for DIO.

  * Use comedi_commands with TRIG_NOW.  Your callback will be called each
    time an edge is detected on the specified DIO line(s), and the data
    values will be two sample_t's, which should be concatenated to form
    one 32-bit unsigned int.  This value is the mask of channels that had
    edges detected from your channel list.  Note that the bits positions
    in the mask correspond to positions in your chanlist when you
    specified the command and *not* channel id's!

 *  To set the polarity of the edge-detection interrupts pass a nonzero value
    for either CR_RANGE or CR_AREF for edge-up polarity, or a zero
    value for both CR_RANGE and CR_AREF if you want edge-down polarity.


Configuration Options:
  [0] - I/O port base address
  [1] - IRQ (optional -- for edge-detect interrupt support only, leave out if you don't need this feature)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4379"
>6.1.87. pcmuio.o -- A driver for the PCM-UIO48A and PCM-UIO96A boards from Winsystems.</A
></H3
><P
>Author: Calin Culianu &lt;calin@ajvar.org&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4383"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Winsystems
      </TD
><TD
>PCM-UIO48A
      </TD
><TD
>pcmuio48
      </TD
></TR
><TR
><TD
>Winsystems
      </TD
><TD
>PCM-UIO96A
      </TD
><TD
>pcmuio96
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;A driver for the relatively straightforward-to-program PCM-UIO48A and
PCM-UIO96A boards from Winsystems.  These boards use either one or two
(in the 96-DIO version) WS16C48 ASIC HighDensity I/O Chips (HDIO).
This chip is interesting in that each I/O line is individually
programmable for INPUT or OUTPUT (thus comedi_dio_config can be done
on a per-channel basis).  Also, each chip supports edge-triggered
interrupts for the first 24 I/O lines.  Of course, since the
96-channel version of the board has two ASICs, it can detect polarity
changes on up to 48 I/O lines.  Since this is essentially an (non-PnP)
ISA board, I/O Address and IRQ selection are done through jumpers on
the board.  You need to pass that information to this driver as the
first and second comedi_config option, respectively.  Note that the
48-channel version uses 16 bytes of IO memory and the 96-channel
version uses 32-bytes (in case you are worried about conflicts).  The
48-channel board is split into two 24-channel comedi subdevices.
The 96-channel board is split into 4 24-channel DIO subdevices.

Note that IRQ support has been added, but it is untested.

To use edge-detection IRQ support, pass the IRQs of both ASICS
(for the 96 channel version) or just 1 ASIC (for 48-channel version).
Then, use use comedi_commands with TRIG_NOW.
Your callback will be called each time an edge is triggered, and the data
values will be two sample_t's, which should be concatenated to form one
32-bit unsigned int.  This value is the mask of channels that had
edges detected from your channel list.  Note that the bits positions
in the mask correspond to positions in your chanlist when you specified
the command and *not* channel id's!

To set the polarity of the edge-detection interrupts pass a nonzero value for
either CR_RANGE or CR_AREF for edge-up polarity, or a zero value for both
CR_RANGE and CR_AREF if you want edge-down polarity.

In the 48-channel version:

On subdev 0, the first 24 channels channels are edge-detect channels.

In the 96-channel board you have the collowing channels that can do edge detection:

subdev 0, channels 0-24  (first 24 channels of 1st ASIC)
subdev 2, channels 0-24  (first 24 channels of 2nd ASIC)

Configuration Options:
  [0] - I/O port base address
  [1] - IRQ (for first ASIC, or first 24 channels)
  [2] - IRQ for second ASIC (pcmuio96 only - IRQ for chans 48-72 .. can be the same as first irq!)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4400"
>6.1.88. poc.o -- Generic driver for very simple devices</A
></H3
><P
>Author: ds
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4404"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Keithley Metrabyte
      </TD
><TD
>DAC-02
      </TD
><TD
>dac02
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-733
      </TD
><TD
>pcl733
      </TD
></TR
><TR
><TD
>Advantech
      </TD
><TD
>PCL-734
      </TD
><TD
>pcl734
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;This driver is indended to support very simple ISA-based devices,

Configuration options:
  [0] - I/O port base




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4425"
>6.1.89. quatech_daqp_cs.o -- Quatech DAQP PCMCIA data capture cards</A
></H3
><P
>Author: Brent Baccala &lt;baccala@freesoft.org&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4429"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Quatech
      </TD
><TD
>DAQP-208
      </TD
><TD
>daqp
      </TD
></TR
><TR
><TD
>Quatech
      </TD
><TD
>DAQP-308
      </TD
><TD
>daqp
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;


  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4446"
>6.1.90. rtd520.o -- Real Time Devices PCI4520/DM7520</A
></H3
><P
>Author: Dan Christian
  </P
><P
>Status: Works.  Only tested on DM7520-8.  Not SMP safe.
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4450"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Real Time Devices
      </TD
><TD
>DM7520HR-1
      </TD
><TD
>DM7520
      </TD
></TR
><TR
><TD
>Real Time Devices
      </TD
><TD
>DM7520HR-8
      </TD
><TD
>DM7520-8
      </TD
></TR
><TR
><TD
>Real Time Devices
      </TD
><TD
>PCI4520
      </TD
><TD
>PCI4520
      </TD
></TR
><TR
><TD
>Real Time Devices
      </TD
><TD
>PCI4520-8
      </TD
><TD
>PCI4520-8
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - PCI bus of device (optional)
          If bus/slot is not specified, the first available PCI
          device will be used.
  [1] - PCI slot of device (optional)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4475"
>6.1.91. rti800.o -- Analog Devices RTI-800/815</A
></H3
><P
>Author: ds
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4479"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Analog Devices
      </TD
><TD
>RTI-800
      </TD
><TD
>rti800
      </TD
></TR
><TR
><TD
>Analog Devices
      </TD
><TD
>RTI-815
      </TD
><TD
>rti815
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration options:
  [0] - I/O port base address
  [1] - IRQ
  [2] - A/D reference
          0 = differential
          1 = pseudodifferential (common)
          2 = single-ended
  [3] - A/D range
          0 = [-10,10]
          1 = [-5,5]
          2 = [0,10]
  [4] - A/D encoding
          0 = two's complement
          1 = straight binary
  [5] - DAC 0 range
          0 = [-10,10]
          1 = [0,10]
  [5] - DAC 0 encoding
          0 = two's complement
          1 = straight binary
  [6] - DAC 1 range (same as DAC 0)
  [7] - DAC 1 encoding (same as DAC 0)




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4496"
>6.1.92. rti802.o -- Analog Devices RTI-802</A
></H3
><P
>Author: Anders Blomdell &lt;anders.blomdell@control.lth.se&gt;
  </P
><P
>Status: works
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4500"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Analog Devices
      </TD
><TD
>RTI-802
      </TD
><TD
>rti802
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Configuration Options:
    [0] - i/o base
    [1] - unused
    [2] - dac#0  0=two's comp, 1=straight
    [3] - dac#0  0=bipolar, 1=unipolar
    [4] - dac#1 ...
    ...
    [17] - dac#7 ...




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4513"
>6.1.93. s526.ko -- Sensoray 526 driver</A
></H3
><P
>Author: Richie 	Everett Wang &lt;everett.wang@everteq.com&gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4517"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Sensoray
      </TD
><TD
>526
      </TD
><TD
>s526
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;Encoder works
Analog input works
Analog output works
PWM output works
Commands are not supported yet.

Configuration Options:

comedi_config /dev/comedi0 s526 0x2C0,0x3




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4530"
>6.1.94. s626.ko -- Sensoray 626 driver</A
></H3
><P
>Author: Richie 	Everett Wang &amp;lt;everett.wang&amp;#64;everteq.com&amp;gt;
  </P
><P
>Status: experimental
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4534"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Sensoray
      </TD
><TD
>626
      </TD
><TD
>s626
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
  Configuration Options:
  analog input:
   none

  analog output:
   none

  digital channel:
   s626 has 3 dio subdevices (2,3 and 4) each with 16 i/o channels
   supported configuration options:
   INSN_CONFIG_DIO_QUERY
   COMEDI_INPUT
   COMEDI_OUTPUT

  encoder:
   Every channel must be configured before reading.

   Example code

   insn.insn=INSN_CONFIG;   //configuration instruction
   insn.n=1;                //number of operation (must be 1)
   insn.data=&amp;initialvalue; //initial value loaded into encoder
                            //during configuration
   insn.subdev=5;           //encoder subdevice
   insn.chanspec=CR_PACK(encoder_channel,0,AREF_OTHER); //encoder_channel
                                                        //to configure

   comedi_do_insn(cf,&amp;insn); //executing configuration




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4547"
>6.1.95. serial2002.o -- Driver for serial connected hardware</A
></H3
><P
>Author: Anders Blomdell
  </P
><P
>Status: in development
  </P
><PRE
CLASS="SCREEN"
>&#13;


  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4552"
>6.1.96. skel.o -- Skeleton driver, an example for driver writers</A
></H3
><P
>Author: ds
  </P
><P
>Status: works
  </P
><PRE
CLASS="SCREEN"
>&#13;
This driver is a documented example on how Comedi drivers are
written.

Configuration Options:
  none




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4557"
>6.1.97. ssv_dnp.o -- SSV Embedded Systems DIL/Net-PC</A
></H3
><P
>Author: Robert Schwebel &lt;robert@schwebel.de&gt;
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4561"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>SSV Embedded Systems
      </TD
><TD
>DIL/Net-PC 1486
      </TD
><TD
>dnp-1486
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;


  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4574"
>6.1.98. unioxx5.o -- Driver for Fastwel UNIOxx-5 (analog and digital i/o) boards.</A
></H3
><P
>Author: Kruchinin Daniil (asgard) &lt;asgard@etersoft.ru&gt;
  </P
><P
>Status: unknown
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4578"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>Fastwel
      </TD
><TD
>UNIOxx-5
      </TD
><TD
>unioxx5
      </TD
></TR
><TR
><TD
>Fastwel
      </TD
><TD
>UNIOxx-5
      </TD
><TD
>unioxx5
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13; This card supports digital and analog I/O. It written for g01          
 subdevices only.                                                       
 channels range: 0 .. 23 dio channels                                   
 and 0 .. 11 analog modules range                                       
 During attaching unioxx5 module displays modules identifiers           
 (see dmesg after comedi_config) in format:                             
 | [module_number] module_id |                                          




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4595"
>6.1.99. usbdux.c -- University of Stirling USB DAQ &#38; INCITE Technology Limited</A
></H3
><P
>Author: Bernd Porr &lt;BerndPorr@f2s.com&gt;
  </P
><P
>Status: Stable Configuration options:   You have to upload firmware with the -i option. The   firmware is usually installed under /usr/share/usb or   /usr/local/share/usb.
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4599"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ITL
      </TD
><TD
>USB-DUX
      </TD
><TD
>usbdux.o
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;
Connection scheme for the counter at the digital port:
  0=/CLK0, 1=UP/DOWN0, 2=RESET0, 4=/CLK1, 5=UP/DOWN1, 6=RESET1.
  The sampling rate of the counter is approximately 500Hz.

Please note that under USB2.0 the length of the channel list determines
the max sampling rate. If you sample only one channel you get 8kHz
sampling rate. If you sample two channels you get 4kHz and so on.




  </PRE
></DIV
><DIV
CLASS="SECTION"
><H3
CLASS="SECTION"
><A
NAME="AEN4612"
>6.1.100. usbduxfast.c -- ITL USB-DUXfast</A
></H3
><P
>Author: Bernd Porr &lt;BerndPorr@f2s.com&gt;
  </P
><P
>Status: testing
  </P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN4616"
></A
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><COL><THEAD
><TR
><TH
>Manufacturer</TH
><TH
>Device</TH
><TH
>Name</TH
></TR
></THEAD
><TBODY
><TR
><TD
>ITL
      </TD
><TD
>USB-DUX
      </TD
><TD
>usbduxfast.o
      </TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
><PRE
CLASS="SCREEN"
>&#13;


  </PRE
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x1394.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x4629.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Writing a <ACRONYM
CLASS="ACRONYM"
>Comedi</ACRONYM
> driver</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><ACRONYM
CLASS="ACRONYM"
>Comedi</ACRONYM
> Reference</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>