5. Low-level drivers

5.1. 8255.o -- generic 8255 support

Author: ds

ManufacturerDeviceName
standard 8255 8255


The classic in digital I/O.  Three channels of 8 bit digital I/O,
each channel is I/O configurable, channels 0 and 1 in 8 bit units,
channel 2 in 4 bit units.  The driver does not support modes 1 or 2
yet, since I don't really understand how they would potentially be used.
(Send me email if you want to use these modes.)  If and when
modes 1 and 2 are supported, there is a strong possibility that the
3rd channel will be split into two 4-bit channels.  (Refer to the
8255 spec for clues as to why.)

You should configure 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 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.




  

5.2. adl_pci9118.o -- Adlink PCI-9118DG, PCI-9118HG, PCI-9118HR

Author: Michal Dobes <majkl@tesnet.cz>

ManufacturerDeviceName
ADLink PCI-9118DG pci9118dg
ADLink PCI-9118HG pci9118hg
ADLink PCI-9118HR pci9118hr


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->scan_begin_src=TRIG_EXT then trigger input is TGIN (pin 46).
- If cmd->convert_src=TRIG_EXT then trigger input is EXTTRG (pin 44).
- If cmd->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 is know problem with this driver:
- If you use scan_begin_src=TRIG_EXT & convert_src=TRIG_TIMER
  then this mode sometimes discards some samples. :-((

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.

If you have an external multiplexer, the third option in the option
list should be used to indicate the number of channels in the
multiplexer.




  

5.3. adv_pci1710.o -- Advantech PCI-1710, PCI-1710HG, PCI-1711, PCI-1713, Advantech PCI-1720, PCI-1731

Author: Michal Dobes <majkl@tesnet.cz>

ManufacturerDeviceName
Advantech PCI-1710 pci1710
Advantech PCI-1710HG pci1710hg
Advantech PCI-1711 pci1711
Advantech PCI-1713 pci1713
Advantech PCI-1720 pci1720
Advantech PCI-1731 pci1731


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.




  

5.4. amplc_pci230.o -- Driver for Amplicom PCI230 and PCI260 Multifunction I/O boards

Author: Allan Willcox <allanwillcox@ozemail.com.au>

ManufacturerDeviceName
Amplicon PCI230 amplc_pci230
Amplicon PCI260 amplc_pci230




  

5.5. cb_pcidas.o -- Driver for the ComputerBoards/MeasurementComputing cards of the PCI-DAS series with the AMCC S5933 PCI controller.

Author: Ivan Martinez <ivanmr@altavista.com>, Frank Mori Hess <fmhess@uiuc.edu>

ManufacturerDeviceName
Measurement Computing PCI-DAS1602/16 cb_pcidas
Measurement Computing PCI-DAS1602/16jr cb_pcidas
Measurement Computing PCI-DAS1602/12 cb_pcidas
Measurement Computing PCI-DAS1200 cb_pcidas
Measurement Computing PCI-DAS1200jr cb_pcidas
Measurement Computing PCI-DAS1000 cb_pcidas
Measurement Computing PCI-DAS1001 cb_pcidas
Measurement Computing PCI_DAS1002 cb_pcidas


  The boards' autocalibration features are not yet supported.


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.

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.




  

5.6. cb_pcidas64.o -- Driver for the ComputerBoards/MeasurementComputing PCI-DAS64xxx series with the PLX 9080 PCI controller.

Author: Frank Mori Hess <fmhess@uiuc.edu>

ManufacturerDeviceName
Measurement Computing PCI-DAS6402/16 cb_pcidas64
Measurement Computing PCI-DAS6402/12 cb_pcidas64
Measurement Computing PCI-DAS64/M1/16 cb_pcidas64
Measurement Computing PCI-DAS64/M2/16 cb_pcidas64
Measurement Computing PCI-DAS64/M3/16 cb_pcidas64
Measurement Computing PCI-DAS6402/16/JR cb_pcidas64
Measurement Computing PCI-DAS64/M1/16/JR cb_pcidas64
Measurement Computing PCI-DAS64/M2/16/JR cb_pcidas64
Measurement Computing PCI-DAS64/M3/16/JR cb_pcidas64
Measurement Computing PCI-DAS64/M1/14 cb_pcidas64
Measurement Computing PCI-DAS64/M2/14 cb_pcidas64
1 - PCI slot of device optional


Basic insn support should work, but untested as far as I know.
Has command support for analog input, which may also work.  Support
for pci dma transfers can be enabled by editing the source to #define
PCIDMA instead of #undef'ing it. This driver is in need of stout-hearted
testers who aren't afraid to crash their computers in the name of progress.
Feel free to send and success/failure reports to author.

Some devices are not identified because the PCI device IDs are not known.




  

5.7. cb_pcidda.o -- ComputerBoards/MeasurementComputing PCI-DDA series

Author: Ivan Martinez <ivanmr@altavista.com>, Frank Mori Hess <fmhess@users.sourceforge.net>

ManufacturerDeviceName
Measurement Computing PCI-DDA08/12 cb_pcidda
Measurement Computing PCI-DDA04/12 cb_pcidda
Measurement Computing PCI-DDA02/12 cb_pcidda
Measurement Computing PCI-DDA08/16 cb_pcidda
Measurement Computing PCI-DDA04/16 cb_pcidda
Measurement Computing PCI-DDA02/16 cb_pcidda


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 IF YOU ARE USING IT WITH A DIFFERENT CARD
<ivanmr@altavista.com>.




  

5.8. comedi_parport.o -- Standard PC parallel port

Author: ds

ManufacturerDeviceName
standard parallel port comedi_parport


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


Channel 0 and 2 are output, channel 1 is input.  I know that it
is possible to change this with ECP/EPP parallel ports, but this
driver is a cheap hack.

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 13 as a external triggering
pin, which can be used to wake up tasks.  (or is that pin 10. --ds)




  

5.9. comedi_rt_timer.o -- Command emulator using real-time tasks

Author: ds


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] - device index
  [1] - subdevice index




  

5.10. daqboard2000.o -- IOTech DAQBoard/2000

Author: Anders Blomdell <anders.blomdell@control.lth.se>

ManufacturerDeviceName
IOTech DAQBoard/2000 daqboard2000


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 either
be compiled into the driver or loaded by comedi_config using the -i
option.  The latter is recommended, in order to save a bit of kernel
memory.

Configuration options:
  [0] - pointer to FPGA initialization data
          The pointer and size options are handled automatically
          by comedi_config when you use the -i option.
  [1] - size of FPGA data




  

5.11. das08.o -- DAS-08 compatible boards

Author: Anders Blomdell <anders.blomdell@control.lth.se>

ManufacturerDeviceName
ComputerBoards DAS08 das08
ComputerBoards DAS08-PGM das08-pgm
ComputerBoards DAS08-PGH das08-pgh
ComputerBoards DAS08-PGL das08-pgl
ComputerBoards DAS08-AOH das08-aoh
ComputerBoards DAS08-AOL das08-aol
ComputerBoards DAS08-AOM das08-aom
ComputerBoards DAS08/JR-AO das08/jr-ao
ComputerBoards DAS08/JR-16-AO das08jr-16-ao
ComputerBoards PCI-DAS08 pci-das08
ComputerBoards PCM-DAS08 pcm-das08
ComputerBoards PC104-DAS08 pc104-das08
ComputerBoards DAS08/JR/16 das08jr/16


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'.

Options (for pcm-das08):
        NONE

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




  

5.12. das16.o -- DAS16 compatible boards

Author: Anders Blomdell <anders.blomdell@control.lth.se>

ManufacturerDeviceName
Keithley Metrabyte DAS-16 das-16
Keithley Metrabyte DAS-16G das-16g
Keithley Metrabyte DAS-16F das-16f
Keithley Metrabyte DAS-1201 das-1201
Keithley Metrabyte DAS-1202 das-1202
Keithley Metrabyte DAS-1401 das-1401
Keithley Metrabyte DAS-1402 das-1402
Keithley Metrabyte DAS-1601 das-1601
Keithley Metrabyte DAS-1602 das-1602
ComputerBoards PC104-DAS16/JR pc104-das16jr
ComputerBoards PC104-DAS16JR/16 pc104-das16jr/16
ComputerBoards CIO-DAS16/JR cio-das16/jr
ComputerBoards CIO-DAS1401/12 cio-das1401/12
ComputerBoards CIO-DAS1402/12 cio-das1402/12
ComputerBoards CIO-DAS1402/16 cio-das1402/16
ComputerBoards CIO-DAS1601/12 cio-das1601/12
ComputerBoards CIO-DAS1602/12 cio-das1602/12
ComputerBoards CIO-DAS1602/16 cio-das1602/16
ComputerBoards CIO-DAS16/330 cio-das16/330


A rewrite of the das16 and das1600 drivers.

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

Both an irq line and dma channel are required for timed or externally
triggered conversions.




  

5.13. das16m1.o -- CIO-DAS16/M1

Author: Anders Blomdell <anders.blomdell@control.lth.se>

ManufacturerDeviceName
MeasurementComputing CIO-DAS16/M1 cio-das16/m1


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.




  

5.14. das1800.o -- Keithley Metrabyte DAS1800 (& compatibles)

Author: Frank Mori Hess <fmhess@uiuc.edu>

ManufacturerDeviceName
Keithley Metrabyte DAS-1701ST das-1701st
Keithley Metrabyte DAS-1701ST-DA das-1701st-da
Keithley Metrabyte DAS-1701/AO das-1701ao
Keithley Metrabyte DAS-1702ST das-1702st
Keithley Metrabyte DAS-1702ST-DA das-1702st-da
Keithley Metrabyte DAS-1702HR das-1702hr
Keithley Metrabyte DAS-1702HR-DA das-1702hr-da
Keithley Metrabyte DAS-1702/AO das-1702ao
Keithley Metrabyte DAS-1801ST das-1801st
Keithley Metrabyte DAS-1801ST-DA das-1801st-da
Keithley Metrabyte DAS-1801HC das-1801hc
Keithley Metrabyte DAS-1801AO das-1801ao
Keithley Metrabyte DAS-1802ST das-1802st
Keithley Metrabyte DAS-1802ST-DA das-1802st-da
Keithley Metrabyte DAS-1802HR das-1802hr
Keithley Metrabyte DAS-1802HR-DA das-1802hr-da
Keithley Metrabyte DAS-1802HC das-1802hc
Keithley Metrabyte DAS-1802AO das-1802ao


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)




  

5.15. das6402.o -- Keithley Metrabyte DAS6402 (& compatibles)

Author: Oystein Svendsen <svendsen@pvv.org>

ManufacturerDeviceName
Keithley Metrabyte DAS6402 das6402




  

5.16. das800.o -- Keithley Metrabyte DAS800 (& compatibles)

Author: Frank Mori Hess <fmhess@uiuc.edu>

ManufacturerDeviceName
Keithley Metrabyte DAS-800 das-800
Keithley Metrabyte DAS-801 das-801
Keithley Metrabyte DAS-802 das-802
Measurement Computing CIO-DAS800 cio-das800
Measurement Computing CIO-DAS801 cio-das801
Measurement Computing CIO-DAS802 cio-das802
Measurement Computing CIO-DAS802/16 cio-das802/16


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




  

5.17. dt2801.o -- Data Translation DT2801 series and DT01-EZ

Author: ds

ManufacturerDeviceName
Data Translation DT2801 dt2801
Data Translation DT2801-A dt2801
Data Translation DT2801/5716A dt2801
Data Translation DT2805 dt2801
Data Translation DT2805/5716A dt2801
Data Translation DT2808 dt2801
Data Translation DT2818 dt2801
Data Translation DT2809 dt2801
Data Translation DT01-EZ dt2801


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)




  

5.18. dt2811.o -- Data Translation DT2811

Author: ds

ManufacturerDeviceName
Data Translation DT2811-PGL dt2811-pgl
Data Translation DT2811-PGH dt2811-pgh


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)




  

5.19. dt2814.o -- Data Translation DT2814

Author: ds

ManufacturerDeviceName
Data Translation DT2814 dt2814


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.




  

5.20. dt2815.o -- Data Translation DT2815

Author: ds

ManufacturerDeviceName
Data Translation DT2815 dt2815


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)




  

5.21. dt2817.o -- Data Translation DT2817

Author: ds

ManufacturerDeviceName
Data Translation DT2817 dt2817


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




  

5.22. dt282x.o -- Data Translation DT2821 series (including DT-EZ)

Author: ds

ManufacturerDeviceName
Data Translation DT2821 dt2821
Data Translation DT2823 dt2823
Data Translation DT2824-PGH dt2824-pgh
Data Translation DT2824-PGL dt2824-pgl
Data Translation DT2825 dt2825
Data Translation DT2827 dt2827
Data Translation DT2828 dt2828
Data Translation DT21-EZ dt21-ez
Data Translation DT23-EZ dt23-ez
Data Translation DT24-EZ dt24-ez
Data Translation DT24-EZ-PGL dt24-ez-pgl


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]





  

5.23. dt3000.o -- Data Translation DT3000 series

Author: ds

ManufacturerDeviceName
Data Translation DT3001 dt3000
Data Translation DT3001-PGL dt3000
Data Translation DT3002 dt3000
Data Translation DT3003 dt3000
Data Translation DT3003-PGL dt3000
Data Translation DT3004 dt3000
Data Translation DT3005 dt3000
Data Translation DT3004-200 dt3000




  

5.24. fl512.o -- unknown

Author: unknown

ManufacturerDeviceName
unknown FL512 fl512


Digital I/O is not supported.

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




  

5.25. icp_multi.o -- Inova ICP Multi

Author: Anne Smorthit <anne.smorthit@sfwte.ch>

ManufacturerDeviceName
Inova ICP Multi icp_multi




  

5.26. ii_pci20kc.o -- Intelligent Instruments PCI-20001C carrier board

Author: Markus Kempf <kempf@matsci.uni-sb.de>

ManufacturerDeviceName
Intelligent Instrumentation PCI-20001C ii_pci20kc


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




  

5.27. mpc8260cpm.o -- MPC8260 CPM module generic digital I/O lines

Author: ds

ManufacturerDeviceName
Motorola MPC8260 CPM mpc8260cpm


This driver is specific to the Motorola MPC8260 processor, allowing
you to access the processor's generic digital I/O lines.




  

5.28. multiq3.o -- Quanser Consulting MultiQ-3

Author: Anders Blomdell <anders.blomdell@control.lth.se>

ManufacturerDeviceName
Quanser Consulting MultiQ-3 multiq3




  

5.29. ni_670x.o -- National Instruments 670x

Author: Bart Joris <bjoris@advalvas.be>

ManufacturerDeviceName
National Instruments PCI-6703 ni_670x
National Instruments PCI-6704 ni_670x


The driver currently does not recognize the 6704, because the PCI
ID is not known.




  

5.30. ni_at_a2150.o -- National Instruments AT-A2150

Author: Frank Mori Hess

ManufacturerDeviceName
National Instruments AT-A2150C at_a2150c
National Instruments AT-2150S at_a2150s


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)




  

5.31. ni_atmio.o -- National Instruments AT-MIO-E series

Author: ds

ManufacturerDeviceName
National Instruments AT-MIO-16E-1 ni_atmio
National Instruments AT-MIO-16E-2 ni_atmio
National Instruments AT-MIO-16E-10 ni_atmio
National Instruments AT-MIO-16DE-10 ni_atmio
National Instruments AT-MIO-64E-3 ni_atmio
National Instruments AT-MIO-16XE-50 ni_atmio
National Instruments AT-MIO-16XE-10 ni_atmio
National Instruments AT-AI-16XE-10 ni_atmio


The isapnptools package is required to use this board.  Use isapnp to
configure the I/O base for the board, and then pass the same value as
a parameter in comedi_config.  A sample isapnp.conf file is included
in the etc/ directory.

Assuming that the NI spec is correct, the driver should correctly
identify every board in the series.  Each channel should have the
appropriate parameters, i.e., input/output ranges, number of bits,
etc.  If the driver fails to recognize your card or does not have
the correct parameters, please contact me.

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.

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




  

5.32. ni_atmio16d.o -- National Instruments AT-MIO-16D

Author: Chris R. Baugher <baugher@enteract.com>

ManufacturerDeviceName
National Instruments AT-MIO-16 atmio16
National Instruments AT-MIO-16D atmio16d




  

5.33. ni_labpc.o -- National Instruments Lab-PC (& compatibles)

Author: Frank Mori Hess <fmhess@users.sourceforge.net>

ManufacturerDeviceName
National Instruments DAQCard-1200 daqcard-1200
National Instruments Lab-PC-1200 labpc-1200
National Instruments Lab-PC-1200AI labpc-1200ai
National Instruments Lab-PC+ lab-pc+
National Instruments PCI-1200 pci-1200


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)

Configuration options - PCMCIA boards:
  none

Lab-pc+ has quirky chanlist when scanning multiple channels.  Scan sequence must start
at highest channel, then decrement down to channel 0.  1200 series cards can scan down
like lab-pc+ or scan up from channel zero.




  

5.34. ni_mio_cs.o -- National Instruments DAQCard E series

Author: ds

ManufacturerDeviceName
National Instruments DAQCard-AI-16XE-50 ni_mio_cs
National Instruments DAQCard-AI-16E-4 ni_mio_cs
National Instruments DAQCard-6062E ni_mio_cs
National Instruments DAQCard-6024E ni_mio_cs


See the notes in the ni_atmio.o driver.




  

5.35. ni_pcidio.o -- National Instruments PCI-DIO32HS, PCI-DIO96, PCI-6533, PCI-6503

Author: ds

ManufacturerDeviceName
National Instruments PCI-DIO-32HS ni_pcidio
National Instruments PXI-6533 ni_pcidio
National Instruments PCI-DIO-96 ni_pcidio
National Instruments PCI-DIO-96B ni_pcidio
National Instruments PXI-6508 ni_pcidio
National Instruments PCI-6503 ni_pcidio
National Instruments PCI-6503B ni_pcidio
National Instruments PCI-6503X ni_pcidio
National Instruments PXI-6503 ni_pcidio


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,
as one might guess, is 0=A0, 1=A1, 2=A2, ... 8=B0, 16=C0, 24=D0.

DMA is halfway completed, but not operational, for the PCI-DIO32HS.

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




  

5.36. ni_pcimio.o -- National Instruments PCI-MIO-E series (all boards)

Author: ds

ManufacturerDeviceName
National Instruments PCI-MIO-16XE-50 ni_pcimio
National Instruments PCI-MIO-16XE-10 ni_pcimio
National Instruments PXI-6030E ni_pcimio
National Instruments PCI-MIO-16E-1 ni_pcimio
National Instruments PCI-MIO-16E-4 ni_pcimio
National Instruments PCI-6040E ni_pcimio
National Instruments PXI-6040E ni_pcimio
National Instruments PCI-6031E ni_pcimio
National Instruments PCI-6032E ni_pcimio
National Instruments PCI-6033E ni_pcimio
National Instruments PCI-6071E ni_pcimio
National Instruments PCI-6023E ni_pcimio
National Instruments PCI-6024E ni_pcimio
National Instruments PCI-6025E ni_pcimio
National Instruments PXI-6025E ni_pcimio
National Instruments PCI-6034E ni_pcimio
National Instruments PCI-6035E ni_pcimio
National Instruments PCI-6052E ni_pcimio
National Instruments PCI-6110E ni_pcimio
National Instruments PCI-6111E ni_pcimio
National Instruments PCI-6711 ni_pcimio
National Instruments PCI-6713 ni_pcimio
National Instruments PXI-6071E ni_pcimio
National Instruments PXI-6070E ni_pcimio
National Instruments PXI-6052E ni_pcimio
National Instruments PCI-6036E ni_pcimio


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 above for
ni_atmio.o for additional information about these boards.

Comedi knows the PCI ID codes for many of the boards in this series,
but the NI documentation is incomplete in this matter.  If you have
a PCI-MIO board that Comedi doesn't recognize, send me the PCI device
ID, as can be found in /proc/pci or the output of lspci.  The vendor
code for National Instruments is 0x1093.  I will include the ID in
the next version.

DMA is halfway completed, but not yet operational.




  

5.37. pcl711.o -- Advantech PCL-711 and 711b, ADLink ACL-8112

Author: ds

ManufacturerDeviceName
Advantech PCL-711 pcl711
Advantech PCL-711B pcl711b
AdLink ACL-8112HG acl8112hg
AdLink ACL-8112DG acl8112dg


Since these boards do not have DMA or FIFOs, only immediate mode is
supported.




  

5.38. pcl724.o -- Advantech PCL-724, PCL-722, PCL-731 ADLink ACL-7122, ACL-7124, PET-48DIO

Author: Michal Dobes <majkl@tesnet.cz>

ManufacturerDeviceName
Advantech PCL-724 pcl724
Advantech PCL-722 pcl722
Advantech PCL-731 pcl731
ADLink ACL-7122 acl7122
ADLink ACL-7124 acl7124
ADLink PET-48DIO pet48dio


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.




  

5.39. pcl725.o -- Advantech PCL-725 (& compatibles)

Author: ds

ManufacturerDeviceName
Advantech PCL-725 pcl725




  

5.40. pcl726.o -- Advantech PCL-726 & compatibles

Author: ds

ManufacturerDeviceName
Advantech PCL-726 pcl726
Advantech PCL-727 pcl727
Advantech PCL-728 pcl728
ADLink ACL-6126 acl6126
ADLink ACL-6128 acl6128


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)
     [2]...[7] - D/A output range for channel 1-6: 
               0: 0-5V, 1: 0-10V, 2: +/-5V, 3: +/-10V, 
	       4: 4-20mA
     NOTE: IRQ operations isn't now supported.




  

5.41. 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

Author: Michal Dobes <majkl@tesnet.cz>

ManufacturerDeviceName
Advantech PCL-812 pcl812
Advantech PCL-812PG pcl812pg
Advantech PCL-813 pcl813
Advantech PCL-813B pcl813b
ADLink ACL-8112DG acl8112dg
ADLink ACL-8112HG acl8112hg
ADLink ACL-8113 acl-8113
ADLink ACL-8216 acl8216
ICP ISO-813 iso813
ICP A-821PGH a821pgh
ICP A-821PGL a821pgl
ICP A-821PGL-NDA a821pclnda
ICP A-822PGH a822pgh
ICP A-822PGL a822pgl
ICP A-823PGH a823pgh
ICP A-823PGL a823pgl
ICP A-826PG a826pg


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.




  

5.42. pcl818.o -- Advantech PCL-818 cards, PCL-718

Author: Michal Dobes <majkl@tesnet.cz>

ManufacturerDeviceName
Advantech PCL-818L pcl818l
Advantech PCL-818H pcl818h
Advantech PCL-818HD pcl818hd
Advantech PCL-818HG pcl818hg
Advantech PCL-818 pcl818
Advantech PCL-718 pcl718


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.
See the head of the source file pcl818.c for configuration options.




  

5.43. pcm3730.o -- PCM3730

Author: Blaine Lee

ManufacturerDeviceName
Advantech PCM-3730 pcm3730


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




  

5.44. pcmad.o -- Winsystems PCM-A/D12, PCM-A/D16

Author: ds

ManufacturerDeviceName
Winsystems PCM-A/D12 pcmad12
Winsystems PCM-A/D16 pcmad16


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




  

5.45. poc.o -- Generic driver for very simple devices Device names: dac02

Author: ds

ManufacturerDeviceName
Keithley Metrabyte DAC-02 dac02


This driver is indended to support very simple ISA-based devices,

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




  

5.46. quatech_daqp_cs.o -- Quatech DAQP PCMCIA data capture cards

Author: Brent Baccala <baccala@freesoft.org>

ManufacturerDeviceName
Quatech DAQP-208 daqp
Quatech DAQP-308 daqp




  

5.47. rtd520.o -- Real Time Devices PCI4520/DM7520

Author: Dan Christian

ManufacturerDeviceName
Real Time Devices DM7520HR-1 DM7520
Real Time Devices DM7520HR-8 DM7520-8
Real Time Devices PCI4520 PCI4520
Real Time Devices PCI4520-8 PCI4520-8


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)




  

5.48. rti800.o -- Analog Devices RTI-800/815

Author: ds

ManufacturerDeviceName
Analog Devices RTI-800 rti800
Analog Devices RTI-815 rti815


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)




  

5.49. rti802.o -- Analog Devices RTI-802

Author: Anders Blomdell <anders.blomdell@control.lth.se>

ManufacturerDeviceName
Analog Devices RTI-802 rti802




  

5.50. skel.o -- Skeleton driver, an example for driver writers

Author: ds


This driver is a documented example on how Comedi drivers are
written.




  

5.51. ssv_dnp.o -- SSV Embedded Systems DIL/Net-PC

Author: Robert Schwebel <robert@schwebel.de>

ManufacturerDeviceName
SSV Embedded Systems DIL/Net-PC 1486 dnp-1486