Add `chanlist_len` to `comedi_get_cmd_generic_timed()` calls in Python demos.
[comedilib.git] / doc / drivers.txt
1 Driver: 8255
2 Description: generic 8255 support
3 Devices: [standard] 8255 (8255)
4 Author: ds
5 Status: works
6 Updated: Fri,  7 Jun 2002 12:56:45 -0700
7
8 The classic in digital I/O.  The 8255 appears in Comedi as a single
9 digital I/O subdevice with 24 channels.  The channel 0 corresponds
10 to the 8255's port A, bit 0; channel 23 corresponds to port C, bit
11 7.  Direction configuration is done in blocks, with channels 0-7,
12 8-15, 16-19, and 20-23 making up the 4 blocks.  The only 8255 mode
13 supported is mode 0.
14
15 You should enable compilation this driver if you plan to use a board
16 that has an 8255 chip.  For multifunction boards, the main driver will
17 configure the 8255 subdevice automatically.
18
19 This driver also works independently with ISA and PCI cards that
20 directly map the 8255 registers to I/O ports, including cards with
21 multiple 8255 chips.  To configure the driver for such a card, the
22 option list should be a list of the I/O port bases for each of the
23 8255 chips.  For example,
24
25   comedi_config /dev/comedi0 8255 0x200,0x204,0x208,0x20c
26
27 Note that most PCI 8255 boards do NOT work with this driver, and
28 need a separate driver as a wrapper.  For those that do work, the
29 I/O port base address can be found in the output of 'lspci -v'.
30
31
32
33
34 Driver: acl7225b
35 Description: Adlink NuDAQ ACL-7225b & compatibles
36 Author: José Luis Sánchez (jsanchezv@teleline.es)
37 Status: testing
38 Devices: [Adlink] ACL-7225b (acl7225b), [ICP] P16R16DIO (p16r16dio)
39
40
41
42 Driver: adl_pci6208
43 Description: ADLink PCI-6208A
44 Devices: [ADLink] PCI-6208A (adl_pci6208)
45 Author: nsyeow <nsyeow@pd.jaring.my>
46 Updated: Fri, 30 Jan 2004 14:44:27 +0800
47 Status: untested
48
49 Configuration Options:
50   none
51
52 References:
53         - ni_660x.c             
54         - adl_pci9111.c         copied the entire pci setup section
55         - adl_pci9118.c         
56
57
58
59 Driver: adl_pci7296
60 Description: Driver for the Adlink PCI-7296 96 ch. digital io board
61 Devices: [ADLink] PCI-7296 (pci7296)
62 Author: Jon Grierson <jd@renko.co.uk>
63 Updated: 2.8.2006
64 Status: testing
65
66 Configuration Options:
67   none
68
69
70
71 Driver: adl_pci7432
72 Description: Driver for the Adlink PCI-7432 64 ch. isolated digital io board
73 Devices: [ADLink] PCI-7432 (pci7432)
74 Author: Michel Lachaine <mike@mikelachaine.ca>
75 Status: experimental
76
77 Configuration Options:
78   none
79
80
81
82 Driver: adl_pci8164
83 Description: Driver for the Adlink PCI-8164 4 Axes Motion Control board
84 Devices: [ADLink] PCI-8164 (pci8164)
85 Author: Michel Lachaine <mike@mikelachaine.ca>
86 Status: experimental
87
88 Configuration Options:
89   none
90
91
92
93 Driver: adl_pci9111
94 Description: Adlink PCI-9111HR
95 Author: Emmanuel Pacaud <emmanuel.pacaud@univ-poitiers.fr>
96 Devices: [ADLink] PCI-9111HR (adl_pci9111)
97 Status: experimental
98
99 Supports:
100
101   - ai_insn read
102   - ao_insn read/write
103   - di_insn read
104   - do_insn read/write
105   - ai_do_cmd mode with the following sources:
106
107     - start_src                 TRIG_NOW
108     - scan_begin_src            TRIG_FOLLOW     TRIG_TIMER      TRIG_EXT
109     - convert_src                               TRIG_TIMER      TRIG_EXT
110     - scan_end_src              TRIG_COUNT
111     - stop_src                  TRIG_COUNT      TRIG_NONE
112
113     The scanned channels must be consecutive and start from 0. They must
114     all have the same range and aref.
115
116 Configuration options:
117
118     [0] - PCI bus number (optional)
119     [1] - PCI slot number (optional)
120
121     If bus/slot is not specified, the first available PCI
122     device will be used.
123
124
125
126
127 Driver: adl_pci9118
128 Description: Adlink PCI-9118DG, PCI-9118HG, PCI-9118HR
129 Author: Michal Dobes <dobes@tesnet.cz>
130 Devices: [ADLink] PCI-9118DG (pci9118dg), PCI-9118HG (pci9118hg),
131   PCI-9118HR (pci9118hr)
132 Status: works
133
134 This driver supports AI, AO, DI and DO subdevices.
135 AI subdevice supports cmd and insn interface,
136 other subdevices support only insn interface.
137 For AI:
138 - If cmd->scan_begin_src=TRIG_EXT then trigger input is TGIN (pin 46).
139 - If cmd->convert_src=TRIG_EXT then trigger input is EXTTRG (pin 44).
140 - If cmd->start_src/stop_src=TRIG_EXT then trigger input is TGIN (pin 46).
141 - It is not neccessary to have cmd.scan_end_arg=cmd.chanlist_len but
142   cmd.scan_end_arg modulo cmd.chanlist_len must by 0.
143 - If return value of cmdtest is 5 then you've bad channel list
144   (it isn't possible mixture S.E. and DIFF inputs or bipolar and unipolar
145   ranges).
146
147 There are some hardware limitations:
148 a) You cann't use mixture of unipolar/bipoar ranges or differencial/single
149    ended inputs.
150 b) DMA transfers must have the length aligned to two samples (32 bit),
151    so there is some problems if cmd->chanlist_len is odd. This driver tries
152    bypass this with adding one sample to the end of the every scan and discard
153    it on output but this cann't be used if cmd->scan_begin_src=TRIG_FOLLOW
154    and is used flag TRIG_WAKE_EOS, then driver switch to interrupt driven mode
155    with interrupt after every sample.
156 c) If isn't used DMA then you can use only mode where
157    cmd->scan_begin_src=TRIG_FOLLOW.
158
159 Configuration options:
160   [0] - PCI bus of device (optional)
161   [1] - PCI slot of device (optional)
162           If bus/slot is not specified, then first available PCI
163           card will be used.
164   [2] - 0= standard 8 DIFF/16 SE channels configuration
165         n= external multiplexer connected, 1<=n<=256
166   [3] - 0=autoselect DMA or EOC interrupts operation
167         1=disable DMA mode
168         3=disable DMA and INT, only insn interface will work
169   [4] - sample&hold signal - card can generate signal for external S&H board
170         0=use SSHO (pin 45) signal is generated in onboard hardware S&H logic
171         0!=use ADCHN7 (pin 23) signal is generated from driver, number
172            say how long delay is requested in ns and sign polarity of the hold
173            (in this case external multiplexor can serve only 128 channels)
174   [5] - 0=stop measure on all hardware errors
175         2|=ignore ADOR - A/D Overrun status
176         8|=ignore Bover - A/D Burst Mode Overrun status
177         256|=ignore nFull - A/D FIFO Full status
178
179
180
181
182 Driver: adq12b
183 Description: driver for MicroAxial ADQ12-B data acquisition and control card
184 Devices: [MicroAxial] ADQ12-B (adq12b)
185 Author: jeremy theler <thelerg@ib.cnea.gov.ar>
186 Updated: Thu, 21 Feb 2008 02:56:27 -0300
187 Status: works
188
189 Driver for the acquisition card ADQ12-B (without any add-on).
190
191  - Analog input is subdevice 0 (16 channels single-ended or 8 differential)
192  - Digital input is subdevice 1 (5 channels)
193  - Digital output is subdevice 1 (8 channels)
194  - The PACER is not supported in this version
195
196 If you do not specify any options, they will default to
197
198   # comedi_config /dev/comedi0 adq12b 0x300,0,0
199
200   option 1: I/O base address. The following table is provided as a help
201    of the hardware jumpers.
202
203          address            jumper JADR
204           0x300                 1 (factory default)
205           0x320                 2
206           0x340                 3
207           0x360                 4
208           0x380                 5
209           0x3A0                 6
210
211   option 2: unipolar/bipolar ADC selection: 0 -> bipolar, 1 -> unipolar
212
213         selection         comedi_config option            JUB
214          bipolar                0                         2-3 (factory default)
215          unipolar               1                         1-2
216
217   option 3: single-ended/differential AI selection: 0 -> SE, 1 -> differential
218
219         selection         comedi_config option     JCHA    JCHB
220        single-ended             0                  1-2     1-2 (factory default) 
221        differential             1                  2-3     2-3
222
223
224    written by jeremy theler <thelerg@ib.cnea.gov.ar>
225
226    instituto balseiro
227    comision nacional de energia atomica
228    universidad nacional de cuyo
229    argentina
230
231    21-feb-2008
232      + changed supported devices string (missused the [] and ())
233
234    13-oct-2007
235      + first try
236
237
238
239
240
241 Driver: adv_pci1710
242 Description: Advantech PCI-1710, PCI-1710HG, PCI-1711, PCI-1713,
243              Advantech PCI-1720, PCI-1731
244 Author: Michal Dobes <dobes@tesnet.cz>
245 Devices: [Advantech] PCI-1710 (pci1710), PCI-1710HG (pci1710hg),
246   PCI-1711 (pci1711), PCI-1713 (pci1713), PCI-1720 (pci1720),
247   PCI-1731 (pci1731)
248 Status: works
249
250 This driver supports AI, AO, DI and DO subdevices.
251 AI subdevice supports cmd and insn interface,
252 other subdevices support only insn interface.
253
254 The PCI-1710 and PCI-1710HG have the same PCI device ID, so the
255 driver cannot distinguish between them, as would be normal for a
256 PCI driver.
257
258 Configuration options:
259   [0] - PCI bus of device (optional)
260   [1] - PCI slot of device (optional)
261           If bus/slot is not specified, the first available PCI
262           device will be used.
263
264
265
266 Driver: adv_pci_dio
267 Description: Advantech PCI-1730, PCI-1733, PCI-1734, PCI-1750, PCI-1751,
268              PCI-1752, PCI-1753/E, PCI-1754, PCI-1756, PCI-1762
269 Author: Michal Dobes <dobes@tesnet.cz>
270 Devices: [Advantech] PCI-1730 (pci1730), PCI-1733 (pci1733),
271   PCI-1734 (pci1734), PCI-1750 (pci1750), PCI-1751 (pci1751),
272   PCI-1752 (pci1752), PCI-1753 (pci1753), PCI-1753+PCI-1753E (pci1753e),
273   PCI-1754 (pci1754), PCI-1756 (pci1756), PCI-1760(pci1760),
274   PCI-1762 (pci1762)
275 Status: untested
276 Updated: 2003-04-06
277
278 This driver supports now only insn interface for DI/DO/DIO.
279
280 Configuration options:
281   [0] - PCI bus of device (optional)
282   [1] - PCI slot of device (optional)
283           If bus/slot is not specified, the first available PCI
284           device will be used.
285
286
287
288
289 Driver: aio_aio12_8
290 Description: Acces I/O Products PC-104 AIO12-8 Analog I/O Board
291 Author: Pablo Mejia <pablo.mejia@cctechnol.com>
292 Devices:
293  [Acces I/O] PC-104 AIO12-8
294 Status: experimental
295
296 Configuration Options:
297   [0] - I/O port base address
298
299 Notes:
300
301   Only synchronous operations are supported.
302
303
304
305
306 Driver: aio_iiro_16
307 Description: Acces I/O Products PC-104 IIRO16 Relay And Isolated Input Board
308 Author: Zachary Ware <zach.ware@cctechnol.com>
309 Devices:
310  [Acces I/O] PC-104 AIO12-8
311 Status: experimental
312
313 Configuration Options:
314   [0] - I/O port base address
315
316
317
318
319 Driver: amplc_dio200
320 Description: Amplicon 200 Series Digital I/O
321 Author: Ian Abbott <abbotti@mev.co.uk>
322 Devices: [Amplicon] PC212E (pc212e), PC214E (pc214e), PC215E (pc215e),
323   PCI215 (pci215), PC218E (pc218e), PC272E (pc272e), PCI272 (pci272)
324 Updated: Mon, 05 Nov 2007 14:04:04 +0000
325 Status: works
326
327 Configuration options - PC212E, PC214E, PC215E, PC218E, PC272E:
328   [0] - I/O port base address
329   [1] - IRQ (optional, but commands won't work without it)
330
331 Configuration options - PCI215, PCI272:
332   [0] - PCI bus of device (optional)
333   [1] - PCI slot of device (optional)
334   If bus/slot is not specified, the first available PCI device will
335   be used.
336
337 Passing a zero for an option is the same as leaving it unspecified.
338
339 SUBDEVICES
340
341                     PC218E         PC212E      PC215E/PCI215
342                  -------------  -------------  -------------
343   Subdevices           7              6              5
344    0                 CTR-X1         PPI-X          PPI-X
345    1                 CTR-X2         CTR-Y1         PPI-Y
346    2                 CTR-Y1         CTR-Y2         CTR-Z1
347    3                 CTR-Y2         CTR-Z1         CTR-Z2
348    4                 CTR-Z1         CTR-Z2       INTERRUPT
349    5                 CTR-Z2       INTERRUPT
350    6               INTERRUPT
351
352                     PC214E      PC272E/PCI272
353                  -------------  -------------
354   Subdevices           4              4
355    0                 PPI-X          PPI-X
356    1                 PPI-Y          PPI-Y
357    2                 CTR-Z1*        PPI-Z
358    3               INTERRUPT*     INTERRUPT
359
360 Each PPI is a 8255 chip providing 24 DIO channels.  The DIO channels
361 are configurable as inputs or outputs in four groups:
362
363   Port A  - channels  0 to  7
364   Port B  - channels  8 to 15
365   Port CL - channels 16 to 19
366   Port CH - channels 20 to 23
367
368 Only mode 0 of the 8255 chips is supported.
369
370 Each CTR is a 8254 chip providing 3 16-bit counter channels.  Each
371 channel is configured individually with INSN_CONFIG instructions.  The
372 specific type of configuration instruction is specified in data[0].
373 Some configuration instructions expect an additional parameter in
374 data[1]; others return a value in data[1].  The following configuration
375 instructions are supported:
376
377   INSN_CONFIG_SET_COUNTER_MODE.  Sets the counter channel's mode and
378     BCD/binary setting specified in data[1].
379
380   INSN_CONFIG_8254_READ_STATUS.  Reads the status register value for the
381     counter channel into data[1].
382
383   INSN_CONFIG_SET_CLOCK_SRC.  Sets the counter channel's clock source as
384     specified in data[1] (this is a hardware-specific value).  Not
385     supported on PC214E.  For the other boards, valid clock sources are
386     0 to 7 as follows:
387
388       0.  CLK n, the counter channel's dedicated CLK input from the SK1
389         connector.  (N.B. for other values, the counter channel's CLKn
390         pin on the SK1 connector is an output!)
391       1.  Internal 10 MHz clock.
392       2.  Internal 1 MHz clock.
393       3.  Internal 100 kHz clock.
394       4.  Internal 10 kHz clock.
395       5.  Internal 1 kHz clock.
396       6.  OUT n-1, the output of counter channel n-1 (see note 1 below).
397       7.  Ext Clock, the counter chip's dedicated Ext Clock input from
398         the SK1 connector.  This pin is shared by all three counter
399         channels on the chip.
400
401   INSN_CONFIG_GET_CLOCK_SRC.  Returns the counter channel's current
402     clock source in data[1].  For internal clock sources, data[2] is set
403     to the period in ns.
404
405   INSN_CONFIG_SET_GATE_SRC.  Sets the counter channel's gate source as
406     specified in data[2] (this is a hardware-specific value).  Not
407     supported on PC214E.  For the other boards, valid gate sources are 0
408     to 7 as follows:
409
410       0.  VCC (internal +5V d.c.), i.e. gate permanently enabled.
411       1.  GND (internal 0V d.c.), i.e. gate permanently disabled.
412       2.  GAT n, the counter channel's dedicated GAT input from the SK1
413         connector.  (N.B. for other values, the counter channel's GATn
414         pin on the SK1 connector is an output!)
415       3.  /OUT n-2, the inverted output of counter channel n-2 (see note
416         2 below).
417       4.  Reserved.
418       5.  Reserved.
419       6.  Reserved.
420       7.  Reserved.
421
422   INSN_CONFIG_GET_GATE_SRC.  Returns the counter channel's current gate
423     source in data[2].
424
425 Clock and gate interconnection notes:
426
427   1.  Clock source OUT n-1 is the output of the preceding channel on the
428   same counter subdevice if n > 0, or the output of channel 2 on the
429   preceding counter subdevice (see note 3) if n = 0.
430
431   2.  Gate source /OUT n-2 is the inverted output of channel 0 on the
432   same counter subdevice if n = 2, or the inverted output of channel n+1
433   on the preceding counter subdevice (see note 3) if n < 2.
434
435   3.  The counter subdevices are connected in a ring, so the highest
436   counter subdevice precedes the lowest.
437
438 The 'INTERRUPT' subdevice pretends to be a digital input subdevice.  The
439 digital inputs come from the interrupt status register.  The number of
440 channels matches the number of interrupt sources.  The PC214E does not
441 have an interrupt status register; see notes on 'INTERRUPT SOURCES'
442 below.
443
444 INTERRUPT SOURCES
445
446                     PC218E         PC212E      PC215E/PCI215
447                  -------------  -------------  -------------
448   Sources              6              6              6
449    0              CTR-X1-OUT      PPI-X-C0       PPI-X-C0
450    1              CTR-X2-OUT      PPI-X-C3       PPI-X-C3
451    2              CTR-Y1-OUT     CTR-Y1-OUT      PPI-Y-C0
452    3              CTR-Y2-OUT     CTR-Y2-OUT      PPI-Y-C3
453    4              CTR-Z1-OUT     CTR-Z1-OUT     CTR-Z1-OUT
454    5              CTR-Z2-OUT     CTR-Z2-OUT     CTR-Z2-OUT
455
456                     PC214E      PC272E/PCI272
457                  -------------  -------------
458   Sources              1              6
459    0               JUMPER-J5      PPI-X-C0
460    1                              PPI-X-C3
461    2                              PPI-Y-C0
462    3                              PPI-Y-C3
463    4                              PPI-Z-C0
464    5                              PPI-Z-C3
465
466 When an interrupt source is enabled in the interrupt source enable
467 register, a rising edge on the source signal latches the corresponding
468 bit to 1 in the interrupt status register.
469
470 When the interrupt status register value as a whole (actually, just the
471 6 least significant bits) goes from zero to non-zero, the board will
472 generate an interrupt.  For level-triggered hardware interrupts (PCI
473 card), the interrupt will remain asserted until the interrupt status
474 register is cleared to zero.  For edge-triggered hardware interrupts
475 (ISA card), no further interrupts will occur until the interrupt status
476 register is cleared to zero.  To clear a bit to zero in the interrupt
477 status register, the corresponding interrupt source must be disabled
478 in the interrupt source enable register (there is no separate interrupt
479 clear register).
480
481 The PC214E does not have an interrupt source enable register or an
482 interrupt status register; its 'INTERRUPT' subdevice has a single
483 channel and its interrupt source is selected by the position of jumper
484 J5.
485
486 COMMANDS
487
488 The driver supports a read streaming acquisition command on the
489 'INTERRUPT' subdevice.  The channel list selects the interrupt sources
490 to be enabled.  All channels will be sampled together (convert_src ==
491 TRIG_NOW).  The scan begins a short time after the hardware interrupt
492 occurs, subject to interrupt latencies (scan_begin_src == TRIG_EXT,
493 scan_begin_arg == 0).  The value read from the interrupt status register
494 is packed into a sampl_t value, one bit per requested channel, in the
495 order they appear in the channel list.
496
497
498
499 Driver: amplc_pc236
500 Description: Amplicon PC36AT, PCI236
501 Author: Ian Abbott <abbotti@mev.co.uk>
502 Devices: [Amplicon] PC36AT (pc36at), PCI236 (pci236)
503 Updated: Fri, 23 Aug 2002 11:41:11 +0100
504 Status: works
505
506 Configuration options - PC36AT:
507   [0] - I/O port base address
508   [1] - IRQ (optional)
509
510 Configuration options - PCI236:
511   [0] - PCI bus of device (optional)
512   [1] - PCI slot of device (optional)
513   If bus/slot is not specified, the first available PCI device will be
514   used.
515
516 The PC36AT ISA board and PCI236 PCI board have a single 8255 appearing
517 as subdevice 0.
518
519 Subdevice 1 pretends to be a digital input device, but it always returns
520 0 when read. However, if you run a command with scan_begin_src=TRIG_EXT,
521 a rising edge on port C bit 7 acts as an external trigger, which can be
522 used to wake up tasks.  This is like the comedi_parport device, but the
523 only way to physically disable the interrupt on the PC36AT is to remove
524 the IRQ jumper.  If no interrupt is connected, then subdevice 1 is
525 unused.
526
527
528
529 Driver: amplc_pc263
530 Description: Amplicon PC263, PCI263
531 Author: Ian Abbott <abbotti@mev.co.uk>
532 Devices: [Amplicon] PC263 (pc263), PCI263 (pci263)
533 Updated: Tue, 20 Aug 2002 11:41:01 +0100
534 Status: works
535
536 Configuration options - PC263:
537   [0] - I/O port base address
538
539 Configuration options - PCI263:
540   [0] - PCI bus of device (optional)
541   [1] - PCI slot of device (optional)
542   If bus/slot is not specified, the first available PCI device will be
543   used.
544
545 Each board appears as one subdevice, with 16 digital outputs, each
546 connected to a reed-relay. Relay contacts are closed when output is 1.
547 The state of the outputs can be read.
548
549
550
551 Driver: amplc_pci224
552 Description: Amplicon PCI224, PCI234
553 Author: Ian Abbott <abbotti@mev.co.uk>
554 Devices: [Amplicon] PCI224 (pci224), PCI234 (pci234)
555 Updated: Thu, 24 Feb 2005 12:29:26 +0000
556 Status: works, but see caveats
557
558 Supports:
559
560   - ao_insn read/write
561   - ao_do_cmd mode with the following sources:
562
563     - start_src         TRIG_INT        TRIG_EXT
564     - scan_begin_src    TRIG_TIMER      TRIG_EXT
565     - convert_src       TRIG_NOW
566     - scan_end_src      TRIG_COUNT
567     - stop_src          TRIG_COUNT      TRIG_EXT        TRIG_NONE
568
569     The channel list must contain at least one channel with no repeated
570     channels.  The scan end count must equal the number of channels in
571     the channel list.
572
573     There is only one external trigger source so only one of start_src,
574     scan_begin_src or stop_src may use TRIG_EXT.
575
576 Configuration options - PCI224:
577   [0] - PCI bus of device (optional).
578   [1] - PCI slot of device (optional).
579           If bus/slot is not specified, the first available PCI device
580           will be used.
581   [2] - Select available ranges according to jumper LK1.  All channels
582         are set to the same range:
583         0=Jumper position 1-2 (factory default), 4 software-selectable
584           internal voltage references, giving 4 bipolar and 4 unipolar
585           ranges:
586             [-10V,+10V], [-5V,+5V], [-2.5V,+2.5V], [-1.25V,+1.25V],
587             [0,+10V], [0,+5V], [0,+2.5V], [0,1.25V].
588         1=Jumper position 2-3, 1 external voltage reference, giving
589           1 bipolar and 1 unipolar range:
590             [-Vext,+Vext], [0,+Vext].
591
592 Configuration options - PCI234:
593   [0] - PCI bus of device (optional).
594   [1] - PCI slot of device (optional).
595           If bus/slot is not specified, the first available PCI device
596           will be used.
597   [2] - Select internal or external voltage reference according to
598         jumper LK1.  This affects all channels:
599         0=Jumper position 1-2 (factory default), Vref=5V internal.
600         1=Jumper position 2-3, Vref=Vext external.
601   [3] - Select channel 0 range according to jumper LK2:
602         0=Jumper position 2-3 (factory default), range [-2*Vref,+2*Vref]
603           (10V bipolar when options[2]=0).
604         1=Jumper position 1-2, range [-Vref,+Vref]
605           (5V bipolar when options[2]=0).
606   [4] - Select channel 1 range according to jumper LK3: cf. options[3].
607   [5] - Select channel 2 range according to jumper LK4: cf. options[3].
608   [6] - Select channel 3 range according to jumper LK5: cf. options[3].
609
610 Passing a zero for an option is the same as leaving it unspecified.
611
612 Caveats:
613
614   1) All channels on the PCI224 share the same range.  Any change to the
615      range as a result of insn_write or a streaming command will affect
616      the output voltages of all channels, including those not specified
617      by the instruction or command.
618
619   2) For the analog output command,  the first scan may be triggered
620      falsely at the start of acquisition.  This occurs when the DAC scan
621      trigger source is switched from 'none' to 'timer' (scan_begin_src =
622      TRIG_TIMER) or 'external' (scan_begin_src == TRIG_EXT) at the start
623      of acquisition and the trigger source is at logic level 1 at the
624      time of the switch.  This is very likely for TRIG_TIMER.  For
625      TRIG_EXT, it depends on the state of the external line and whether
626      the CR_INVERT flag has been set.  The remaining scans are triggered
627      correctly.
628
629
630
631 Driver: amplc_pci230
632 Description: Amplicon PCI230, PCI260 Multifunction I/O boards
633 Author: Allan Willcox <allanwillcox@ozemail.com.au>,
634   Steve D Sharples <steve.sharples@nottingham.ac.uk>,
635   Ian Abbott <abbotti@mev.co.uk>
636 Updated: Mon, 03 Dec 2007 17:11:47 +0000
637 Devices: [Amplicon] PCI230 (pci230 or amplc_pci230), PCI230+ (pci230+),
638   PCI260 (pci260 or amplc_pci230), PCI260+ (pci260+)
639 Status: works
640
641 Configuration options:
642   [0] - PCI bus of device (optional).
643   [1] - PCI slot of device (optional).
644           If bus/slot is not specified, the first available PCI device
645           will be used.
646
647 Configuring a "amplc_pci230" will match any supported card and it will
648 be treated as "pci230" or "pci260".  Configuring a "pci230" will match a
649 PCI230 or PCI230+ card and it will be treated as a PCI230.  Configuring
650 a "pci260" will match a PCI260 or PCI260+ card and it will be treated as
651 a PCI260.  Configuring a "pci230+" will match a PCI230+ card.
652 Configuring a "pci260+" will match a PCI260+ card.
653
654 Subdevices:
655
656                 PCI230(+)    PCI260(+)
657                 ---------    ---------
658   Subdevices       3            1
659         0          AI           AI 
660         1          AO
661         2          DIO
662
663 AI Subdevice:
664
665   The AI subdevice has 16 single-ended channels or 8 differential
666   channels.
667   
668   The PCI230 and PCI260 cards have 12-bit resolution.  The PCI230+ and
669   PCI260+ cards have 16-bit resolution.
670   
671   For differential mode, use inputs 2N and 2N+1 for channel N (e.g. use
672   inputs 14 and 15 for channel 7).  If the card is physically a PCI230
673   or PCI260 then it actually uses a "pseudo-differential" mode where the
674   inputs are sampled a few microseconds apart.  The PCI230+ and PCI260+
675   use true differential sampling.  Another difference is that if the
676   card is physically a PCI230 or PCI260, the inverting input is 2N,
677   whereas for a PCI230+ or PCI260+ the inverting input is 2N+1.  So if a
678   PCI230 is physically replaced by a PCI230+ (or a PCI260 with a
679   PCI260+) and differential mode is used, the differential inputs need
680   to be physically swapped on the connector.
681
682   The following input ranges are supported:
683
684     0 => [-10, +10] V
685     1 => [-5, +5] V
686     2 => [-2.5, +2.5] V
687     3 => [-1.25, +1.25] V
688     4 => [0, 10] V
689     5 => [0, 5] V
690     6 => [0, 2.5] V
691
692 AI Commands:
693
694   +=========+==============+===========+============+==========+
695   |start_src|scan_begin_src|convert_src|scan_end_src| stop_src |
696   +=========+==============+===========+============+==========+
697   |TRIG_NOW | TRIG_FOLLOW  |TRIG_TIMER | TRIG_COUNT |TRIG_NONE |
698   |TRIG_INT |              |TRIG_EXT(3)|            |TRIG_COUNT|
699   |         |              |TRIG_INT   |            |          |
700   |         |--------------|-----------|            |          |
701   |         | TRIG_TIMER(1)|TRIG_TIMER |            |          |
702   |         | TRIG_EXT(2)  |           |            |          |
703   |         | TRIG_INT     |           |            |          |
704   +---------+--------------+-----------+------------+----------+
705
706   Note 1: If AI command and AO command are used simultaneously, only
707           one may have scan_begin_src == TRIG_TIMER.
708
709   Note 2: For PCI230 and PCI230+, scan_begin_src == TRIG_EXT uses
710           DIO channel 16 (pin 49) which will need to be configured as
711           a digital input.  For PCI260+, the EXTTRIG/EXTCONVCLK input
712           (pin 17) is used instead.  For PCI230, scan_begin_src ==
713           TRIG_EXT is not supported.  The trigger is a rising edge
714           on the input.
715
716   Note 3: For convert_src == TRIG_EXT, the EXTTRIG/EXTCONVCLK input
717           (pin 25 on PCI230(+), pin 17 on PCI260(+)) is used.  The
718           convert_arg value is interpreted as follows:
719
720             convert_arg == (CR_EDGE | 0) => rising edge
721             convert_arg == (CR_EDGE | CR_INVERT | 0) => falling edge
722             convert_arg == 0 => falling edge (backwards compatibility)
723             convert_arg == 1 => rising edge (backwards compatibility)
724
725   All entries in the channel list must use the same analogue reference.
726   If the analogue reference is not AREF_DIFF (not differential) each
727   pair of channel numbers (0 and 1, 2 and 3, etc.) must use the same
728   input range.  The input ranges used in the sequence must be all
729   bipolar (ranges 0 to 3) or all unipolar (ranges 4 to 6).  The channel
730   sequence must consist of 1 or more identical subsequences.  Within the
731   subsequence, channels must be in ascending order with no repeated
732   channels.  For example, the following sequences are valid: 0 1 2 3
733   (single valid subsequence), 0 2 3 5 0 2 3 5 (repeated valid
734   subsequence), 1 1 1 1 (repeated valid subsequence).  The following
735   sequences are invalid: 0 3 2 1 (invalid subsequence), 0 2 3 5 0 2 3
736   (incompletely repeated subsequence).  Some versions of the PCI230+ and
737   PCI260+ have a bug that requires a subsequence longer than one entry
738   long to include channel 0.
739
740 AO Subdevice:
741
742   The AO subdevice has 2 channels with 12-bit resolution.
743
744   The following output ranges are supported:
745
746     0 => [0, 10] V
747     1 => [-10, +10] V
748
749 AO Commands:
750
751   +=========+==============+===========+============+==========+
752   |start_src|scan_begin_src|convert_src|scan_end_src| stop_src |
753   +=========+==============+===========+============+==========+
754   |TRIG_INT | TRIG_TIMER(1)| TRIG_NOW  | TRIG_COUNT |TRIG_NONE |
755   |         | TRIG_EXT(2)  |           |            |TRIG_COUNT|
756   |         | TRIG_INT     |           |            |          |
757   +---------+--------------+-----------+------------+----------+
758
759   Note 1: If AI command and AO command are used simultaneously, only
760           one may have scan_begin_src == TRIG_TIMER.
761
762   Note 2: scan_begin_src == TRIG_EXT is only supported if the card is
763           configured as a PCI230+ and is only supported on later
764           versions of the card.  As a card configured as a PCI230+ is
765           not guaranteed to support external triggering, please consider
766           this support to be a bonus.  It uses the EXTTRIG/ EXTCONVCLK
767           input (PCI230+ pin 25).  Triggering will be on the rising edge
768           unless the CR_INVERT flag is set in scan_begin_arg.
769
770   The channels in the channel sequence must be in ascending order with
771   no repeats.  All entries in the channel sequence must use the same
772   output range.
773
774 DIO Subdevice:
775
776   The DIO subdevice is a 8255 chip providing 24 DIO channels.  The DIO
777   channels are configurable as inputs or outputs in four groups:
778
779     Port A  - channels  0 to  7
780     Port B  - channels  8 to 15
781     Port CL - channels 16 to 19
782     Port CH - channels 20 to 23
783
784   Only mode 0 of the 8255 chip is supported.
785
786   Bit 0 of port C (DIO channel 16) is also used as an external scan
787   trigger input for AI commands on PCI230 and PCI230+, so would need to
788   be configured as an input to use it for that purpose.
789
790
791
792 Driver: c6xdigio
793 Description: Mechatronic Systems Inc. C6x_DIGIO DSP daughter card
794 Author: Dan Block
795 Status: unknown
796 Devices: [Mechatronic Systems Inc.] C6x_DIGIO DSP daughter card (c6xdigio)
797 Updated: Sun Nov 20 20:18:34 EST 2005
798
799 This driver will not work with a 2.4 kernel.
800 http://robot0.ge.uiuc.edu/~spong/mecha/
801
802
803
804
805 Driver: cb_das16_cs
806 Description: Computer Boards PC-CARD DAS16/16
807 Devices: [ComputerBoards] PC-CARD DAS16/16 (cb_das16_cs), PC-CARD DAS16/16-AO
808 Author: ds
809 Updated: Mon, 04 Nov 2002 20:04:21 -0800
810 Status: experimental
811
812
813
814
815
816 Driver: cb_pcidas64
817 Description: MeasurementComputing PCI-DAS64xx, 60XX, and 4020 series with the PLX 9080 PCI controller
818 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
819 Status: works
820 Updated: 2002-10-09
821 Devices: [Measurement Computing] PCI-DAS6402/16 (cb_pcidas64),
822   PCI-DAS6402/12, PCI-DAS64/M1/16, PCI-DAS64/M2/16,
823   PCI-DAS64/M3/16, PCI-DAS6402/16/JR, PCI-DAS64/M1/16/JR,
824   PCI-DAS64/M2/16/JR, PCI-DAS64/M3/16/JR, PCI-DAS64/M1/14,
825   PCI-DAS64/M2/14, PCI-DAS64/M3/14, PCI-DAS6013, PCI-DAS6014,
826   PCI-DAS6023, PCI-DAS6025, PCI-DAS6030,
827   PCI-DAS6031, PCI-DAS6032, PCI-DAS6033, PCI-DAS6034,
828   PCI-DAS6035, PCI-DAS6036, PCI-DAS6040, PCI-DAS6052,
829   PCI-DAS6070, PCI-DAS6071, PCI-DAS4020/12
830
831 Configuration options:
832    [0] - PCI bus of device (optional)
833    [1] - PCI slot of device (optional)
834
835 These boards may be autocalibrated with the comedi_calibrate utility.
836
837 To select the bnc trigger input on the 4020 (instead of the dio input),
838 specify a nonzero channel in the chanspec.  If you wish to use an external
839 master clock on the 4020, you may do so by setting the scan_begin_src
840 to TRIG_OTHER, and using an INSN_CONFIG_TIMER_1 configuration insn
841 to configure the divisor to use for the external clock.
842
843 Some devices are not identified because the PCI device IDs are not yet
844 known. If you have such a board, please file a bug report at
845 https://bugs.comedi.org.
846
847
848
849
850 Driver: cb_pcidas
851 Description: MeasurementComputing PCI-DAS series with the AMCC S5933 PCI controller
852 Author: Ivan Martinez <imr@oersted.dtu.dk>,
853   Frank Mori Hess <fmhess@users.sourceforge.net>
854 Updated: 2003-3-11
855 Devices: [Measurement Computing] PCI-DAS1602/16 (cb_pcidas),
856   PCI-DAS1602/16jr, PCI-DAS1602/12, PCI-DAS1200, PCI-DAS1200jr,
857   PCI-DAS1000, PCI-DAS1001, PCI_DAS1002
858
859 Status:
860   There are many reports of the driver being used with most of the
861   supported cards. Despite no detailed log is maintained, it can
862   be said that the driver is quite tested and stable.
863
864   The boards may be autocalibrated using the comedi_calibrate
865   utility.
866
867 Configuration options:
868   [0] - PCI bus of device (optional)
869   [1] - PCI slot of device (optional)
870   If bus/slot is not specified, the first supported
871   PCI device found will be used.
872
873 For commands, the scanned channels must be consecutive
874 (i.e. 4-5-6-7, 2-3-4,...), and must all have the same
875 range and aref.
876
877
878
879 Driver: cb_pcidda
880 Description: MeasurementComputing PCI-DDA series
881 Author: Ivan Martinez <ivanmr@altavista.com>, Frank Mori Hess <fmhess@users.sourceforge.net>
882 Status: Supports 08/16, 04/16, 02/16, 08/12, 04/12, and 02/12
883 Devices: [Measurement Computing] PCI-DDA08/12 (cb_pcidda), PCI-DDA04/12,
884   PCI-DDA02/12, PCI-DDA08/16, PCI-DDA04/16, PCI-DDA02/16
885
886 Configuration options:
887   [0] - PCI bus of device (optional)
888   [1] - PCI slot of device (optional)
889   If bus/slot is not specified, the first available PCI
890   device will be used.
891
892 Only simple analog output writing is supported.
893
894 So far it has only been tested with:
895   - PCI-DDA08/12
896 Please report success/failure with other different cards to
897 <comedi@comedi.org>.
898
899
900
901 Driver: cb_pcidio
902 Description: ComputerBoards' DIO boards with PCI interface
903 Devices: [Measurement Computing] PCI-DIO24 (cb_pcidio), PCI-DIO24H, PCI-DIO48H
904 Author: Yoshiya Matsuzaka
905 Updated: Mon, 29 Oct 2007 15:40:47 +0000
906 Status: experimental
907
908 This driver has been modified from skel.c of comedi-0.7.70.
909
910 Configuration Options:
911   [0] - PCI bus of device (optional)
912   [1] - PCI slot of device (optional)
913   If bus/slot is not specified, the first available PCI device will
914   be used.
915
916 Passing a zero for an option is the same as leaving it unspecified.
917
918
919
920 Driver: cb_pcimdas
921 Description: Measurement Computing PCI Migration series boards
922 Devices: [ComputerBoards] PCIM-DAS1602/16 (cb_pcimdas)
923 Author: Richard Bytheway
924 Updated: Wed, 13 Nov 2002 12:34:56 +0000
925 Status: experimental
926
927 Written to support the PCIM-DAS1602/16 on a 2.4 series kernel.
928
929 Configuration Options:
930     [0] - PCI bus number
931     [1] - PCI slot number
932
933 Developed from cb_pcidas and skel by Richard Bytheway (mocelet@sucs.org).
934 Only supports DIO, AO and simple AI in it's present form.
935 No interrupts, multi channel or FIFO AI, although the card looks like it could support this.
936 See http://www.measurementcomputing.com/PDFManuals/pcim-das1602_16.pdf for more details.
937
938
939
940 Driver: cb_pcimdda
941 Description: Measurement Computing PCIM-DDA06-16
942 Devices: [Measurement Computing] PCIM-DDA06-16 (cb_pcimdda)
943 Author: Calin Culianu <calin@ajvar.org>
944 Updated: Thu, 20 Jun 2002 16:19:41 -0500
945 Status: works
946
947 All features of the PCIM-DDA06-16 board are supported.  This board
948 has 6 16-bit AO channels, and the usual 8255 DIO setup.  (24 channels,
949 configurable in banks of 8 and 4, etc.).  This board does not support commands.
950
951 The board has a peculiar way of specifying AO gain/range settings -- You have
952 1 jumper bank on the card, which either makes all 6 AO channels either
953 5 Volt unipolar, 5V bipolar, 10 Volt unipolar or 10V bipolar.
954
955 Since there is absolutely _no_ way to tell in software how this jumper is set
956 (well, at least according  to the rather thin spec. from Measurement Computing
957  that comes with the board), the driver assumes the jumper is at its factory
958 default setting of +/-5V.
959
960 Also of note is the fact that this board features another jumper, whose
961 state is also completely invisible to software.  It toggles two possible AO
962 output modes on the board:
963
964   - Update Mode: Writing to an AO channel instantaneously updates the actual
965     signal output by the DAC on the board (this is the factory default).
966   - Simultaneous XFER Mode: Writing to an AO channel has no effect until
967     you read from any one of the AO channels.  This is useful for loading
968     all 6 AO values, and then reading from any one of the AO channels on the
969     device to instantly update all 6 AO values in unison.  Useful for some
970     control apps, I would assume?  If your jumper is in this setting, then you
971     need to issue your comedi_data_write()s to load all the values you want,
972     then issue one comedi_data_read() on any channel on the AO subdevice
973     to initiate the simultaneous XFER.
974
975 Configuration Options:
976   [0] PCI bus (optional) (unimplemented)
977   [1] PCI slot (optional) (unimplemented)
978   [2] analog output range jumper setting
979       0 == +/- 5 V
980       1 == +/- 10 V
981
982
983
984 Driver: comedi_bond
985 Description: A driver to 'bond' (merge) multiple subdevices from multiple devices together as one.
986 Devices:
987 Author: ds
988 Updated: Mon, 10 Oct 00:18:25 -0500
989 Status: works
990
991 This driver allows you to 'bond' (merge) multiple comedi subdevices
992 (coming from possibly difference boards and/or drivers) together.  For
993 example, if you had a board with 2 different DIO subdevices, and
994 another with 1 DIO subdevice, you could 'bond' them with this driver
995 so that they look like one big fat DIO subdevice.  This makes writing
996 applications slightly easier as you don't have to worry about managing
997 different subdevices in the application -- you just worry about
998 indexing one linear array of channel id's.
999
1000 Right now only DIO subdevices are supported as that's the personal itch
1001 I am scratching with this driver.  If you want to add support for AI and AO
1002 subdevs, go right on ahead and do so!
1003
1004 Commands aren't supported -- although it would be cool if they were.
1005
1006 Configuration Options:
1007   List of comedi-minors to bond.  All subdevices of the same type
1008   within each minor will be concatenated together in the order given here.
1009
1010
1011
1012 Driver: comedi_parport
1013 Description: Standard PC parallel port
1014 Author: ds
1015 Status: works in immediate mode
1016 Devices: [standard] parallel port (comedi_parport)
1017 Updated: Tue, 30 Apr 2002 21:11:45 -0700
1018
1019 A cheap and easy way to get a few more digital I/O lines.  Steal
1020 additional parallel ports from old computers or your neighbors'
1021 computers.
1022
1023 Option list:
1024  0: I/O port base for the parallel port.
1025  1: IRQ
1026
1027 Parallel Port Lines:
1028
1029 pin     subdev  chan    aka
1030 ---     ------  ----    ---
1031 1       2       0       strobe
1032 2       0       0       data 0
1033 3       0       1       data 1
1034 4       0       2       data 2
1035 5       0       3       data 3
1036 6       0       4       data 4
1037 7       0       5       data 5
1038 8       0       6       data 6
1039 9       0       7       data 7
1040 10      1       3       acknowledge
1041 11      1       4       busy
1042 12      1       2       output
1043 13      1       1       printer selected
1044 14      2       1       auto LF
1045 15      1       0       error
1046 16      2       2       init
1047 17      2       3       select printer
1048 18-25   ground
1049
1050 Notes:
1051
1052 Subdevices 0 is digital I/O, subdevice 1 is digital input, and
1053 subdevice 2 is digital output.  Unlike other Comedi devices,
1054 subdevice 0 defaults to output.
1055
1056 Pins 13 and 14 are inverted once by Comedi and once by the
1057 hardware, thus cancelling the effect.
1058
1059 Pin 1 is a strobe, thus acts like one.  There's no way in software
1060 to change this, at least on a standard parallel port.
1061
1062 Subdevice 3 pretends to be a digital input subdevice, but it always
1063 returns 0 when read.  However, if you run a command with
1064 scan_begin_src=TRIG_EXT, it uses pin 10 as a external triggering
1065 pin, which can be used to wake up tasks.
1066
1067
1068
1069 Driver: comedi_rt_timer
1070 Description: Command emulator using real-time tasks
1071 Author: ds, fmhess
1072 Devices:
1073 Status: works
1074
1075 This driver requires RTAI or RTLinux to work correctly.  It doesn't
1076 actually drive hardware directly, but calls other drivers and uses
1077 a real-time task to emulate commands for drivers and devices that
1078 are incapable of native commands.  Thus, you can get accurately
1079 timed I/O on any device.
1080
1081 Since the timing is all done in software, sampling jitter is much
1082 higher than with a device that has an on-board timer, and maximum
1083 sample rate is much lower.
1084
1085 Configuration options:
1086   [0] - minor number of device you wish to emulate commands for
1087   [1] - subdevice number you wish to emulate commands for
1088
1089
1090
1091 Driver: comedi_test
1092 Description: generates fake waveforms
1093 Author: Joachim Wuttke <Joachim.Wuttke@icn.siemens.de>, Frank Mori Hess
1094   <fmhess@users.sourceforge.net>, ds
1095 Devices:
1096 Status: works
1097 Updated: Sat, 16 Mar 2002 17:34:48 -0800
1098
1099 This driver is mainly for testing purposes, but can also be used to
1100 generate sample waveforms on systems that don't have data acquisition
1101 hardware.
1102
1103 Configuration options:
1104   [0] - Amplitude in microvolts for fake waveforms (default 1 volt)
1105   [1] - Period in microseconds for fake waveforms (default 0.1 sec)
1106
1107 Generates a sawtooth wave on channel 0, square wave on channel 1, additional
1108 waveforms could be added to other channels (currently they return flatline
1109 zero volts).
1110
1111
1112
1113
1114 Driver: contec_pci_dio
1115 Description: Contec PIO1616L digital I/O board
1116 Devices: [Contec] PIO1616L (contec_pci_dio)
1117 Author: Stefano Rivoir <s.rivoir@gts.it>
1118 Updated: Wed, 27 Jun 2007 13:00:06 +0100
1119 Status: works
1120
1121 Configuration Options:
1122   [0] - PCI bus of device (optional)
1123   [1] - PCI slot of device (optional)
1124   If bus/slot is not specified, the first supported
1125   PCI device found will be used.
1126
1127
1128
1129 Driver: daqboard2000
1130 Description: IOTech DAQBoard/2000
1131 Author: Anders Blomdell <anders.blomdell@control.lth.se>
1132 Status: works
1133 Devices: [IOTech] DAQBoard/2000 (daqboard2000)
1134
1135 Much of the functionality of this driver was determined from reading
1136 the source code for the Windows driver.
1137
1138 The FPGA on the board requires initialization code, which can 
1139 be loaded by comedi_config using the -i
1140 option.  The initialization code is available from http://www.comedi.org
1141 in the comedi_nonfree_firmware tarball.
1142
1143 Configuration options:
1144     none
1145
1146
1147
1148 Driver: das08
1149 Description: DAS-08 compatible boards
1150 Author: Warren Jasper, ds, Frank Hess
1151 Devices: [Keithley Metrabyte] DAS08 (das08), [ComputerBoards] DAS08 (das08),
1152   DAS08-PGM (das08-pgm),
1153   DAS08-PGH (das08-pgh), DAS08-PGL (das08-pgl), DAS08-AOH (das08-aoh),
1154   DAS08-AOL (das08-aol), DAS08-AOM (das08-aom), DAS08/JR-AO (das08/jr-ao),
1155   DAS08/JR-16-AO (das08jr-16-ao), PCI-DAS08 (pci-das08),
1156   PC104-DAS08 (pc104-das08), DAS08/JR/16 (das08jr/16)
1157 Status: works
1158
1159 This is a rewrite of the das08 and das08jr drivers.
1160
1161 Options (for ISA cards):
1162         [0] - base io address
1163
1164 Options (for pci-das08):
1165         [0] - bus  (optional)
1166         [1] = slot (optional)
1167 Use the name 'pci-das08' for the pci-das08, NOT 'das08'.
1168
1169 The das08 driver doesn't support asynchronous commands, since
1170 the cheap das08 hardware doesn't really support them.  The
1171 comedi_rt_timer driver can be used to emulate commands for this
1172 driver.
1173
1174
1175
1176 Driver: das08_cs
1177 Description: DAS-08 PCMCIA boards
1178 Author: Warren Jasper, ds, Frank Hess
1179 Devices: [ComputerBoards] PCM-DAS08 (pcm-das08)
1180 Status: works
1181
1182 This is the PCMCIA-specific support split off from the
1183 das08 driver.
1184
1185 Options (for pcm-das08):
1186         NONE
1187
1188 Command support does not exist, but could be added for this board.
1189
1190
1191
1192 Driver: das16
1193 Description: DAS16 compatible boards
1194 Author: Sam Moore, Warren Jasper, ds, Chris Baugher, Frank Hess, Roman Fietze
1195 Devices: [Keithley Metrabyte] DAS-16 (das-16), DAS-16G (das-16g),
1196   DAS-16F (das-16f), DAS-1201 (das-1201), DAS-1202 (das-1202),
1197   DAS-1401 (das-1401), DAS-1402 (das-1402), DAS-1601 (das-1601),
1198   DAS-1602 (das-1602),
1199   [ComputerBoards] PC104-DAS16/JR (pc104-das16jr),
1200   PC104-DAS16JR/16 (pc104-das16jr/16),
1201   CIO-DAS16JR/16 (cio-das16jr/16),
1202   CIO-DAS16/JR (cio-das16/jr), CIO-DAS1401/12 (cio-das1401/12),
1203   CIO-DAS1402/12 (cio-das1402/12), CIO-DAS1402/16 (cio-das1402/16),
1204   CIO-DAS1601/12 (cio-das1601/12), CIO-DAS1602/12 (cio-das1602/12),
1205   CIO-DAS1602/16 (cio-das1602/16), CIO-DAS16/330 (cio-das16/330)
1206 Status: works
1207 Updated: 2003-10-12
1208
1209 A rewrite of the das16 and das1600 drivers.
1210 Options:
1211         [0] - base io address
1212         [1] - irq (does nothing, irq is not used anymore)
1213         [2] - dma (optional, required for comedi_command support)
1214         [3] - master clock speed in MHz (optional, 1 or 10, ignored if
1215                 board can probe clock, defaults to 1)
1216         [4] - analog input range lowest voltage in microvolts (optional,
1217                 only useful if your board does not have software
1218                 programmable gain)
1219         [5] - analog input range highest voltage in microvolts (optional,
1220                 only useful if board does not have software programmable
1221                 gain)
1222         [6] - analog output range lowest voltage in microvolts (optional)
1223         [7] - analog output range highest voltage in microvolts (optional)
1224         [8] - use timer mode for DMA.  Timer mode is needed e.g. for
1225                 buggy DMA controllers in NS CS5530A (Geode Companion), and for
1226                 'jr' cards that lack a hardware fifo.  This option is no
1227                 longer needed, since timer mode is _always_ used.
1228
1229 Passing a zero for an option is the same as leaving it unspecified.
1230
1231
1232
1233
1234 Driver: das16m1
1235 Description: CIO-DAS16/M1
1236 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
1237 Devices: [Measurement Computing] CIO-DAS16/M1 (cio-das16/m1)
1238 Status: works
1239
1240 This driver supports a single board - the CIO-DAS16/M1.
1241 As far as I know, there are no other boards that have
1242 the same register layout.  Even the CIO-DAS16/M1/16 is
1243 significantly different.
1244
1245 I was _barely_ able to reach the full 1 MHz capability
1246 of this board, using a hard real-time interrupt
1247 (set the TRIG_RT flag in your comedi_cmd and use
1248 rtlinux or RTAI).  The board can't do dma, so the bottleneck is
1249 pulling the data across the ISA bus.  I timed the interrupt
1250 handler, and it took my computer ~470 microseconds to pull 512
1251 samples from the board.  So at 1 Mhz sampling rate,
1252 expect your CPU to be spending almost all of its
1253 time in the interrupt handler.
1254
1255 This board has some unusual restrictions for its channel/gain list.  If the
1256 list has 2 or more channels in it, then two conditions must be satisfied:
1257 (1) - even/odd channels must appear at even/odd indices in the list
1258 (2) - the list must have an even number of entries.
1259
1260 Options:
1261         [0] - base io address
1262         [1] - irq (optional, but you probably want it)
1263
1264 irq can be omitted, although the cmd interface will not work without it.
1265
1266
1267
1268 Driver: das1800
1269 Description: Keithley Metrabyte DAS1800 (& compatibles)
1270 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
1271 Devices: [Keithley Metrabyte] DAS-1701ST (das-1701st),
1272   DAS-1701ST-DA (das-1701st-da), DAS-1701/AO (das-1701ao),
1273   DAS-1702ST (das-1702st), DAS-1702ST-DA (das-1702st-da),
1274   DAS-1702HR (das-1702hr), DAS-1702HR-DA (das-1702hr-da),
1275   DAS-1702/AO (das-1702ao), DAS-1801ST (das-1801st),
1276   DAS-1801ST-DA (das-1801st-da), DAS-1801HC (das-1801hc),
1277   DAS-1801AO (das-1801ao), DAS-1802ST (das-1802st),
1278   DAS-1802ST-DA (das-1802st-da), DAS-1802HR (das-1802hr),
1279   DAS-1802HR-DA (das-1802hr-da), DAS-1802HC (das-1802hc),
1280   DAS-1802AO (das-1802ao)
1281 Status: works
1282
1283 The waveform analog output on the 'ao' cards is not supported.
1284 If you need it, send me (Frank Hess) an email.
1285
1286 Configuration options:
1287   [0] - I/O port base address
1288   [1] - IRQ (optional, required for timed or externally triggered conversions)
1289   [2] - DMA0 (optional, requires irq)
1290   [3] - DMA1 (optional, requires irq and dma0)
1291
1292
1293
1294 Driver: das6402
1295 Description: Keithley Metrabyte DAS6402 (& compatibles)
1296 Author: Oystein Svendsen <svendsen@pvv.org>
1297 Status: bitrotten
1298 Devices: [Keithley Metrabyte] DAS6402 (das6402)
1299
1300 This driver has suffered bitrot.
1301
1302
1303
1304 Driver: das800
1305 Description: Keithley Metrabyte DAS800 (& compatibles)
1306 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
1307 Devices: [Keithley Metrabyte] DAS-800 (das-800), DAS-801 (das-801),
1308   DAS-802 (das-802),
1309   [Measurement Computing] CIO-DAS800 (cio-das800),
1310   CIO-DAS801 (cio-das801), CIO-DAS802 (cio-das802),
1311   CIO-DAS802/16 (cio-das802/16)
1312 Status: works, cio-das802/16 untested - email me if you have tested it
1313
1314 Configuration options:
1315   [0] - I/O port base address
1316   [1] - IRQ (optional, required for timed or externally triggered conversions)
1317
1318 Notes:
1319         IRQ can be omitted, although the cmd interface will not work without it.
1320
1321         All entries in the channel/gain list must use the same gain and be
1322         consecutive channels counting upwards in channel number (these are
1323         hardware limitations.)
1324
1325         I've never tested the gain setting stuff since I only have a
1326         DAS-800 board with fixed gain.
1327
1328         The cio-das802/16 does not have a fifo-empty status bit!  Therefore
1329         only fifo-half-full transfers are possible with this card.
1330
1331
1332
1333 Driver: dmm32at
1334 Description: Diamond Systems mm32at driver.
1335 Devices:
1336 Author: Perry J. Piplani <perry.j.piplani@nasa.gov>
1337 Updated: Fri Jun  4 09:13:24 CDT 2004
1338 Status: experimental
1339
1340 This driver is for the Diamond Systems MM-32-AT board
1341 http://www.diamondsystems.com/products/diamondmm32at It is being used
1342 on serveral projects inside NASA, without problems so far. For analog
1343 input commands, TRIG_EXT is not yet supported at all..
1344
1345 Configuration Options:
1346   comedi_config /dev/comedi0 dmm32at baseaddr,irq
1347
1348
1349
1350 Driver: dt2801
1351 Description: Data Translation DT2801 series and DT01-EZ
1352 Author: ds
1353 Status: works
1354 Devices: [Data Translation] DT2801 (dt2801), DT2801-A, DT2801/5716A,
1355   DT2805, DT2805/5716A, DT2808, DT2818, DT2809, DT01-EZ
1356
1357 This driver can autoprobe the type of board.
1358
1359 Configuration options:
1360   [0] - I/O port base address
1361   [1] - unused
1362   [2] - A/D reference 0=differential, 1=single-ended
1363   [3] - A/D range
1364           0 = [-10,10]
1365           1 = [0,10]
1366   [4] - D/A 0 range
1367           0 = [-10,10]
1368           1 = [-5,5]
1369           2 = [-2.5,2.5]
1370           3 = [0,10]
1371           4 = [0,5]
1372   [5] - D/A 1 range (same choices)
1373
1374
1375
1376 Driver: dt2811
1377 Description: Data Translation DT2811
1378 Author: ds
1379 Devices: [Data Translation] DT2811-PGL (dt2811-pgl), DT2811-PGH (dt2811-pgh)
1380 Status: works
1381
1382 Configuration options:
1383   [0] - I/O port base address
1384   [1] - IRQ, although this is currently unused
1385   [2] - A/D reference
1386           0 = signle-ended
1387           1 = differential
1388           2 = pseudo-differential (common reference)
1389   [3] - A/D range
1390           0 = [-5,5]
1391           1 = [-2.5,2.5]
1392           2 = [0,5]
1393   [4] - D/A 0 range (same choices)
1394   [4] - D/A 1 range (same choices)
1395
1396
1397
1398 Driver: dt2814
1399 Description: Data Translation DT2814
1400 Author: ds
1401 Status: complete
1402 Devices: [Data Translation] DT2814 (dt2814)
1403
1404 Configuration options:
1405   [0] - I/O port base address
1406   [1] - IRQ
1407
1408 This card has 16 analog inputs multiplexed onto a 12 bit ADC.  There
1409 is a minimally useful onboard clock.  The base frequency for the
1410 clock is selected by jumpers, and the clock divider can be selected
1411 via programmed I/O.  Unfortunately, the clock divider can only be
1412 a power of 10, from 1 to 10^7, of which only 3 or 4 are useful.  In
1413 addition, the clock does not seem to be very accurate.
1414
1415
1416
1417 Driver: dt2815
1418 Description: Data Translation DT2815
1419 Author: ds
1420 Status: mostly complete, untested
1421 Devices: [Data Translation] DT2815 (dt2815)
1422
1423 I'm not sure anyone has ever tested this board.  If you have information
1424 contrary, please update.
1425
1426 Configuration options:
1427   [0] - I/O port base base address
1428   [1] - IRQ (unused)
1429   [2] - Voltage unipolar/bipolar configuration
1430           0 == unipolar 5V  (0V -- +5V)
1431           1 == bipolar 5V  (-5V -- +5V)
1432   [3] - Current offset configuration
1433           0 == disabled  (0mA -- +32mAV)
1434           1 == enabled  (+4mA -- +20mAV)
1435   [4] - Firmware program configuration
1436           0 == program 1 (see manual table 5-4)
1437           1 == program 2 (see manual table 5-4)
1438           2 == program 3 (see manual table 5-4)
1439           3 == program 4 (see manual table 5-4)
1440   [5] - Analog output 0 range configuration
1441           0 == voltage
1442           1 == current
1443   [6] - Analog output 1 range configuration (same options)
1444   [7] - Analog output 2 range configuration (same options)
1445   [8] - Analog output 3 range configuration (same options)
1446   [9] - Analog output 4 range configuration (same options)
1447   [10] - Analog output 5 range configuration (same options)
1448   [11] - Analog output 6 range configuration (same options)
1449   [12] - Analog output 7 range configuration (same options)
1450
1451
1452
1453 Driver: dt2817
1454 Description: Data Translation DT2817
1455 Author: ds
1456 Status: complete
1457 Devices: [Data Translation] DT2817 (dt2817)
1458
1459 A very simple digital I/O card.  Four banks of 8 lines, each bank
1460 is configurable for input or output.  One wonders why it takes a
1461 50 page manual to describe this thing.
1462
1463 The driver (which, btw, is much less than 50 pages) has 1 subdevice
1464 with 32 channels, configurable in groups of 8.
1465
1466 Configuration options:
1467   [0] - I/O port base base address
1468
1469
1470
1471 Driver: dt282x
1472 Description: Data Translation DT2821 series (including DT-EZ)
1473 Author: ds
1474 Devices: [Data Translation] DT2821 (dt2821),
1475   DT2821-F-16SE (dt2821-f), DT2821-F-8DI (dt2821-f),
1476   DT2821-G-16SE (dt2821-f), DT2821-G-8DI (dt2821-g),
1477   DT2823 (dt2823),
1478   DT2824-PGH (dt2824-pgh), DT2824-PGL (dt2824-pgl), DT2825 (dt2825),
1479   DT2827 (dt2827), DT2828 (dt2828), DT21-EZ (dt21-ez), DT23-EZ (dt23-ez),
1480   DT24-EZ (dt24-ez), DT24-EZ-PGL (dt24-ez-pgl)
1481 Status: complete
1482 Updated: Wed, 22 Aug 2001 17:11:34 -0700
1483
1484 Configuration options:
1485   [0] - I/O port base address
1486   [1] - IRQ
1487   [2] - DMA 1
1488   [3] - DMA 2
1489   [4] - AI jumpered for 0=single ended, 1=differential
1490   [5] - AI jumpered for 0=straight binary, 1=2's complement
1491   [6] - AO 0 jumpered for 0=straight binary, 1=2's complement
1492   [7] - AO 1 jumpered for 0=straight binary, 1=2's complement
1493   [8] - AI jumpered for 0=[-10,10]V, 1=[0,10], 2=[-5,5], 3=[0,5]
1494   [9] - AO 0 jumpered for 0=[-10,10]V, 1=[0,10], 2=[-5,5], 3=[0,5],
1495         4=[-2.5,2.5]
1496   [10]- A0 1 jumpered for 0=[-10,10]V, 1=[0,10], 2=[-5,5], 3=[0,5],
1497         4=[-2.5,2.5]
1498
1499 Notes:
1500   - AO commands might be broken.
1501   - If you try to run a command on both the AI and AO subdevices
1502     simultaneously, bad things will happen.  The driver needs to
1503     be fixed to check for this situation and return an error.
1504
1505
1506
1507 Driver: dt3000
1508 Description: Data Translation DT3000 series
1509 Author: ds
1510 Devices: [Data Translation] DT3001 (dt3000), DT3001-PGL, DT3002, DT3003,
1511   DT3003-PGL, DT3004, DT3005, DT3004-200
1512 Status: works
1513
1514 There is code to support AI commands, but it may not work.
1515
1516 AO commands are not supported.
1517
1518
1519
1520 Driver: dt9812
1521 Description: Data Translation DT9812 USB module
1522 Author: anders.blomdell@control.lth.se (Anders Blomdell)
1523 Status: in development
1524 Devices: [Data Translation] DT9812 (dt9812)
1525 Updated: Sun Nov 20 20:18:34 EST 2005
1526
1527 This driver works, but bulk transfers not implemented. Might be a starting point
1528 for someone else. I found out too late that USB has too high latencies (>1 ms)
1529 for my needs.
1530
1531
1532
1533 Driver: fl512
1534 Description: unknown
1535 Author: Anders Gnistrup <ex18@kalman.iau.dtu.dk>
1536 Devices: [unknown] FL512 (fl512)
1537 Status: unknown
1538
1539 Digital I/O is not supported.
1540
1541 Configuration options:
1542   [0] - I/O port base address
1543
1544
1545
1546 Driver: gsc_hpdi
1547 Description: General Standards Corporation High
1548     Speed Parallel Digital Interface rs485 boards
1549 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
1550 Status: only receive mode works, transmit not supported
1551 Updated: 2003-02-20
1552 Devices: [General Standards Corporation] PCI-HPDI32 (gsc_hpdi),
1553   PMC-HPDI32
1554
1555 Configuration options:
1556    [0] - PCI bus of device (optional)
1557    [1] - PCI slot of device (optional)
1558
1559 There are some additional hpdi models available from GSC for which
1560 support could be added to this driver.
1561
1562
1563
1564
1565 Driver: icp_multi
1566 Description: Inova ICP_MULTI
1567 Author: Anne Smorthit <anne.smorthit@sfwte.ch>
1568 Devices: [Inova] ICP_MULTI (icp_multi)
1569 Status: works
1570
1571 The driver works for analog input and output and digital input and output.
1572 It does not work with interrupts or with the counters.  Currently no support
1573 for DMA.
1574
1575 It has 16 single-ended or 8 differential Analogue Input channels with 12-bit
1576 resolution.  Ranges : 5V, 10V, +/-5V, +/-10V, 0..20mA and 4..20mA.  Input
1577 ranges can be individually programmed for each channel.  Voltage or current
1578 measurement is selected by jumper.
1579
1580 There are 4 x 12-bit Analogue Outputs.  Ranges : 5V, 10V, +/-5V, +/-10V
1581
1582 16 x Digital Inputs, 24V
1583
1584 8 x Digital Outputs, 24V, 1A
1585
1586 4 x 16-bit counters
1587
1588 Options:
1589  [0] - PCI bus number - if bus number and slot number are 0,
1590                         then driver search for first unused card
1591  [1] - PCI slot number
1592
1593
1594
1595 Driver: ii_pci20kc
1596 Description: Intelligent Instruments PCI-20001C carrier board
1597 Author: Markus Kempf <kempf@matsci.uni-sb.de>
1598 Devices: [Intelligent Instrumentation] PCI-20001C (ii_pci20kc)
1599 Status: works
1600
1601 Supports the PCI-20001 C-2a Carrier board, and could probably support
1602 the other carrier boards with small modifications.  Modules supported
1603 are:
1604         PCI-20006 M-2 16-bit analog output module
1605         PCI-20341 M-1A 16-bit analog input module
1606
1607 Options:
1608   0   Board base address
1609   1   IRQ
1610   2   first option for module 1
1611   3   second option for module 1
1612   4   first option for module 2
1613   5   second option for module 2
1614   6   first option for module 3
1615   7   second option for module 3
1616
1617 options for PCI-20006M:
1618   first:   Analog output channel 0 range configuration
1619              0  bipolar 10  (-10V -- +10V)
1620              1  unipolar 10  (0V -- +10V)
1621              2  bipolar 5  (-5V -- 5V)
1622   second:  Analog output channel 1 range configuration
1623
1624 options for PCI-20341M:
1625   first:   Analog input gain configuration
1626              0  1
1627              1  10
1628              2  100
1629              3  200
1630
1631
1632
1633 Driver: jr3_pci
1634 Description: JR3/PCI force sensor board
1635 Author: Anders Blomdell <anders.blomdell@control.lth.se>
1636 Status: works
1637 Devices: [JR3] PCI force sensor board (jr3_pci)
1638
1639   The DSP on the board requires initialization code, which can 
1640   be loaded by placing it in /lib/firmware/comedi.  
1641   The initialization code should be somewhere on the media you got 
1642   with your card. One version is available from http://www.comedi.org
1643   in the comedi_nonfree_firmware tarball.
1644
1645   Configuration options:
1646   [0] - PCI bus number - if bus number and slot number are 0,
1647                          then driver search for first unused card
1648   [1] - PCI slot number
1649
1650
1651
1652
1653 Driver: ke_counter
1654 Description: Driver for Kolter Electronic Counter Card
1655 Devices: [Kolter Electronic] PCI Counter Card (ke_counter)
1656 Author: Michael Hillmann
1657 Updated: 2002.4.11
1658 Status: tested
1659
1660 This driver is a simple driver to read the counter values from
1661 Kolter Electronic PCI Counter Card.
1662
1663
1664
1665 Driver: me4000
1666 Description: Meilhaus ME-4000 series boards
1667 Devices: [Meilhaus] ME-4650 (me4000), ME-4670i, ME-4680, ME-4680i, ME-4680is
1668 Author: gg (Guenter Gebhardt <g.gebhardt@meilhaus.com>)
1669 Updated: Mon, 18 Mar 2002 15:34:01 -0800
1670 Status: broken (no support for loading firmware)
1671
1672 Supports:
1673
1674     - Analog Input
1675     - Analog Output
1676     - Digital I/O
1677     - Counter
1678
1679 Configuration Options:
1680
1681     [0] - PCI bus number (optional)
1682     [1] - PCI slot number (optional)
1683
1684     If bus/slot is not specified, the first available PCI
1685     device will be used.
1686
1687 The firmware required by these boards is available in the
1688 comedi_nonfree_firmware tarball available from
1689 http://www.comedi.org.  However, the driver's support for
1690 loading the firmware through comedi_config is currently
1691 broken.
1692
1693
1694
1695
1696 Driver: me_daq
1697 Description: Meilhaus PCI data acquisition cards
1698 Author: Michael Hillmann <hillmann@syscongroup.de>
1699 Devices: [Meilhaus] ME-2600i (me_daq), ME-2000i
1700 Status: experimental
1701
1702 Supports:
1703
1704     Analog Output
1705
1706 Configuration options:
1707
1708     [0] - PCI bus number (optional)
1709     [1] - PCI slot number (optional)
1710
1711     If bus/slot is not specified, the first available PCI
1712     device will be used.
1713
1714 The 2600 requires a firmware upload, which can be accomplished
1715 using the -i or --init-data option of comedi_config.
1716 The firmware can be
1717 found in the comedi_nonfree_firmware tarball available
1718 from http://www.comedi.org
1719
1720
1721
1722
1723 Driver: mpc624
1724 Description: Micro/sys MPC-624 PC/104 board
1725 Devices: [Micro/sys] MPC-624 (mpc624)
1726 Author: Stanislaw Raczynski <sraczynski@op.pl>
1727 Updated: Thu, 15 Sep 2005 12:01:18 +0200
1728 Status: working
1729
1730     The Micro/sys MPC-624 board is based on the LTC2440 24-bit sigma-delta
1731     ADC chip.
1732     
1733     Subdevices supported by the driver:
1734     - Analog In:   supported
1735     - Digital I/O: not supported
1736     - LEDs:        not supported
1737     - EEPROM:      not supported
1738
1739 Configuration Options:
1740   [0] - I/O base address
1741   [1] - convertion rate
1742             Convertion rate  RMS noise  Effective Number Of Bits
1743          0      3.52kHz        23uV                17
1744          1      1.76kHz       3.5uV                20
1745          2       880Hz         2uV                21.3
1746          3       440Hz        1.4uV               21.8
1747          4       220Hz         1uV                22.4
1748          5       110Hz        750uV               22.9
1749          6       55Hz         510nV               23.4
1750          7      27.5Hz        375nV                24 
1751          8      13.75Hz       250nV               24.4
1752          9      6.875Hz       200nV               24.6
1753    [2] - voltage range
1754          0      -1.01V .. +1.01V
1755          1      -10.1V .. +10.1V
1756
1757
1758
1759 Driver: mpc8260cpm
1760 Description: MPC8260 CPM module generic digital I/O lines
1761 Devices: [Motorola] MPC8260 CPM (mpc8260cpm)
1762 Author: ds
1763 Status: experimental
1764 Updated: Sat, 16 Mar 2002 17:34:48 -0800
1765
1766 This driver is specific to the Motorola MPC8260 processor, allowing
1767 you to access the processor's generic digital I/O lines.
1768
1769 It is apparently missing some code.
1770
1771
1772
1773 Driver: multiq3
1774 Description: Quanser Consulting MultiQ-3
1775 Author: Anders Blomdell <anders.blomdell@control.lth.se>
1776 Status: works
1777 Devices: [Quanser Consulting] MultiQ-3 (multiq3)
1778
1779
1780
1781
1782 Driver: ni_6527
1783 Description: National Instruments 6527
1784 Author: ds
1785 Status: works
1786 Devices: [National Instruments] PCI-6527 (ni6527), PXI-6527
1787 Updated: Sat, 25 Jan 2003 13:24:40 -0800
1788
1789
1790
1791
1792
1793 Driver: ni_65xx
1794 Description: National Instruments 65xx static dio boards
1795 Author: Jon Grierson <jd@renko.co.uk>, Frank Mori Hess <fmhess@users.sourceforge.net>
1796 Status: testing
1797 Devices: [National Instruments] PCI-6509 (ni_65xx), PXI-6509, PCI-6510, PCI-6511,
1798   PXI-6511, PCI-6512, PXI-6512, PCI-6513, PXI-6513, PCI-6514, PXI-6514, PCI-6515,
1799   PXI-6515, PCI-6516, PCI-6517, PCI-6518, PCI-6519, PCI-6520, PCI-6521, PXI-6521,
1800   PCI-6528, PXI-6528
1801 Updated: Wed Oct 18 08:59:11 EDT 2006
1802
1803 Based on the PCI-6527 driver by ds.
1804 The interrupt subdevice (subdevice 3) is probably broken for all boards
1805 except maybe the 6514.
1806
1807
1808
1809
1810 Driver: ni_660x
1811 Description: National Instruments 660x counter/timer boards
1812 Devices:
1813 [National Instruments] PCI-6601 (ni_660x), PCI-6602, PXI-6602,
1814         PXI-6608
1815 Author: J.P. Mellor <jpmellor@rose-hulman.edu>,
1816         Herman.Bruyninckx@mech.kuleuven.ac.be,
1817         Wim.Meeussen@mech.kuleuven.ac.be,
1818         Klaas.Gadeyne@mech.kuleuven.ac.be,
1819         Frank Mori Hess <fmhess@users.sourceforge.net>
1820 Updated: Thu Oct 18 12:56:06 EDT 2007
1821 Status: experimental
1822
1823 Encoders work.  PulseGeneration (both single pulse and pulse train)
1824 works. Buffered commands work for input but not output.
1825
1826 References:
1827 DAQ 660x Register-Level Programmer Manual  (NI 370505A-01)
1828 DAQ 6601/6602 User Manual (NI 322137B-01)
1829
1830
1831
1832
1833 Driver: ni_670x
1834 Description: National Instruments 670x
1835 Author: Bart Joris <bjoris@advalvas.be>
1836 Updated: Wed, 11 Dec 2002 18:25:35 -0800
1837 Devices: [National Instruments] PCI-6703 (ni_670x), PCI-6704
1838 Status: unknown
1839
1840 Commands are not supported.
1841
1842
1843
1844 Driver: ni_at_a2150
1845 Description: National Instruments AT-A2150
1846 Author: Frank Mori Hess
1847 Status: works
1848 Devices: [National Instruments] AT-A2150C (at_a2150c), AT-2150S (at_a2150s)
1849
1850 If you want to ac couple the board's inputs, use AREF_OTHER.
1851
1852 Configuration options:
1853   [0] - I/O port base address
1854   [1] - IRQ (optional, required for timed conversions)
1855   [2] - DMA (optional, required for timed conversions)
1856
1857
1858
1859
1860 Driver: ni_at_ao
1861 Description: National Instruments AT-AO-6/10
1862 Devices: [National Instruments] AT-AO-6 (at-ao-6), AT-AO-10 (at-ao-10)
1863 Status: should work
1864 Author: ds
1865 Updated: Sun Dec 26 12:26:28 EST 2004
1866
1867 Configuration options:
1868   [0] - I/O port base address
1869   [1] - IRQ (unused)
1870   [2] - DMA (unused)
1871   [3] - analog output range, set by jumpers on hardware (0 for -10 to 10V bipolar, 1 for 0V to 10V unipolar)
1872
1873
1874
1875
1876 Driver: ni_atmio16d
1877 Description: National Instruments AT-MIO-16D
1878 Author: Chris R. Baugher <baugher@enteract.com>
1879 Status: unknown
1880 Devices: [National Instruments] AT-MIO-16 (atmio16), AT-MIO-16D (atmio16d)
1881
1882
1883
1884 Driver: ni_atmio
1885 Description: National Instruments AT-MIO-E series
1886 Author: ds
1887 Devices: [National Instruments] AT-MIO-16E-1 (ni_atmio),
1888   AT-MIO-16E-2, AT-MIO-16E-10, AT-MIO-16DE-10, AT-MIO-64E-3,
1889   AT-MIO-16XE-50, AT-MIO-16XE-10, AT-AI-16XE-10
1890 Status: works
1891 Updated: Thu May  1 20:03:02 CDT 2003
1892
1893 The driver has 2.6 kernel isapnp support, and
1894 will automatically probe for a supported board if the
1895 I/O base is left unspecified with comedi_config.
1896 However, many of
1897 the isapnp id numbers are unknown.  If your board is not
1898 recognized, please send the output of 'cat /proc/isapnp'
1899 (you may need to modprobe the isa-pnp module for
1900 /proc/isapnp to exist) so the
1901 id numbers for your board can be added to the driver.
1902
1903 Otherwise, you can use the isapnptools package to configure
1904 your board.  Use isapnp to
1905 configure the I/O base and IRQ for the board, and then pass
1906 the same values as
1907 parameters in comedi_config.  A sample isapnp.conf file is included
1908 in the etc/ directory of Comedilib.
1909
1910 Comedilib includes a utility to autocalibrate these boards.  The
1911 boards seem to boot into a state where the all calibration DACs
1912 are at one extreme of their range, thus the default calibration
1913 is terrible.  Calibration at boot is strongly encouraged.
1914
1915 To use the extended digital I/O on some of the boards, enable the
1916 8255 driver when configuring the Comedi source tree.
1917
1918 External triggering is supported for some events.  The channel index
1919 (scan_begin_arg, etc.) maps to PFI0 - PFI9.
1920
1921 Some of the more esoteric triggering possibilities of these boards
1922 are not supported.
1923
1924
1925
1926 Driver: ni_daq_700
1927 Description: National Instruments PCMCIA DAQCard-700 DIO only
1928 Author: Fred Brooks <nsaspook@nsaspook.com>,
1929   based on ni_daq_dio24 by Daniel Vecino Castel <dvecino@able.es>
1930 Devices: [National Instruments] PCMCIA DAQ-Card-700 (ni_daq_700)
1931 Status: works
1932 Updated: Thu, 21 Feb 2008 12:07:20 +0000
1933
1934 The daqcard-700 appears in Comedi as a single digital I/O subdevice with
1935 16 channels.  The channel 0 corresponds to the daqcard-700's output
1936 port, bit 0; channel 8 corresponds to the input port, bit 0.
1937
1938 Direction configuration: channels 0-7 output, 8-15 input (8225 device
1939 emu as port A output, port B input, port C N/A).
1940
1941 IRQ is assigned but not used.
1942
1943
1944
1945 Driver: ni_daq_dio24
1946 Description: National Instruments PCMCIA DAQ-Card DIO-24
1947 Author: Daniel Vecino Castel <dvecino@able.es>
1948 Devices: [National Instruments] PCMCIA DAQ-Card DIO-24 (ni_daq_dio24)
1949 Status: ?
1950 Updated: Thu, 07 Nov 2002 21:53:06 -0800
1951
1952 This is just a wrapper around the 8255.o driver to properly handle
1953 the PCMCIA interface.
1954
1955
1956
1957 Driver: ni_labpc
1958 Description: National Instruments Lab-PC (& compatibles)
1959 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
1960 Devices: [National Instruments] Lab-PC-1200 (labpc-1200),
1961   Lab-PC-1200AI (labpc-1200ai), Lab-PC+ (lab-pc+), PCI-1200 (pci-1200)
1962 Status: works
1963
1964 Tested with lab-pc-1200.  For the older Lab-PC+, not all input ranges
1965 and analog references will work, the available ranges/arefs will
1966 depend on how you have configured the jumpers on your board
1967 (see your owner's manual).
1968
1969 Kernel-level ISA plug-and-play support for the lab-pc-1200
1970 boards has not
1971 yet been added to the driver, mainly due to the fact that
1972 I don't know the device id numbers.  If you have one
1973 of these boards,
1974 please file a bug report at https://bugs.comedi.org/
1975 so I can get the necessary information from you.
1976
1977 The 1200 series boards have onboard calibration dacs for correcting
1978 analog input/output offsets and gains.  The proper settings for these
1979 caldacs are stored on the board's eeprom.  To read the caldac values
1980 from the eeprom and store them into a file that can be then be used by
1981 comedilib, use the comedi_calibrate program.
1982
1983 Configuration options - ISA boards:
1984   [0] - I/O port base address
1985   [1] - IRQ (optional, required for timed or externally triggered conversions)
1986   [2] - DMA channel (optional)
1987
1988 Configuration options - PCI boards:
1989   [0] - bus (optional)
1990   [1] - slot (optional)
1991
1992 The Lab-pc+ has quirky chanlist requirements
1993 when scanning multiple channels.  Multiple channel scan
1994 sequence must start at highest channel, then decrement down to
1995 channel 0.  The rest of the cards can scan down like lab-pc+ or scan
1996 up from channel zero.  Chanlists consisting of all one channel
1997 are also legal, and allow you to pace conversions in bursts.
1998
1999
2000
2001
2002 Driver: ni_labpc_cs
2003 Description: National Instruments Lab-PC (& compatibles)
2004 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
2005 Devices: [National Instruments] DAQCard-1200 (daqcard-1200)
2006 Status: works
2007
2008 Thanks go to Fredrik Lingvall for much testing and perseverance in
2009 helping to debug daqcard-1200 support.
2010
2011 The 1200 series boards have onboard calibration dacs for correcting
2012 analog input/output offsets and gains.  The proper settings for these
2013 caldacs are stored on the board's eeprom.  To read the caldac values
2014 from the eeprom and store them into a file that can be then be used by
2015 comedilib, use the comedi_calibrate program.
2016
2017 Configuration options:
2018   none
2019
2020 The daqcard-1200 has quirky chanlist requirements
2021 when scanning multiple channels.  Multiple channel scan
2022 sequence must start at highest channel, then decrement down to
2023 channel 0.  Chanlists consisting of all one channel
2024 are also legal, and allow you to pace conversions in bursts.
2025
2026
2027
2028
2029 Driver: ni_mio_cs
2030 Description: National Instruments DAQCard E series
2031 Author: ds
2032 Status: works
2033 Devices: [National Instruments] DAQCard-AI-16XE-50 (ni_mio_cs),
2034   DAQCard-AI-16E-4, DAQCard-6062E, DAQCard-6024E, DAQCard-6036E
2035 Updated: Thu Oct 23 19:43:17 CDT 2003
2036
2037 See the notes in the ni_atmio.o driver.
2038
2039
2040
2041 Driver: ni_pcidio
2042 Description: National Instruments PCI-DIO32HS, PCI-DIO96, PCI-6533, PCI-6503
2043 Author: ds
2044 Status: works
2045 Devices: [National Instruments] PCI-DIO-32HS (ni_pcidio), PXI-6533,
2046   PCI-DIO-96, PCI-DIO-96B, PXI-6508, PCI-6503, PCI-6503B, PCI-6503X,
2047   PXI-6503, PCI-6533, PCI-6534
2048 Updated: Sun, 21 Apr 2002 21:03:38 -0700
2049
2050 The DIO-96 appears as four 8255 subdevices.  See the 8255
2051 driver notes for details.
2052
2053 The DIO32HS board appears as one subdevice, with 32 channels.
2054 Each channel is individually I/O configurable.  The channel order
2055 is 0=A0, 1=A1, 2=A2, ... 8=B0, 16=C0, 24=D0.  The driver only
2056 supports simple digital I/O; no handshaking is supported.
2057
2058 DMA mostly works for the PCI-DIO32HS, but only in timed input mode.
2059
2060 This driver could be easily modified to support AT-MIO32HS and
2061 AT-MIO96.
2062
2063 The PCI-6534 requires a firmware upload after power-up to work, the
2064 firmware data and instructions for loading it with comedi_config
2065 it are contained in the
2066 comedi_nonfree_firmware tarball available from http://www.comedi.org
2067
2068
2069
2070 Driver: ni_pcimio
2071 Description: National Instruments PCI-MIO-E series and M series (all boards)
2072 Author: ds, John Hallen, Frank Mori Hess, Rolf Mueller, Herbert Peremans,
2073   Herman Bruyninckx, Terry Barnaby
2074 Status: works
2075 Devices: [National Instruments] PCI-MIO-16XE-50 (ni_pcimio),
2076   PCI-MIO-16XE-10, PXI-6030E, PCI-MIO-16E-1, PCI-MIO-16E-4, PCI-6014, PCI-6040E,
2077   PXI-6040E, PCI-6030E, PCI-6031E, PCI-6032E, PCI-6033E, PCI-6071E, PCI-6023E,
2078   PCI-6024E, PCI-6025E, PXI-6025E, PCI-6034E, PCI-6035E, PCI-6052E,
2079   PCI-6110, PCI-6111, PCI-6220, PCI-6221, PCI-6224, PCI-6225, PCI-6229,
2080   PCI-6250, PCI-6251, PCIe-6251, PCI-6254, PCI-6259, PCIe-6259,
2081   PCI-6280, PCI-6281, PXI-6281, PCI-6284, PCI-6289,
2082   PCI-6711, PXI-6711, PCI-6713, PXI-6713,
2083   PXI-6071E, PCI-6070E, PXI-6070E,
2084   PXI-6052E, PCI-6036E, PCI-6731, PCI-6733, PXI-6733,
2085   PCI-6143, PXI-6143
2086 Updated: Wed Nov 29 10:30:36 EST 2006
2087
2088 These boards are almost identical to the AT-MIO E series, except that
2089 they use the PCI bus instead of ISA (i.e., AT).  See the notes for
2090 the ni_atmio.o driver for additional information about these boards.
2091
2092 Autocalibration is supported on many of the devices, using the
2093 comedi_calibrate (or comedi_soft_calibrate for m-series) utility.
2094 M-Series boards do analog input and analog output calibration entirely
2095 in software. The software calibration corrects
2096 the analog input for offset, gain and
2097 nonlinearity.  The analog outputs are corrected for offset and gain.
2098 See the comedilib documentation on comedi_get_softcal_converter() for
2099 more information.
2100
2101 By default, the driver uses DMA to transfer analog input data to
2102 memory.  When DMA is enabled, not all triggering features are
2103 supported.
2104
2105 Digital I/O may not work on 673x.
2106
2107 Note that the PCI-6143 is a simultaineous sampling device with 8 convertors.
2108 With this board all of the convertors perform one simultaineous sample during
2109 a scan interval. The period for a scan is used for the convert time in a
2110 Comedi cmd. The convert trigger source is normally set to TRIG_NOW by default.
2111
2112 The RTSI trigger bus is supported on these cards on
2113 subdevice 10. See the comedilib documentation for details.
2114
2115 Information (number of channels, bits, etc.) for some devices may be
2116 incorrect.  Please check this and submit a bug if there are problems
2117 for your device.
2118
2119 SCXI is probably broken for m-series boards.
2120
2121 Bugs:
2122  - When DMA is enabled, COMEDI_EV_CONVERT does
2123    not work correctly.
2124
2125
2126
2127
2128 Driver: ni_tio
2129 Description: National Instruments general purpose counters
2130 Devices:
2131 Author: J.P. Mellor <jpmellor@rose-hulman.edu>,
2132         Herman.Bruyninckx@mech.kuleuven.ac.be,
2133         Wim.Meeussen@mech.kuleuven.ac.be,
2134         Klaas.Gadeyne@mech.kuleuven.ac.be,
2135         Frank Mori Hess <fmhess@users.sourceforge.net>
2136 Updated: Thu Nov 16 09:50:32 EST 2006
2137 Status: works
2138
2139 This module is not used directly by end-users.  Rather, it
2140 is used by other drivers (for example ni_660x and ni_pcimio)
2141 to provide support for NI's general purpose counters.  It was
2142 originally based on the counter code from ni_660x.c and
2143 ni_mio_common.c.
2144
2145 References:
2146 DAQ 660x Register-Level Programmer Manual  (NI 370505A-01)
2147 DAQ 6601/6602 User Manual (NI 322137B-01)
2148 340934b.pdf  DAQ-STC reference manual
2149
2150
2151
2152
2153 Driver: pcl711
2154 Description: Advantech PCL-711 and 711b, ADLink ACL-8112
2155 Author: ds, Janne Jalkanen <jalkanen@cs.hut.fi>, Eric Bunn <ebu@cs.hut.fi>
2156 Status: mostly complete
2157 Devices: [Advantech] PCL-711 (pcl711), PCL-711B (pcl711b),
2158   [AdLink] ACL-8112HG (acl8112hg), ACL-8112DG (acl8112dg)
2159
2160 Since these boards do not have DMA or FIFOs, only immediate mode is
2161 supported.
2162
2163
2164
2165
2166 Driver: pcl724
2167 Description: Advantech PCL-724, PCL-722, PCL-731 ADLink ACL-7122, ACL-7124,
2168   PET-48DIO
2169 Author: Michal Dobes <dobes@tesnet.cz>
2170 Devices: [Advantech] PCL-724 (pcl724), PCL-722 (pcl722), PCL-731 (pcl731),
2171   [ADLink] ACL-7122 (acl7122), ACL-7124 (acl7124), PET-48DIO (pet48dio)
2172 Status: untested
2173
2174 This is driver for digital I/O boards PCL-722/724/731 with 144/24/48 DIO
2175 and for digital I/O boards ACL-7122/7124/PET-48DIO with 144/24/48 DIO.
2176 It need 8255.o for operations and only immediate mode is supported.
2177 See the source for configuration details.
2178
2179
2180
2181 Driver: pcl725
2182 Description: Advantech PCL-725 (& compatibles)
2183 Author: ds
2184 Status: unknown
2185 Devices: [Advantech] PCL-725 (pcl725)
2186
2187
2188
2189 Driver: pcl726
2190 Description: Advantech PCL-726 & compatibles
2191 Author: ds
2192 Status: untested
2193 Devices: [Advantech] PCL-726 (pcl726), PCL-727 (pcl727), PCL-728 (pcl728),
2194   [ADLink] ACL-6126 (acl6126), ACL-6128 (acl6128)
2195
2196 Interrupts are not supported.
2197
2198     Options for PCL-726:
2199      [0] - IO Base
2200      [2]...[7] - D/A output range for channel 1-6:
2201                0: 0-5V, 1: 0-10V, 2: +/-5V, 3: +/-10V,
2202                4: 4-20mA, 5: unknown (external reference)
2203
2204     Options for PCL-727:
2205      [0] - IO Base
2206      [2]...[13] - D/A output range for channel 1-12:
2207                0: 0-5V, 1: 0-10V, 2: +/-5V,
2208                3: 4-20mA
2209
2210     Options for PCL-728 and ACL-6128:
2211      [0] - IO Base
2212      [2], [3] - D/A output range for channel 1 and 2:
2213                0: 0-5V, 1: 0-10V, 2: +/-5V, 3: +/-10V,
2214                4: 4-20mA, 5: 0-20mA
2215
2216     Options for ACL-6126:
2217      [0] - IO Base
2218      [1] - IRQ (0=disable, 3, 5, 6, 7, 9, 10, 11, 12, 15) (currently ignored)
2219      [2]...[7] - D/A output range for channel 1-6:
2220                0: 0-5V, 1: 0-10V, 2: +/-5V, 3: +/-10V,
2221                4: 4-20mA
2222
2223
2224
2225 Driver: pcl730
2226 Description: Advantech PCL-730 (& compatibles)
2227 Author: José Luis Sánchez (jsanchezv@teleline.es)
2228 Status: untested
2229 Devices: [Advantech] PCL-730 (pcl730), [ICP] ISO-730 (iso730),
2230                  [Adlink] ACL-7130 (acl7130)
2231
2232 Interrupts are not supported.
2233 The ACL-7130 card have an 8254 timer/counter not supported by this driver.
2234
2235
2236
2237 Driver: pcl812
2238 Description: Advantech PCL-812/PG, PCL-813/B,
2239              ADLink ACL-8112DG/HG/PG, ACL-8113, ACL-8216,
2240              ICP DAS A-821PGH/PGL/PGL-NDA, A-822PGH/PGL, A-823PGH/PGL, A-826PG,
2241              ICP DAS ISO-813
2242 Author: Michal Dobes <dobes@tesnet.cz>
2243 Devices: [Advantech] PCL-812 (pcl812), PCL-812PG (pcl812pg),
2244   PCL-813 (pcl813), PCL-813B (pcl813b), [ADLink] ACL-8112DG (acl8112dg),
2245   ACL-8112HG (acl8112hg), ACL-8113 (acl-8113), ACL-8216 (acl8216),
2246   [ICP] ISO-813 (iso813), A-821PGH (a821pgh), A-821PGL (a821pgl),
2247   A-821PGL-NDA (a821pclnda), A-822PGH (a822pgh), A-822PGL (a822pgl),
2248   A-823PGH (a823pgh), A-823PGL (a823pgl), A-826PG (a826pg)
2249 Updated: Mon, 06 Aug 2007 12:03:15 +0100
2250 Status: works (I hope. My board fire up under my hands
2251                and I cann't test all features.)
2252
2253 This driver supports insn and cmd interfaces. Some boards support only insn
2254 becouse their hardware don't allow more (PCL-813/B, ACL-8113, ISO-813).
2255 Data transfer over DMA is supported only when you measure only one
2256 channel, this is too hardware limitation of these boards.
2257
2258 Options for PCL-812:
2259   [0] - IO Base
2260   [1] - IRQ  (0=disable, 2, 3, 4, 5, 6, 7; 10, 11, 12, 14, 15)
2261   [2] - DMA  (0=disable, 1, 3)
2262   [3] - 0=trigger source is internal 8253 with 2MHz clock
2263         1=trigger source is external
2264   [4] - 0=A/D input range is +/-10V
2265         1=A/D input range is +/-5V
2266         2=A/D input range is +/-2.5V
2267         3=A/D input range is +/-1.25V
2268         4=A/D input range is +/-0.625V
2269         5=A/D input range is +/-0.3125V
2270   [5] - 0=D/A outputs 0-5V  (internal reference -5V)
2271         1=D/A outputs 0-10V (internal reference -10V)
2272         2=D/A outputs unknow (external reference)
2273
2274 Options for PCL-812PG, ACL-8112PG:
2275   [0] - IO Base
2276   [1] - IRQ  (0=disable, 2, 3, 4, 5, 6, 7; 10, 11, 12, 14, 15)
2277   [2] - DMA  (0=disable, 1, 3)
2278   [3] - 0=trigger source is internal 8253 with 2MHz clock
2279         1=trigger source is external
2280   [4] - 0=A/D have max +/-5V input
2281         1=A/D have max +/-10V input
2282   [5] - 0=D/A outputs 0-5V  (internal reference -5V)
2283         1=D/A outputs 0-10V (internal reference -10V)
2284         2=D/A outputs unknow (external reference)
2285
2286 Options for ACL-8112DG/HG, A-822PGL/PGH, A-823PGL/PGH, ACL-8216, A-826PG:
2287   [0] - IO Base
2288   [1] - IRQ  (0=disable, 2, 3, 4, 5, 6, 7; 10, 11, 12, 14, 15)
2289   [2] - DMA  (0=disable, 1, 3)
2290   [3] - 0=trigger source is internal 8253 with 2MHz clock
2291         1=trigger source is external
2292   [4] - 0=A/D channels are S.E.
2293         1=A/D channels are DIFF
2294   [5] - 0=D/A outputs 0-5V  (internal reference -5V)
2295         1=D/A outputs 0-10V (internal reference -10V)
2296         2=D/A outputs unknow (external reference)
2297
2298 Options for A-821PGL/PGH:
2299   [0] - IO Base
2300   [1] - IRQ  (0=disable, 2, 3, 4, 5, 6, 7)
2301   [2] - 0=A/D channels are S.E.
2302         1=A/D channels are DIFF
2303   [3] - 0=D/A output 0-5V  (internal reference -5V)
2304         1=D/A output 0-10V (internal reference -10V)
2305
2306 Options for A-821PGL-NDA:
2307   [0] - IO Base
2308   [1] - IRQ  (0=disable, 2, 3, 4, 5, 6, 7)
2309   [2] - 0=A/D channels are S.E.
2310         1=A/D channels are DIFF
2311
2312 Options for PCL-813:
2313   [0] - IO Base
2314
2315 Options for PCL-813B:
2316   [0] - IO Base
2317   [1] - 0= bipolar inputs
2318         1= unipolar inputs
2319
2320 Options for ACL-8113, ISO-813:
2321   [0] - IO Base
2322   [1] - 0= 10V bipolar inputs
2323         1= 10V unipolar inputs
2324         2= 20V bipolar inputs
2325         3= 20V unipolar inputs
2326
2327
2328
2329 Driver: pcl816
2330 Description: Advantech PCL-816 cards, PCL-814
2331 Author: Juan Grigera <juan@grigera.com.ar>
2332 Devices: [Advantech] PCL-816 (pcl816), PCL-814B (pcl814b)
2333 Status: works
2334 Updated: Tue,  2 Apr 2002 23:15:21 -0800
2335
2336 PCL 816 and 814B have 16 SE/DIFF ADCs, 16 DACs, 16 DI and 16 DO.
2337 Differences are at resolution (16 vs 12 bits).
2338
2339 The driver support AI command mode, other subdevices not written.
2340
2341 Analog output and digital input and output are not supported.
2342
2343 Configuration Options:
2344   [0] - IO Base
2345   [1] - IRQ     (0=disable, 2, 3, 4, 5, 6, 7)
2346   [2] - DMA     (0=disable, 1, 3)
2347   [3] - 0, 10=10MHz clock for 8254
2348             1= 1MHz clock for 8254
2349
2350
2351
2352
2353 Driver: pcl818
2354 Description: Advantech PCL-818 cards, PCL-718
2355 Author: Michal Dobes <dobes@tesnet.cz>
2356 Devices: [Advantech] PCL-818L (pcl818l), PCL-818H (pcl818h),
2357   PCL-818HD (pcl818hd), PCL-818HG (pcl818hg), PCL-818 (pcl818),
2358   PCL-718 (pcl718)
2359 Status: works
2360
2361 All cards have 16 SE/8 DIFF ADCs, one or two DACs, 16 DI and 16 DO.
2362 Differences are only at maximal sample speed, range list and FIFO
2363 support.
2364 The driver support AI mode 0, 1, 3 other subdevices (AO, DI, DO) support
2365 only mode 0. If DMA/FIFO/INT are disabled then AI support only mode 0.
2366 PCL-818HD and PCL-818HG support 1kword FIFO. Driver support this FIFO
2367 but this code is untested.
2368 A word or two about DMA. Driver support DMA operations at two ways:
2369 1) DMA uses two buffers and after one is filled then is generated
2370    INT and DMA restart with second buffer. With this mode I'm unable run
2371    more that 80Ksamples/secs without data dropouts on K6/233.
2372 2) DMA uses one buffer and run in autoinit mode and the data are
2373    from DMA buffer moved on the fly with 2kHz interrupts from RTC.
2374    This mode is used if the interrupt 8 is available for allocation.
2375    If not, then first DMA mode is used. With this I can run at
2376    full speed one card (100ksamples/secs) or two cards with
2377    60ksamples/secs each (more is problem on account of ISA limitations).
2378    To use this mode you must have compiled  kernel with disabled
2379    "Enhanced Real Time Clock Support".
2380    Maybe you can have problems if you use xntpd or similar.
2381    If you've data dropouts with DMA mode 2 then:
2382     a) disable IDE DMA
2383     b) switch text mode console to fb.
2384
2385    Options for PCL-818L:
2386     [0] - IO Base
2387     [1] - IRQ   (0=disable, 2, 3, 4, 5, 6, 7)
2388     [2] - DMA   (0=disable, 1, 3)
2389     [3] - 0, 10=10MHz clock for 8254
2390               1= 1MHz clock for 8254
2391     [4] - 0,  5=A/D input  -5V.. +5V
2392           1, 10=A/D input -10V..+10V
2393     [5] - 0,  5=D/A output 0-5V  (internal reference -5V)
2394           1, 10=D/A output 0-10V (internal reference -10V)
2395           2    =D/A output unknow (external reference)
2396
2397    Options for PCL-818, PCL-818H:
2398     [0] - IO Base
2399     [1] - IRQ   (0=disable, 2, 3, 4, 5, 6, 7)
2400     [2] - DMA   (0=disable, 1, 3)
2401     [3] - 0, 10=10MHz clock for 8254
2402               1= 1MHz clock for 8254
2403     [4] - 0,  5=D/A output 0-5V  (internal reference -5V)
2404           1, 10=D/A output 0-10V (internal reference -10V)
2405           2    =D/A output unknow (external reference)
2406
2407    Options for PCL-818HD, PCL-818HG:
2408     [0] - IO Base
2409     [1] - IRQ   (0=disable, 2, 3, 4, 5, 6, 7)
2410     [2] - DMA/FIFO  (-1=use FIFO, 0=disable both FIFO and DMA,
2411                       1=use DMA ch 1, 3=use DMA ch 3)
2412     [3] - 0, 10=10MHz clock for 8254
2413               1= 1MHz clock for 8254
2414     [4] - 0,  5=D/A output 0-5V  (internal reference -5V)
2415           1, 10=D/A output 0-10V (internal reference -10V)
2416           2    =D/A output unknow (external reference)
2417
2418    Options for PCL-718:
2419     [0] - IO Base
2420     [1] - IRQ   (0=disable, 2, 3, 4, 5, 6, 7)
2421     [2] - DMA   (0=disable, 1, 3)
2422     [3] - 0, 10=10MHz clock for 8254
2423               1= 1MHz clock for 8254
2424     [4] -     0=A/D Range is +/-10V
2425               1=             +/-5V
2426               2=             +/-2.5V
2427               3=             +/-1V
2428               4=             +/-0.5V
2429               5=             user defined bipolar
2430               6=             0-10V
2431               7=             0-5V
2432               8=             0-2V
2433               9=             0-1V
2434              10=             user defined unipolar
2435     [5] - 0,  5=D/A outputs 0-5V  (internal reference -5V)
2436           1, 10=D/A outputs 0-10V (internal reference -10V)
2437               2=D/A outputs unknow (external reference)
2438     [6] - 0, 60=max  60kHz A/D sampling
2439           1,100=max 100kHz A/D sampling (PCL-718 with Option 001 installed)
2440
2441
2442
2443
2444 Driver: pcm3724
2445 Description: Advantech PCM-3724
2446 Author: Drew Csillag <drew_csillag@yahoo.com>
2447 Devices: [Advantech] PCM-3724 (pcm724)
2448 Status: tested
2449
2450 This is driver for digital I/O boards PCM-3724 with 48 DIO.
2451 It needs 8255.o for operations and only immediate mode is supported.
2452 See the source for configuration details.
2453
2454 Copy/pasted/hacked from pcm724.c
2455
2456
2457
2458 Driver: pcm3730
2459 Description: PCM3730
2460 Author: Blaine Lee
2461 Devices: [Advantech] PCM-3730 (pcm3730)
2462 Status: unknown
2463
2464 Configuration options:
2465   [0] - I/O port base
2466
2467
2468
2469 Driver: pcmad
2470 Description: Winsystems PCM-A/D12, PCM-A/D16
2471 Author: ds
2472 Devices: [Winsystems] PCM-A/D12 (pcmad12), PCM-A/D16 (pcmad16)
2473 Status: untested
2474
2475 This driver was written on a bet that I couldn't write a driver
2476 in less than 2 hours.  I won the bet, but never got paid.  =(
2477
2478 Configuration options:
2479   [0] - I/O port base
2480   [1] - unused
2481   [2] - Analog input reference
2482           0 = single ended
2483           1 = differential
2484   [3] - Analog input encoding (must match jumpers)
2485           0 = straight binary
2486           1 = two's complement
2487
2488
2489
2490 Driver: pcmda12
2491 Description: A driver for the Winsystems PCM-D/A-12
2492 Devices: [Winsystems] PCM-D/A-12 (pcmda12)
2493 Author: Calin Culianu <calin@ajvar.org>
2494 Updated: Fri, 13 Jan 2006 12:01:01 -0500
2495 Status: works
2496
2497 A driver for the relatively straightforward-to-program PCM-D/A-12.
2498 This board doesn't support commands, and the only way to set its
2499 analog output range is to jumper the board.  As such,
2500 comedi_data_write() ignores the range value specified.
2501
2502 The board uses 16 consecutive I/O addresses starting at the I/O port
2503 base address.  Each address corresponds to the LSB then MSB of a
2504 particular channel from 0-7.
2505
2506 Note that the board is not ISA-PNP capable and thus
2507 needs the I/O port comedi_config parameter.
2508
2509 Note that passing a nonzero value as the second config option will
2510 enable "simultaneous xfer" mode for this board, in which AO writes
2511 will not take effect until a subsequent read of any AO channel.  This
2512 is so that one can speed up programming by preloading all AO registers
2513 with values before simultaneously setting them to take effect with one
2514 read command.
2515
2516 Configuration Options:
2517   [0] - I/O port base address
2518   [1] - Do Simultaneous Xfer (see description)
2519
2520
2521
2522 Driver: pcmmio
2523 Description: A driver for the PCM-MIO multifunction board
2524 Devices: [Winsystems] PCM-MIO (pcmmio)
2525 Author: Calin Culianu <calin@ajvar.org>
2526 Updated: Wed, May 16 2007 16:21:10 -0500
2527 Status: works
2528
2529 A driver for the relatively new PCM-MIO multifunction board from
2530 Winsystems.  This board is a PC-104 based I/O board.  It contains
2531 four subdevices:
2532   subdevice 0 - 16 channels of 16-bit AI
2533   subdevice 1 - 8 channels of 16-bit AO
2534   subdevice 2 - first 24 channels of the 48 channel of DIO (with edge-triggered interrupt support)
2535   subdevice 3 - last 24 channels of the 48 channel DIO (no interrupt support for this bank of channels)
2536
2537   Some notes:
2538
2539   Synchronous reads and writes are the only things implemented for AI and AO,
2540   even though the hardware itself can do streaming acquisition, etc.  Anyone
2541   want to add asynchronous I/O for AI/AO as a feature?  Be my guest...
2542
2543   Asynchronous I/O for the DIO subdevices *is* implemented, however!  They are
2544   basically edge-triggered interrupts for any configuration of the first
2545   24 DIO-lines.
2546
2547   Also note that this interrupt support is untested.
2548
2549   A few words about edge-detection IRQ support (commands on DIO):
2550
2551   * To use edge-detection IRQ support for the DIO subdevice, pass the IRQ
2552     of the board to the comedi_config command.  The board IRQ is not jumpered
2553     but rather configured through software, so any IRQ from 1-15 is OK.
2554
2555   * Due to the genericity of the comedi API, you need to create a special
2556     comedi_command in order to use edge-triggered interrupts for DIO.
2557
2558   * Use comedi_commands with TRIG_NOW.  Your callback will be called each
2559     time an edge is detected on the specified DIO line(s), and the data
2560     values will be two sample_t's, which should be concatenated to form
2561     one 32-bit unsigned int.  This value is the mask of channels that had
2562     edges detected from your channel list.  Note that the bits positions
2563     in the mask correspond to positions in your chanlist when you
2564     specified the command and *not* channel id's!
2565
2566  *  To set the polarity of the edge-detection interrupts pass a nonzero value
2567     for either CR_RANGE or CR_AREF for edge-up polarity, or a zero
2568     value for both CR_RANGE and CR_AREF if you want edge-down polarity.
2569
2570 Configuration Options:
2571   [0] - I/O port base address
2572   [1] - IRQ (optional -- for edge-detect interrupt support only, leave out if you don't need this feature)
2573
2574
2575
2576 Driver: pcmuio
2577 Description: A driver for the PCM-UIO48A and PCM-UIO96A boards from Winsystems.
2578 Devices: [Winsystems] PCM-UIO48A (pcmuio48), PCM-UIO96A (pcmuio96)
2579 Author: Calin Culianu <calin@ajvar.org>
2580 Updated: Fri, 13 Jan 2006 12:01:01 -0500
2581 Status: works
2582
2583 A driver for the relatively straightforward-to-program PCM-UIO48A and
2584 PCM-UIO96A boards from Winsystems.  These boards use either one or two
2585 (in the 96-DIO version) WS16C48 ASIC HighDensity I/O Chips (HDIO).
2586 This chip is interesting in that each I/O line is individually
2587 programmable for INPUT or OUTPUT (thus comedi_dio_config can be done
2588 on a per-channel basis).  Also, each chip supports edge-triggered
2589 interrupts for the first 24 I/O lines.  Of course, since the
2590 96-channel version of the board has two ASICs, it can detect polarity
2591 changes on up to 48 I/O lines.  Since this is essentially an (non-PnP)
2592 ISA board, I/O Address and IRQ selection are done through jumpers on
2593 the board.  You need to pass that information to this driver as the
2594 first and second comedi_config option, respectively.  Note that the
2595 48-channel version uses 16 bytes of IO memory and the 96-channel
2596 version uses 32-bytes (in case you are worried about conflicts).  The
2597 48-channel board is split into two 24-channel comedi subdevices.
2598 The 96-channel board is split into 4 24-channel DIO subdevices.
2599
2600 Note that IRQ support has been added, but it is untested.
2601
2602 To use edge-detection IRQ support, pass the IRQs of both ASICS
2603 (for the 96 channel version) or just 1 ASIC (for 48-channel version).
2604 Then, use use comedi_commands with TRIG_NOW.
2605 Your callback will be called each time an edge is triggered, and the data
2606 values will be two sample_t's, which should be concatenated to form one
2607 32-bit unsigned int.  This value is the mask of channels that had
2608 edges detected from your channel list.  Note that the bits positions
2609 in the mask correspond to positions in your chanlist when you specified
2610 the command and *not* channel id's!
2611
2612 To set the polarity of the edge-detection interrupts pass a nonzero value for
2613 either CR_RANGE or CR_AREF for edge-up polarity, or a zero value for both
2614 CR_RANGE and CR_AREF if you want edge-down polarity.
2615
2616 In the 48-channel version:
2617
2618 On subdev 0, the first 24 channels channels are edge-detect channels.
2619
2620 In the 96-channel board you have the collowing channels that can do edge detection:
2621
2622 subdev 0, channels 0-24  (first 24 channels of 1st ASIC)
2623 subdev 2, channels 0-24  (first 24 channels of 2nd ASIC)
2624
2625 Configuration Options:
2626   [0] - I/O port base address
2627   [1] - IRQ (for first ASIC, or first 24 channels)
2628   [2] - IRQ for second ASIC (pcmuio96 only - IRQ for chans 48-72 .. can be the same as first irq!)
2629
2630
2631
2632 Driver: poc
2633 Description: Generic driver for very simple devices
2634 Author: ds
2635 Devices: [Keithley Metrabyte] DAC-02 (dac02), [Advantech] PCL-733 (pcl733),
2636   PCL-734 (pcl734)
2637 Updated: Sat, 16 Mar 2002 17:34:48 -0800
2638 Status: unknown
2639
2640 This driver is indended to support very simple ISA-based devices,
2641 including:
2642   dac02 - Keithley DAC-02 analog output board
2643   pcl733 - Advantech PCL-733
2644   pcl734 - Advantech PCL-734
2645
2646 Configuration options:
2647   [0] - I/O port base
2648
2649
2650
2651 Driver: quatech_daqp_cs
2652 Description: Quatech DAQP PCMCIA data capture cards
2653 Author: Brent Baccala <baccala@freesoft.org>
2654 Status: works
2655 Devices: [Quatech] DAQP-208 (daqp), DAQP-308
2656
2657
2658
2659 Driver: rtd520
2660 Description: Real Time Devices PCI4520/DM7520
2661 Author: Dan Christian
2662 Devices: [Real Time Devices] DM7520HR-1 (DM7520), DM7520HR-8 (DM7520-8),
2663   PCI4520 (PCI4520), PCI4520-8 (PCI4520-8)
2664 Status: Works.  Only tested on DM7520-8.  Not SMP safe.
2665
2666 Configuration options:
2667   [0] - PCI bus of device (optional)
2668           If bus/slot is not specified, the first available PCI
2669           device will be used.
2670   [1] - PCI slot of device (optional)
2671
2672
2673
2674 Driver: rti800
2675 Description: Analog Devices RTI-800/815
2676 Author: ds
2677 Status: unknown
2678 Devices: [Analog Devices] RTI-800 (rti800), RTI-815 (rti815)
2679
2680 Configuration options:
2681   [0] - I/O port base address
2682   [1] - IRQ
2683   [2] - A/D reference
2684           0 = differential
2685           1 = pseudodifferential (common)
2686           2 = single-ended
2687   [3] - A/D range
2688           0 = [-10,10]
2689           1 = [-5,5]
2690           2 = [0,10]
2691   [4] - A/D encoding
2692           0 = two's complement
2693           1 = straight binary
2694   [5] - DAC 0 range
2695           0 = [-10,10]
2696           1 = [0,10]
2697   [5] - DAC 0 encoding
2698           0 = two's complement
2699           1 = straight binary
2700   [6] - DAC 1 range (same as DAC 0)
2701   [7] - DAC 1 encoding (same as DAC 0)
2702
2703
2704
2705 Driver: rti802
2706 Description: Analog Devices RTI-802
2707 Author: Anders Blomdell <anders.blomdell@control.lth.se>
2708 Devices: [Analog Devices] RTI-802 (rti802)
2709 Status: works
2710
2711 Configuration Options:
2712     [0] - i/o base
2713     [1] - unused
2714     [2] - dac#0  0=two's comp, 1=straight
2715     [3] - dac#0  0=bipolar, 1=unipolar
2716     [4] - dac#1 ...
2717     ...
2718     [17] - dac#7 ...
2719
2720
2721
2722 Driver: s526
2723 Description: Sensoray 526 driver
2724 Devices: [Sensoray] 526 (s526)
2725 Author: Richie
2726         Everett Wang <everett.wang@everteq.com>
2727 Updated: Thu, 14 Sep. 2006
2728 Status: experimental
2729
2730 Encoder works
2731 Analog input works
2732 Analog output works
2733 PWM output works
2734 Commands are not supported yet.
2735
2736 Configuration Options:
2737
2738 comedi_config /dev/comedi0 s526 0x2C0,0x3
2739
2740
2741
2742
2743 Driver: s626
2744 Description: Sensoray 626 driver
2745 Devices: [Sensoray] 626 (s626)
2746 Authors: Gianluca Palli <gpalli@deis.unibo.it>,
2747 Updated: Fri, 15 Feb 2008 10:28:42 +0000
2748 Status: experimental
2749
2750 Configuration options:
2751   [0] - PCI bus of device (optional)
2752   [1] - PCI slot of device (optional)
2753   If bus/slot is not specified, the first supported
2754   PCI device found will be used.
2755
2756 INSN_CONFIG instructions:
2757   analog input:
2758    none
2759
2760   analog output:
2761    none
2762
2763   digital channel:
2764    s626 has 3 dio subdevices (2,3 and 4) each with 16 i/o channels
2765    supported configuration options:
2766    INSN_CONFIG_DIO_QUERY
2767    COMEDI_INPUT
2768    COMEDI_OUTPUT
2769
2770   encoder:
2771    Every channel must be configured before reading.
2772
2773    Example code
2774
2775    insn.insn=INSN_CONFIG;   //configuration instruction
2776    insn.n=1;                //number of operation (must be 1)
2777    insn.data=&initialvalue; //initial value loaded into encoder
2778                             //during configuration
2779    insn.subdev=5;           //encoder subdevice
2780    insn.chanspec=CR_PACK(encoder_channel,0,AREF_OTHER); //encoder_channel
2781                                                         //to configure
2782
2783    comedi_do_insn(cf,&insn); //executing configuration
2784
2785
2786
2787 Driver: serial2002
2788 Description: Driver for serial connected hardware
2789 Devices:
2790 Author: Anders Blomdell
2791 Updated: Fri,  7 Jun 2002 12:56:45 -0700
2792 Status: in development
2793
2794
2795
2796
2797 Driver: skel
2798 Description: Skeleton driver, an example for driver writers
2799 Devices:
2800 Author: ds
2801 Updated: Mon, 18 Mar 2002 15:34:01 -0800
2802 Status: works
2803
2804 This driver is a documented example on how Comedi drivers are
2805 written.
2806
2807 Configuration Options:
2808   none
2809
2810
2811
2812 Driver: ssv_dnp
2813 Description: SSV Embedded Systems DIL/Net-PC
2814 Author: Robert Schwebel <robert@schwebel.de>
2815 Devices: [SSV Embedded Systems] DIL/Net-PC 1486 (dnp-1486)
2816 Status: unknown
2817
2818
2819
2820 Driver: unioxx5
2821 Description: Driver for Fastwel UNIOxx-5 (analog and digital i/o) boards.
2822 Author: Kruchinin Daniil (asgard) <asgard@etersoft.ru>
2823 Status: unknown
2824 Updated: 2006-10-09
2825 Devices: [Fastwel] UNIOxx-5 (unioxx5),
2826
2827  This card supports digital and analog I/O. It written for g01          
2828  subdevices only.                                                       
2829  channels range: 0 .. 23 dio channels                                   
2830  and 0 .. 11 analog modules range                                       
2831  During attaching unioxx5 module displays modules identifiers           
2832  (see dmesg after comedi_config) in format:                             
2833  | [module_number] module_id |                                          
2834
2835
2836
2837
2838 Driver: usbdux
2839 Description: University of Stirling USB DAQ & INCITE Technology Limited
2840 Devices: [ITL] USB-DUX (usbdux.o)
2841 Author: Bernd Porr <BerndPorr@f2s.com>
2842 Updated: 25 Nov 2007
2843 Status: Testing
2844 Configuration options:
2845   You have to upload firmware with the -i option. The
2846   firmware is usually installed under /usr/share/usb or
2847   /usr/local/share/usb or /lib/firmware.
2848
2849 Connection scheme for the counter at the digital port:
2850   0=/CLK0, 1=UP/DOWN0, 2=RESET0, 4=/CLK1, 5=UP/DOWN1, 6=RESET1.
2851   The sampling rate of the counter is approximately 500Hz.
2852
2853 Please note that under USB2.0 the length of the channel list determines
2854 the max sampling rate. If you sample only one channel you get 8kHz
2855 sampling rate. If you sample two channels you get 4kHz and so on.
2856
2857
2858
2859 Driver: usbduxfast
2860 Description: ITL USB-DUXfast
2861 Devices: [ITL] USB-DUX (usbduxfast.o)
2862 Author: Bernd Porr <BerndPorr@f2s.com>
2863 Updated: 04 Dec 2006
2864 Status: testing
2865
2866
2867