Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
staging
comedi
drivers
addi-data
hwdrv_apci3200.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2004,2005 ADDI-DATA GmbH for the source code of this module.
3
*
4
* ADDI-DATA GmbH
5
* Dieselstrasse 3
6
* D-77833 Ottersweier
7
* Tel: +19(0)7223/9493-0
8
* Fax: +49(0)7223/9493-92
9
* http://www.addi-data.com
10
*
[email protected]
11
*
12
* This program is free software; you can redistribute it and/or modify it
13
* under the terms of the GNU General Public License as published by the Free
14
* Software Foundation; either version 2 of the License, or (at your option)
15
* any later version.
16
*/
17
18
/* Card Specific information */
19
#define APCI3200_BOARD_VENDOR_ID 0x15B8
20
/* #define APCI3200_ADDRESS_RANGE 264 */
21
22
int
MODULE_NO
;
23
struct
{
24
int
i_Gain
;
25
int
i_Polarity
;
26
int
i_OffsetRange
;
27
int
i_Coupling
;
28
int
i_SingleDiff
;
29
int
i_AutoCalibration
;
30
unsigned
int
ui_ReloadValue
;
31
unsigned
int
ui_TimeUnitReloadVal
;
32
int
i_Interrupt
;
33
int
i_ModuleSelection
;
34
}
Config_Parameters_Module1
,
Config_Parameters_Module2
,
35
Config_Parameters_Module3
,
Config_Parameters_Module4
;
36
37
/* ANALOG INPUT RANGE */
38
static
const
struct
comedi_lrange
range_apci3200_ai = { 8, {
39
BIP_RANGE
(10),
40
BIP_RANGE
(5),
41
BIP_RANGE
(2),
42
BIP_RANGE
(1),
43
UNI_RANGE
(10),
44
UNI_RANGE
(5),
45
UNI_RANGE
(2),
46
UNI_RANGE
(1)
47
}
48
};
49
50
static
const
struct
comedi_lrange
range_apci3300_ai = { 4, {
51
UNI_RANGE
(10),
52
UNI_RANGE
(5),
53
UNI_RANGE
(2),
54
UNI_RANGE
(1)
55
}
56
};
57
58
/* Analog Input related Defines */
59
#define APCI3200_AI_OFFSET_GAIN 0
60
#define APCI3200_AI_SC_TEST 4
61
#define APCI3200_AI_IRQ 8
62
#define APCI3200_AI_AUTOCAL 12
63
#define APCI3200_RELOAD_CONV_TIME_VAL 32
64
#define APCI3200_CONV_TIME_TIME_BASE 36
65
#define APCI3200_RELOAD_DELAY_TIME_VAL 40
66
#define APCI3200_DELAY_TIME_TIME_BASE 44
67
#define APCI3200_AI_MODULE1 0
68
#define APCI3200_AI_MODULE2 64
69
#define APCI3200_AI_MODULE3 128
70
#define APCI3200_AI_MODULE4 192
71
#define TRUE 1
72
#define FALSE 0
73
#define APCI3200_AI_EOSIRQ 16
74
#define APCI3200_AI_EOS 20
75
#define APCI3200_AI_CHAN_ID 24
76
#define APCI3200_AI_CHAN_VAL 28
77
#define ANALOG_INPUT 0
78
#define TEMPERATURE 1
79
#define RESISTANCE 2
80
81
#define ENABLE_EXT_TRIG 1
82
#define ENABLE_EXT_GATE 2
83
#define ENABLE_EXT_TRIG_GATE 3
84
85
#define APCI3200_MAXVOLT 2.5
86
#define ADDIDATA_GREATER_THAN_TEST 0
87
#define ADDIDATA_LESS_THAN_TEST 1
88
89
#define ADDIDATA_UNIPOLAR 1
90
#define ADDIDATA_BIPOLAR 2
91
92
/* BEGIN JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values */
93
#define MAX_MODULE 4
94
/* END JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values */
95
96
struct
str_ADDIDATA_RTDStruct
{
97
unsigned
int
ul_NumberOfValue
;
98
unsigned
int
*
pul_ResistanceValue
;
99
unsigned
int
*
pul_TemperatureValue
;
100
};
101
102
/* BEGIN JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values */
103
struct
str_Module
{
104
105
/* Begin JK 05/08/2003 change for Linux */
106
unsigned
long
ul_CurrentSourceCJC
;
107
unsigned
long
ul_CurrentSource
[5];
108
/* End JK 05/08/2003 change for Linux */
109
110
/* Begin CG 15/02/02 Rev 1.0 -> Rev 1.1 : Add Header Type 1 */
111
unsigned
long
ul_GainFactor
[8];
/* Gain Factor */
112
unsigned
int
w_GainValue
[10];
113
/* End CG 15/02/02 Rev 1.0 -> Rev 1.1 : Add Header Type 1 */
114
};
115
116
/* END JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values */
117
118
/* BEGIN JK 06.07.04: Management of sevrals boards */
119
struct
str_BoardInfos
{
120
121
int
i_CJCAvailable
;
122
int
i_CJCPolarity
;
123
int
i_CJCGain
;
124
int
i_InterruptFlag
;
125
int
i_ADDIDATAPolarity
;
126
int
i_ADDIDATAGain
;
127
int
i_AutoCalibration
;
128
int
i_ADDIDATAConversionTime
;
129
int
i_ADDIDATAConversionTimeUnit
;
130
int
i_ADDIDATAType
;
131
int
i_ChannelNo
;
132
int
i_ChannelCount
;
133
int
i_ScanType
;
134
int
i_FirstChannel
;
135
int
i_LastChannel
;
136
int
i_Sum
;
137
int
i_Offset
;
138
unsigned
int
ui_Channel_num
;
139
int
i_Count
;
140
int
i_Initialised
;
141
/* UINT ui_InterruptChannelValue[96]; //Buffer */
142
unsigned
int
ui_InterruptChannelValue
[144];
/* Buffer */
143
unsigned
char
b_StructInitialized
;
144
/* Begin JK 19.10.2004: APCI-3200 Driver update 0.7.57 -> 0.7.68 */
145
unsigned
int
ui_ScanValueArray
[7 + 12];
/* 7 is the maximal number of channels */
146
/* End JK 19.10.2004: APCI-3200 Driver update 0.7.57 -> 0.7.68 */
147
148
/* Begin JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values */
149
int
i_ConnectionType
;
150
int
i_NbrOfModule
;
151
struct
str_Module
s_Module
[
MAX_MODULE
];
152
/* End JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values */
153
};
154
155
/* END JK 06.07.04: Management of sevrals boards */
156
157
/* Hardware Layer functions for Apci3200 */
158
159
/* AI */
160
161
int
i_APCI3200_ConfigAnalogInput
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
162
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
163
int
i_APCI3200_ReadAnalogInput
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
164
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
165
int
i_APCI3200_InsnWriteReleaseAnalogInput
(
struct
comedi_device
*
dev
,
166
struct
comedi_subdevice
*
s
,
167
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
168
int
i_APCI3200_InsnBits_AnalogInput_Test
(
struct
comedi_device
*
dev
,
169
struct
comedi_subdevice
*
s
,
170
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
171
int
i_APCI3200_StopCyclicAcquisition
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
);
172
int
i_APCI3200_InterruptHandleEos
(
struct
comedi_device
*
dev
);
173
int
i_APCI3200_CommandTestAnalogInput
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
174
struct
comedi_cmd
*
cmd
);
175
int
i_APCI3200_CommandAnalogInput
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
);
176
int
i_APCI3200_ReadDigitalInput
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
177
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
178
/* Interrupt */
179
void
v_APCI3200_Interrupt
(
int
irq,
void
*
d
);
180
int
i_APCI3200_InterruptHandleEos
(
struct
comedi_device
*
dev
);
181
/* Reset functions */
182
int
i_APCI3200_Reset
(
struct
comedi_device
*
dev
);
183
184
int
i_APCI3200_ReadCJCCalOffset
(
struct
comedi_device
*
dev
,
unsigned
int
*
data
);
185
int
i_APCI3200_ReadCJCValue
(
struct
comedi_device
*
dev
,
unsigned
int
*
data
);
186
int
i_APCI3200_ReadCalibrationGainValue
(
struct
comedi_device
*
dev
,
unsigned
int
*
data
);
187
int
i_APCI3200_ReadCalibrationOffsetValue
(
struct
comedi_device
*
dev
,
unsigned
int
*
data
);
188
int
i_APCI3200_Read1AnalogInputChannel
(
struct
comedi_device
*
dev
,
189
struct
comedi_subdevice
*
s
,
struct
comedi_insn
*
insn
,
190
unsigned
int
*
data
);
191
int
i_APCI3200_ReadCJCCalGain
(
struct
comedi_device
*
dev
,
unsigned
int
*
data
);
Generated on Thu Jan 10 2013 14:26:34 for Linux Kernel by
1.8.2