Initial import from FreeBSD RELENG_4:
[games.git] / share / man / man4 / man4.i386 / labpc.4
1 .\"
2 .\" Copyright (c) 1995 HD Associates, Inc.
3 .\" All rights reserved.
4 .\"
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in the
12 .\"    documentation and/or other materials provided with the distribution.
13 .\" 3. All advertising materials mentioning features or use of this software
14 .\"    must display the following acknowledgement:
15 .\"      This product includes software developed by Christopher G. Demetriou.
16 .\" 3. The name of the author may not be used to endorse or promote products
17 .\"    derived from this software withough specific prior written permission
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 .\"
30 .\" $FreeBSD: src/share/man/man4/man4.i386/labpc.4,v 1.8.2.2 2001/08/17 13:08:45 ru Exp $
31 .\"
32 .Dd April 26, 1995
33 .Dt LABPC 4 i386
34 .Os
35 .Sh NAME
36 .Nm labpc
37 .Nd National Instruments LABPC and LABPC+ driver
38 .Sh SYNOPSIS
39 .Cd "device labpc0 at isa? port 260 irq 5"
40 .Sh DESCRIPTION
41 This supports the National Instruments LABPC and LABPC+ \fILow-Cost
42 Multifunction I/O Board\fP.
43 .Pp
44 This board provides 8 12 bit A-D input channels, 2 12 bit D-A output
45 channels, and 3 8 bit digital I/O ports.  It also supports setting
46 up the National Instruments SCXI bus off the digital I/O ports,
47 although that software is currently present in an external program
48 and not as part of the driver.
49 .Pp
50 The selection of the input or output device, mode, and channel is
51 through the minor number:
52 .Bd -literal -offset indent
53 The 8 bit minor number format is UUSIDCCC, with
54  UU: Board unit.
55   S: SCAN bit for scan enable.
56   I: INTERVAL for interval support
57   D: 1: Digital I/O, 0: Analog I/O
58 CCC: The channel selector:
59      ANALOG:
60      input:  channel must be 0 to 7 for AD0 ... AD7
61      output: channel must be 0 to 2
62              0: D-A 0
63              1: D-A 1
64              2: Alternate channel 0 then 1
65
66      DIGITAL:
67      input:  Channel must be 0 to 2.
68      output: Channel must be 0 to 2.
69 .Ed
70 .Pp
71 The /dev/MAKEDEV script will make the basic analog and digital
72 devices if you do "sh MAKEDEV labpcaio" and "sh MAKEDEV labpcdio",
73 however, it won't make device entries for INTERVAL and SCAN devices.
74 SCAN devices automatically scan over all channels from the channel
75 number down to 0 (for example, a SCAN for /dev/ad7 will read channels
76 AD7 ...  AD0) while the INTERVAL device will wait for an external
77 signal and then read all the channels from the selected channel
78 number down to 0 as fast as it can.  This is done by the hardware
79 and not the driver (other than turning it on); See the \fILabPC+
80 User's Manual\fP and the source code if this doesn't make sense to
81 you.
82 .Pp
83 The driver supports several general analog I/O ioctl calls.  These
84 are defined in sys/dataacq.h and are intended to be implemented in
85 other data acquisition board device drivers.
86 .Pp
87 AD_MICRO_PERIOD_SET takes a pointer to a long argument specifying
88 the number of microseconds between samples.
89 .Pp
90 AD_MICRO_PERIOD_GET takes a pointer to a long argument and returns
91 the current number of microseconds between samples.
92 .Pp
93 AD_NGAINS_GET takes a pointer to an integer and returns the number
94 of different gain settings the board supports.  This is 8 for the
95 LabPC board.
96 .Pp
97 AD_NCHANS_GET takes a pointer to an integer and returns the number
98 of channels the board supports.  This is 8 for the LabPC board.
99 .Pp
100 AD_SUPPORTED_GAINS returns an array of NGAINS (the number obtained
101 by AD_NGAINS_GET) doubles.  These are the gains the board supports.
102 .Pp
103 AD_GAINS_SET takes an array of NCHANS (the number obtained by
104 AD_NCHANS_GET) integers and sets the board gains.  These are indices
105 into the supported gain array, with one gain for each channel.
106 .Pp
107 AD_GAINS_GET takes an array of NCHANS (returned by AD_NCHANS_GET)
108 integers and returns the current board gains.
109 .Sh BUGS
110 In general, only those capabilities that I needed are present.  In
111 particular the following notable restrictions are present.
112 .Pp
113 The analog input is only supported in a clocked conversion mode.
114 .Pp
115 You can only set the sample clock down to 15 Hz.  Anything slower
116 needs a modification to the driver to support TCINTEN in order to
117 chain together the counters to get a lower clock rate.
118 .Pp
119 There is no support for clocked D-A output.
120 .Pp
121 The 8255 providing the digital I/O ports  is supported only in mode
122 0 (three 8 bit ports).
123 .Pp
124 There is support for the SCXI bus off the LABPC board.  It is not
125 in the driver but is a separate user process that accesses the
126 digital I/O devices.  Ask dufault@hda.com for it.
127 .Pp
128 MAKEDEV only makes the "basic" devices.  You must make the INTERVAL
129 or SCAN devices by hand.
130 .Pp
131 The INTERVAL device sets the clock rate as high as possible so that
132 it samples all the channels as quickly as it can after the external
133 signal.  This is a silly restriction; it should simply use the
134 clock setting.
135 .Sh CAVEATS
136 National Instrument's (like most other laboratory grade board
137 vendors) definition of Low-Cost differs dramatically from many on
138 the net.