CROSS Technical Documentation User Manual and Technical Doc.
INFN Milano Bicocca
Loading...
Searching...
No Matches
Multiplexer_strutture_funzioni_definizioni.h
Go to the documentation of this file.
1
2#include <stdint.h>
3/*! \file
4*/
5
6//INIZIO CROSS
7
8//const struct chip_select_type detector_chip_select_bias[channel_number]={I2C_to_Parallel_name_1, ~(1<<pin_1 ),
9// I2C_to_Parallel_name_1, ~(1<<pin_3 ),
10// I2C_to_Parallel_name_1, ~(1<<pin_5 ),
11// I2C_to_Parallel_name_1, ~(1<<pin_7 ),
12// I2C_to_Parallel_name_2, ~(1<<pin_1 ),
13// I2C_to_Parallel_name_2, ~(1<<pin_3 ) } ;
14
15// This is Analog mux 0
16/*! \snippet Multiplexer_strutture_funzioni_definizioni.h enum_node_voltage_Mux_0
17 */
18 //! <!-- [enum_node_voltage_Mux_0] -->
20 node_voltage_Analog_Mux_0_offset = 32, //!< Starting Offset for this set of nodes, 32
29};
30 //! <!-- [enum_node_voltage_Mux_0] -->
31
32
33// This is Analog mux 1 (add 8 to the mux address)
34/*! \snippet Multiplexer_strutture_funzioni_definizioni.h enum_node_voltage_Mux_1
35 */
36 //! <!-- [enum_node_voltage_Mux_1] -->
38 node_voltage_Analog_Mux_1_offset =40, //!< Starting Offset for this set of nodes, 40
45};
46 //! <!-- [enum_node_voltage_Mux_1] -->
47
48
49
50// This is Analog mux 1 (add 8 to the mux address)
51/*! \snippet Multiplexer_strutture_funzioni_definizioni.h enum_node_res_fisse_Mux_1
52 */
53 //! <!-- [enum_node_res_fisse_Mux_1] -->
55 node_voltage_Analog_Mux_1_res_fissa =48, //!< Starting Offset for this set of nodes
56 node_voltage_Analog_Mux_meas_none , /*!< offset from 48*/
58};
59 //! <!-- [enum_node_res_fisse_Mux_1] -->
60
61
62
63//Analog Mux 0 chip select
64#define Analog_Mux_0_chip_select 0x80 /*!< ''*/
65#define Analog_Mux_1_chip_select 0x02 /*!< ''*/
66
67//These are the masks for the I2C to parallel
68#define Analog_Mux_maschera_quali_linee 0x07
69#define Analog_Mux_maschera_quale_chip (Analog_Mux_maschera_quali_linee +1)
70#define posizione_del_pattern_delle_linee 4
71
72//Analog multplexers on postamainboard mapping
73#define MUX_analog_board_down 1<<5 //!< This is the offset to sum to manage the mux lines of mainboard down
74#define MUX_analog_postboard_0 0 << 3
75#define MUX_analog_postboard_1 1 << 3
76#define MUX_analog_postboard_2 2 << 3
77#define MUX_analog_postboard_3 3 << 3
78
79enum Mux_analog_postmainboard_lines_0{
80 Mux_analog_postmainboard_lines_0_Analog_Mux_2_out =MUX_analog_postboard_0,
81 Mux_analog_postmainboard_lines_0_Analog_Mux_1_out,
82 Mux_analog_postmainboard_lines_0_PRE_neg_1,
83 Mux_analog_postmainboard_lines_0_PRE_neg_2,
84 Mux_analog_postmainboard_lines_0_PRE_neg_3,
85 Mux_analog_postmainboard_lines_0_PRE_neg_4,
86 Mux_analog_postmainboard_lines_0_PRE_neg_5,
87 Mux_analog_postmainboard_lines_0_PRE_neg_6
88};
89
90enum Mux_analog_postmainboard_lines_1{
91 Mux_analog_postmainboard_lines_1_PRE_pos_1 =MUX_analog_postboard_1,
92 Mux_analog_postmainboard_lines_1_PRE_pos_2,
93 Mux_analog_postmainboard_lines_1_PRE_pos_3,
94 Mux_analog_postmainboard_lines_1_PRE_pos_4,
95 Mux_analog_postmainboard_lines_1_PRE_pos_5,
96 Mux_analog_postmainboard_lines_1_PRE_pos_6,
97 Mux_analog_postmainboard_lines_1_SenseVreg_p,
98 Mux_analog_postmainboard_lines_1_SenseVreg_n
99};
100
101enum Mux_analog_postmainboard_lines_2{
102 Mux_analog_postmainboard_lines_2_SenseGA =MUX_analog_postboard_2,
103 Mux_analog_postmainboard_lines_2_Vcc_meas,
104 Mux_analog_postmainboard_lines_2_PGA_Output_pos_1,
105 Mux_analog_postmainboard_lines_2_PGA_Output_pos_2,
106 Mux_analog_postmainboard_lines_2_PGA_Output_pos_3,
107 Mux_analog_postmainboard_lines_2_PGA_Output_pos_4,
108 Mux_analog_postmainboard_lines_2_PGA_Output_pos_5,
109 Mux_analog_postmainboard_lines_2_PGA_Output_pos_6
110};
111
112enum Mux_analog_postmainboard_lines_3{
113 Mux_analog_postmainboard_lines_3_Vee_meas =MUX_analog_postboard_3,
114 Mux_analog_postmainboard_lines_3_Vdig_5V_meas,
115 Mux_analog_postmainboard_lines_3_PGA_Output_neg_1,
116 Mux_analog_postmainboard_lines_3_PGA_Output_neg_2,
117 Mux_analog_postmainboard_lines_3_PGA_Output_neg_3,
118 Mux_analog_postmainboard_lines_3_PGA_Output_neg_4,
119 Mux_analog_postmainboard_lines_3_PGA_Output_neg_5,
120 Mux_analog_postmainboard_lines_3_PGA_Output_neg_6
121};
122
123
124void Analog_mux_line_to_select_deselect ( uint8_t scheda_su_scheda_giu, uint8_t line_to_select, uint8_t select_1_deselect_0 );
125void Analog_mux_line_to_select_deselect_for_postmainboard ( uint8_t scheda_su_scheda_giu, uint8_t line_to_select, uint8_t select_1_deselect_0 );
126//FINE CROSS
127
128
129
130
131//Funzioni di Gianluigi
132//void ATTIVA_CHIP_SELECTOR_MULTIPLEXER (unsigned char aa);
133
134//void Line_select_in_the_mux( unsigned char aa);
135
136
137/*****************************************************************************
138 *****************************************************************************
139 MULTIPLEXER 1
140 *****************************************************************************
141 *****************************************************************************/
142// typedef struct multiplexer_1 {
143//// void (*ATTIVA_CHIP_SELECTOR_MULTIPLEXER_1) (void); ///< Puntatore a \ref ATTIVA_CHIP_SELECTOR_MULTIPLEXER_1
144// void (*Attiva_linea_AN1) (void); ///< Puntatore a \ref Attiva_linea_AN1
145// void (*Attiva_linea_AN2) (void); ///< Puntatore a \ref Attiva_linea_AN2
146// void (*Attiva_linea_AN3) (void); ///< Puntatore a \ref Attiva_linea_AN3
147// void (*Attiva_linea_AN4) (void); ///< Puntatore a \ref Attiva_linea_AN4
148// void (*Attiva_linea_AN5) (void); ///< Puntatore a \ref Attiva_linea_AN5
149// void (*Attiva_linea_CC2) (void); ///< Puntatore a \ref Attiva_linea_CC2
150// void (*Attiva_linea_DD2) (void); ///< Puntatore a \ref Attiva_linea_DD2
151// void (*Attiva_linea_EE2) (void); ///< Puntatore a \ref Attiva_linea_EE2
152//}const struttura_multiplexer_1;
153
154 /****************************************************************************
155 Funzioni del MULTIPLEXER 1
156 *****************************************************************************/
157
158//void ATTIVA_CHIP_SELECTOR_MULTIPLEXER_1 (void);
159
160//void Attiva_linea_AN1 (void);
161
162//void Attiva_linea_AN2 (void);
163
164//void Attiva_linea_AN3 (void);
165
166//void Attiva_linea_AN4 (void);
167
168//void Attiva_linea_AN5 (void);
169
170//void Attiva_linea_CC2 (void);
171
172//void Attiva_linea_DD2 (void);
173
174//void Attiva_linea_EE2 (void);
175
176
177// La struttura multi_1 viene controllata con multipl_1
178//extern struttura_multiplexer_1 Multiplexer_1;
179
180// extern struttura_multiplexer_1 *MULTIPLEXER_1; // Viene creato un puntatore a multipl_1
181
182
183
184
185/*****************************************************************************
186 *****************************************************************************
187 MULTIPLEXER 2
188 *****************************************************************************
189 *****************************************************************************/
190// typedef struct multiplexer_2 {
191
192// void (*ATTIVA_CHIP_SELECTOR_MULTIPLEXER_2) (void); ///< Puntatore a \ref ATTIVA_CHIP_SELECTOR_MULTIPLEXER_2
193// void (*Attiva_linea_MM1) (void); ///< Puntatore a \ref Attiva_linea_MM1
194// void (*Attiva_linea_MM2) (void); ///< Puntatore a \ref Attiva_linea_MM2
195// void (*Attiva_linea_NN1) (void); ///< Puntatore a \ref Attiva_linea_NN1
196// void (*Attiva_linea_NN2) (void); ///< Puntatore a \ref Attiva_linea_NN2
197// void (*Attiva_linea_TT1) (void); ///< Puntatore a \ref Attiva_linea_TT1
198// void (*Attiva_linea_TT2) (void); ///< Puntatore a \ref Attiva_linea_TT2
199// void (*Attiva_linea_HH2) (void); ///< Puntatore a \ref Attiva_linea_HH2
200// void (*Attiva_linea_LL2) (void); ///< Puntatore a \ref Attiva_linea_LL2
201//} const struttura_multiplexer_2;
202
203 /****************************************************************************
204 Funzioni del MULTIPLEXER 2
205 *****************************************************************************/
206//void ATTIVA_CHIP_SELECTOR_MULTIPLEXER_2 (void);
207
208//void Attiva_linea_MM1 (void);
209//
210//void Attiva_linea_MM2 (void);
211
212//void Attiva_linea_NN1 (void);
213
214//void Attiva_linea_NN2 (void);
215
216//void Attiva_linea_TT1 (void);
217
218//void Attiva_linea_TT2 (void);
219
220//void Attiva_linea_HH2 (void);
221
222//void Attiva_linea_LL2 (void);
223
224
225// La struttura multi_2 viene controllata con multipl_2
226//extern struttura_multiplexer_2 Multiplexer_2;
227
228// extern struttura_multiplexer_2 *MULTIPLEXER_2; // Viene creato un puntatore a multipl_2
229
230
231
232
233/*****************************************************************************
234 *****************************************************************************
235 MULTIPLEXER 3
236 *****************************************************************************
237 *****************************************************************************/
238// typedef struct multiplexer_3 {
239//// void (*ATTIVA_CHIP_SELECTOR_MULTIPLEXER_3) (void); ///< Puntatore a \ref ATTIVA_CHIP_SELECTOR_MULTIPLEXER_3
240//// void (*Attiva_linea_CC1) (void); ///< Puntatore a \ref Attiva_linea_CC1
241//// void (*Attiva_linea_DD1) (void); ///< Puntatore a \ref Attiva_linea_DD1
242//// void (*Attiva_linea_EE1) (void); ///< Puntatore a \ref Attiva_linea_EE1
243//} const struttura_multiplexer_3;
244
245
246 /****************************************************************************
247 Funzioni del MULTIPLEXER 3
248 *****************************************************************************/
249//void ATTIVA_CHIP_SELECTOR_MULTIPLEXER_3 (void);
250
251//void Attiva_linea_CC1 (void);
252
253//void Attiva_linea_DD1 (void);
254
255//void Attiva_linea_EE1(void);
256
257
258
259// La struttura multi_3 viene controllata con multipl_3
260//extern struttura_multiplexer_3 Multiplexer_3;
261
262// extern struttura_multiplexer_3 *MULTIPLEXER_3; // Viene creato un puntatore a multipl_3
263
264
265
266
267
268/*****************************************************************************
269 *****************************************************************************
270 MULTIPLEXER 4
271 *****************************************************************************
272 *****************************************************************************/
273
274// typedef struct multiplexer_4 {
275//// void (*ATTIVA_CHIP_SELECTOR_MULTIPLEXER_4) (void); ///< Puntatore a \ref ATTIVA_CHIP_SELECTOR_MULTIPLEXER_4
276// void (*Attiva_linea_FF1) (void); ///< Puntatore a \ref Attiva_linea_FF1
277// void (*Attiva_linea_FF2) (void); ///< Puntatore a \ref Attiva_linea_FF2
278// void (*Attiva_linea_GG1) (void); ///< Puntatore a \ref Attiva_linea_GG1
279// void (*Attiva_linea_GG2) (void); ///< Puntatore a \ref Attiva_linea_GG2
280// void (*Attiva_linea_UU1) (void); ///< Puntatore a \ref Attiva_linea_UU1
281// void (*Attiva_linea_UU2) (void); ///< Puntatore a \ref Attiva_linea_UU2
282// void (*Attiva_linea_HH1) (void); ///< Puntatore a \ref Attiva_linea_HH1
283// void (*Attiva_linea_LL1) (void); ///< Puntatore a \ref Attiva_linea_LL1
284//} const struttura_multiplexer_4;
285
286 /****************************************************************************
287 Funzioni del MULTIPLEXER 4
288 *****************************************************************************/
289//void ATTIVA_CHIP_SELECTOR_MULTIPLEXER_4 (void);
290
291//void Attiva_linea_FF1 (void);
292
293//void Attiva_linea_FF2 (void);
294
295//void Attiva_linea_GG1(void);
296
297//void Attiva_linea_GG2 (void);
298
299//void Attiva_linea_UU1 (void);
300
301//void Attiva_linea_UU2 (void);
302
303//void Attiva_linea_HH1 (void);
304
305//void Attiva_linea_LL1 (void);
306
307
308// La struttura multi_4 viene controllata con multipl_4
309
310//extern struttura_multiplexer_4 Multiplexer_4;
311
312// extern struttura_multiplexer_4 *MULTIPLEXER_4; // Viene creato un puntatore a multipl_4
313
314
315
316/*****************************************************************************
317 *****************************************************************************
318 FUNZIONI UTILI
319 *****************************************************************************
320 *****************************************************************************/
321
322
323/*****************************************************************************
324 Attiva il CHIP SELECTOR del Multiplexer_Numero numero_multiplexer [1,4]
325 *****************************************************************************/
326//void Attiva_CHIP_SELECTOR_MULTIPLEXER_Numero(int numero_multiplexer);
327
328/*****************************************************************************
329Attiva_linea_del_Multiplexer numero_linea [1,8] numero_multiplexer [1,4]
330 *****************************************************************************/
331//void Attiva_linea_del_Multiplexer(int numero_linea, int numero_multiplexer);
332
333
334 /****************************************************************************
335 Abbassa_chip_selector_multiplexer
336 *****************************************************************************/
337//void Abbassa_chip_selector_multiplexer(void);
338
@ node_voltage_Analog_Mux_0_offset
Starting Offset for this set of nodes, 32.
void Analog_mux_line_to_select_deselect(uint8_t scheda_su_scheda_giu, uint8_t line_to_select, uint8_t select_1_deselect_0)
Selection of the line to mesure with the analog MUX of the mainboard, driven by the I2C->parallel mux...
@ node_voltage_Analog_Mux_1_res_fissa
Starting Offset for this set of nodes.
void Analog_mux_line_to_select_deselect_for_postmainboard(uint8_t scheda_su_scheda_giu, uint8_t line_to_select, uint8_t select_1_deselect_0)
Selection of the line to measure with the analog MUX's of the postmainboard, directely driven by the ...
@ node_voltage_Analog_Mux_1_offset
Starting Offset for this set of nodes, 40.