CROSS Technical Documentation User Manual and Technical Doc.
INFN Milano Bicocca
Loading...
Searching...
No Matches
Error_handling.h
Go to the documentation of this file.
1/*----------------------------------------------------------------------------
2 * Name: Error_handling.h
3 * Purpose: Funzioni e variabili per la gestione degli errori
4 * Version: V1.00
5 * Note(s):
6 *----------------------------------------------------------------------------
7 * History:
8 *
9 *----------------------------------------------------------------------------*/
10
11/// \file
12
13 /************Elenco variabili**************************************************/
14
15 #include "stdint.h"
16
17 extern volatile unsigned int flag_error_verified; //Alla verifica di un qualsiasi errore questo flag viene posto ad 1, 0 altrimenti
18 extern volatile unsigned int flag_error_verified_at_startup; //Alla cerifica di un qualsiasi errore questo flag viene posto ad 1, 0 altrimenti
19 extern volatile unsigned char flag_error_acknowledged ; //Il flag di errore veirifcato e tutti gli errori vengono resettati perch\'e acquisiti
20 extern volatile unsigned char last_error_address; //The address of the last verified error
21 extern volatile unsigned char last_code_to_shift; //The shift bit of the last error
22 extern volatile unsigned char last_error_address_at_startup; //The address of the last verified error
23 extern volatile unsigned char last_code_to_shift_at_startup; //The shift bit of the last error
24 extern volatile unsigned char can_send_error; //Error are notified via can if =1; not notified if =0
25
26extern volatile uint32_t Error_good_operation;
27extern volatile uint32_t Error_bad_operation;
28
29
30 //Here the meaning of the flags withinthe elements of the vector.
31 //Obviously, bit=0 means no-error, bit=1 means error
32 //The elements here is the number of shifts of the flag on the left.
33 //Example, suppose that Error_ADC_whatever is the third bit of Error_ADC0. We have to write:
34 // Post_frontend_errors[ Error_ADC0 ] |= (1 << Error_ADC_whatever) ;
35
36//! Here the indexes of the errors of the vector Post_frontend_errors
37/*! Register Address for errors */
39 error_address_reg_ADC0, ///< Error register for ADC0
40 error_address_reg_ADC1, ///< Error register for ADC1
41
42 error_address_Power_Supply_in_General, ///< Error register for channel power supplies
43
44 error_address_I2C0 , ///< Error register A for I2C0
45 error_address_I2C0_B , ///< Error register B for I2C0
46 error_address_I2C1, ///< Error register A for I2C1
47 error_address_I2C1_B, ///< Error register B for I2C1
48
49 error_address_SPI, ///< Error register for SPI
50
51 error_preamplifier_down, ///< Error register preamflifier board down
52 error_preamplifier_up, ///< Error register preamflifier board up
53
54 error_address_CAN , ///< Error register for CAN bus
55
56 error_address_PGA_DetectorTrimmer_down , ///< Error register for on board PGA/detector trimmer
57 error_address_PGA_DetectorTrimmer_up , ///< Error register for on board PGA/detector trimmer
58
59 error_address_DAC_Trimmer_Pre_Detector_supply, ///< Error register for preaamplifer and detector power supplies
60
61 error_address_Bias_adjustment, ///< Error register for channel detector bias adjustment
62 error_number_of_errors_registers, ///< Number of errors (this is not an addres)
63 error_offset_for_board_up=15 ///< =15, First addresss for board up errors
64};
65
66 // Erro vector: all'occorrenza di un errore si alza il bit corriposndente
67 extern unsigned int Post_frontend_errors[error_number_of_errors_registers + error_offset_for_board_up]; ///< Vector that lists the flag registers.
68 //First half for board down, second half for board up
70
71 extern char flag_error_verified_vecchio;
72 extern unsigned char last_error_address_vecchio;
73
74//Flags for "error_address_reg_ADCx, x=0,1":
75//Flag errors rotation for ADC
77 ADC_internal_General_fails, ///< ADC general fault
78 ADC_SPI_fault, ///< SPI Communication fault
79 ADC_RDY_pin_fault, ///< ADC ready not received
80 ADC_RDY_pin_fault_during_calibration, ///< ADC ready not during calibration
81 VREF_ADC_too_small, ///< ADC VREF measured out of its tolerance, too small
82 VREF_ADC_too_large, ///< ADC VREF measured out of its tolerance, too large
83 ADC_external_fails ///< measurement form an external ADC went wrong
84};
85
86//Flags for "error_address_Power_Supply_in_General", positive and negative
87//Flag errors rotation for Vbol for switching
89 Vbol_pos_small_for_switching, ///< Positive Vbol too small for switching from internal to external power or vice-versa
90 Vbol_pos_large_for_switching, ///< Positive Vbol too large for switching from internal to external power or vice-versa
91 Vbol_neg_small_for_switching, ///< Negative Vbol too small for switching from internal to external power or vice-versa
92 Vbol_neg_large_for_switching, ///< Negative Vbol too large for switching from internal to external power or vice-versa
93//Flag errors rotation for Vbol limiting values
94 Vbol_pos_too_large, ///< Positive Vbol exceeds the maximum
95 Vbol_pos_too_small, ///< Positive Vbol is below the lower limit
96 Vbol_neg_too_large, ///< Negative Vbol exceeds the maximum
97 Vbol_neg_too_small, ///< Negative Vbol is below the lower limit
98 //Flag errors rotation for VREF_POS_PRE
99 Vref_pos_too_large, ///< Positive Vref too large
100 Vref_pos_too_small, ///< Positive Vref too small
101//Flag errors rotation for VREF_NEG_PRE
102 Vref_neg_absolute_val_too_large, ///< Negative Vref too large
103 Vref_neg_absolute_val_too_small, ///< Negative Vref too small
104//Flag errors rotation for VCC_PRE
105 VCC_PRE_pos_too_large, ///< Positive supply for preamplifier too large
106 VCC_PRE_pos_too_small, ///< Positive supply for preamplifier too small
107//Flag errors rotation for VEE_PRE
108 VEE_PRE_absolute_val_too_large, ///< Negative supply for preamplifier too large
109 VEE_PRE_absolute_val_too_small, ///< Negative supply for preamplifier too small
110//Flag errors rotation for VCC_PGA
111 VCC_PGA_pos_too_large, ///< Positive supply for PGA too large
112 VCC_PGA_pos_too_small, ///< Positive supply for PGA too small
113//Flag errors rotation for VEE_PGA
114 VEE_PGA_absolute_val_too_large, ///< Negative supply for PGA too large
115 VEE_PGA_absolute_val_too_small, ///< Negative supply for PGA too small
116//Flag errors rotation for V__dig_5V
117 V__dig_5V_val_too_large, ///< Digital 5 V supply too large
118 V__dig_5V_val_too_small, ///< Digital 5 V supply too small
119//Flag errors rotation for V__dig_3e3V
120 V__dig_3e3V_val_too_large, ///< Digital 3.3 V supply too large
121 V__dig_3e3V_val_too_small ///< Digital 3.3 V supply too small
123
124
125//Flag errors for I2C error_address_I2C0 and I2C1, the same enum
127
128 I2C_Error_EVENT_TRANSFER_DONE, ///< I2C communications trouble
129 I2C_Error_EVENT_TRANSFER_INCOMPLETE, ///< I2C communications trouble
130 I2C_Error_EVENT_SLAVE_TRANSMIT, ///< I2C communications trouble
131 I2C_Error_EVENT_SLAVE_RECEIVE, ///< I2C communications trouble
132 I2C_Error_EVENT_ADDRESS_NACK, ///< I2C communications trouble
133 I2C_Error_NONE, ///< I2C communications trouble
134 I2C_Error_EVENT_ARBITRATION_LOST, ///< I2C communications trouble
135 I2C_Error_EVENT_BUS_ERROR, ///< I2C communications trouble
136 I2C_Error_EVENT_BUS_CLEAR, ///< I2C communications trouble
137
138 I2C_Error_I2C_mux, ///< Trouble with I2C mux communication
139
140 I2C_Error_I2C_to_parallel_PCA9554_0, ///< I2C to parallel conversion ch0
141 I2C_Error_I2C_to_parallel_PCA9554_1, ///< I2C to parallel conversion ch1
142 I2C_Error_I2C_to_parallel_PCA9554_2, ///< I2C to parallel conversion ch2
143 I2C_Error_I2C_to_parallel_PCA9554_3, ///< I2C to parallel conversion ch3
144// I2C_Error_I2C_to_parallel_PCA9554_4, ///< I2C to parallel conversion ch4
145// I2C_Error_I2C_to_parallel_PCA9554_5, ///< I2C to parallel conversion ch5
146// I2C_Error_I2C_to_parallel_PCA9554_6, ///< I2C to parallel conversion ch6
147// I2C_Error_I2C_to_parallel_PCA9554_7, ///< I2C to parallel conversion ch7
148// I2C_Error_I2C_to_parallel_PCA9554_8, ///< I2C to parallel conversion ch8
149// I2C_Error_I2C_to_parallel_PCA9554_9, ///< I2C to parallel conversion ch9
150// I2C_Error_I2C_to_parallel_PCA9554_10, ///< I2C to parallel conversion ch10
151// I2C_Error_I2C_to_parallel_PCA9554_11, ///< I2C to parallel conversion ch11
152
153 I2C_Error_trimmer_0, ///< trimmer ch0
154 I2C_Error_trimmer_1, ///< trimmer ch1
155 I2C_Error_trimmer_2, ///< trimmer ch2
156 I2C_Error_trimmer_3, ///< trimmer ch3
157 I2C_Error_trimmer_4, ///< trimmer ch4
158 I2C_Error_trimmer_5, ///< trimmer ch5
159// I2C_Error_trimmer_6, ///< trimmer ch6
160// I2C_Error_trimmer_7, ///< trimmer ch7
161// I2C_Error_trimmer_8, ///< trimmer ch8
162// I2C_Error_trimmer_9, ///< trimmer ch9
163// I2C_Error_trimmer_10, ///< trimmer ch10
164// I2C_Error_trimmer_11, ///< trimmer ch11
165
166 I2C_error_EPROM_0, ///< EPROM ch0
167 I2C_error_EPROM_1, ///< EPROM ch1
168 I2C_error_EPROM_2, ///< EPROM ch2
169 I2C_error_EPROM_3, ///< EPROM ch3
170 I2C_error_EPROM_4, ///< EPROM ch4
171 I2C_error_EPROM_5, ///< EPROM ch5
172// I2C_error_EPROM_6, ///< EPROM ch6
173// I2C_error_EPROM_7, ///< EPROM ch7
174// I2C_error_EPROM_8, ///< EPROM ch8
175// I2C_error_EPROM_9, ///< EPROM ch9
176// I2C_error_EPROM_10, ///< EPROM ch10
177// I2C_error_EPROM_11, ///< EPROM ch11
178 };
179
181 I2C_error_termometro_0, ///< termometro ch0
182 I2C_error_termometro_1, ///< termometro ch1
183 I2C_error_termometro_2, ///< termometro ch2
184 I2C_error_termometro_3, ///< termometro ch3
185 I2C_error_termometro_4, ///< termometro ch4
186 I2C_error_termometro_5, ///< termometro ch5
187// I2C_error_termometro_6, ///< termometro ch6
188// I2C_error_termometro_7, ///< termometro ch7
189// I2C_error_termometro_8, ///< termometro ch8
190// I2C_error_termometro_9, ///< termometro ch9
191// I2C_error_termometro_10, ///< termometro ch10
192// I2C_error_termometro_11, ///< termometro ch11
193
194 I2C_error_trimmer_bias_0, ///< trimmer_bias ch0
195 I2C_error_trimmer_bias_1, ///< trimmer_bias ch1
196 I2C_error_trimmer_bias_2, ///< trimmer_bias ch2
197 I2C_error_trimmer_bias_3, ///< trimmer_bias ch3
198 I2C_error_trimmer_bias_4, ///< trimmer_bias ch4
199 I2C_error_trimmer_bias_5, ///< trimmer_bias ch5
200};
201
203 SPI_error_NONE, ///< this should be ARM_SPI_EVENT_TRANSFER_COMPLETE
204 SPI_error_EVENT_DATA_LOST, ///< This is ARM_SPI_EVENT_DATA_LOST
205 SPI_error_EVENT_MODE_FAULT ///< this is ARM_SPI_EVENT_MODE_FAULT
207
208//Flag errors for I2C error_address_I2C0 and I2C1, the same enum
210
211 preamplifier_Error_in_reading_temperature_0, ///< Preaamplifier temperature missed CH0
212 preamplifier_Error_in_reading_temperature_1, ///< Preaamplifier temperature missed CH1
213 preamplifier_Error_in_reading_temperature_2, ///< Preaamplifier temperature missed CH2
214 preamplifier_Error_in_reading_temperature_3, ///< Preaamplifier temperature missed CH3
215 preamplifier_Error_in_reading_temperature_4, ///< Preaamplifier temperature missed CH4
216 preamplifier_Error_in_reading_temperature_5, ///< Preaamplifier temperature missed CH5
217
218 preamplifier_Error_offset_not_accurate_0, ///< offset adjustment out of tolerance CH0
219 preamplifier_Error_offset_not_accurate_1, ///< offset adjustment out of tolerance CH1
220 preamplifier_Error_offset_not_accurate_2, ///< offset adjustment out of tolerance CH2
221 preamplifier_Error_offset_not_accurate_3, ///< offset adjustment out of tolerance CH3
222 preamplifier_Error_offset_not_accurate_4, ///< offset adjustment out of tolerance CH4
223 preamplifier_Error_offset_not_accurate_5, ///< offset adjustment out of tolerance CH5
224
225 preamplifier_Error_with_its_trimmer_0, ///< Preaamplifier trimmer error CH0
226 preamplifier_Error_with_its_trimmer_1, ///< Preaamplifier trimmer error CH1
227 preamplifier_Error_with_its_trimmer_2, ///< Preaamplifier trimmer error CH2
228 preamplifier_Error_with_its_trimmer_3, ///< Preaamplifier trimmer error CH3
229 preamplifier_Error_with_its_trimmer_4, ///< Preaamplifier trimmer error CH4
230 preamplifier_Error_with_its_trimmer_5, ///< Preaamplifier trimmer error CH5
231
232 preamplifier_Error_with_its_EEPROM_0, ///< Preamplifier EEPROM error CH0
233 preamplifier_Error_with_its_EEPROM_1, ///< Preamplifier EEPROM error CH1
234 preamplifier_Error_with_its_EEPROM_2, ///< Preamplifier EEPROM error CH2
235 preamplifier_Error_with_its_EEPROM_3, ///< Preamplifier EEPROM error CH3
236 preamplifier_Error_with_its_EEPROM_4, ///< Preamplifier EEPROM error CH4
237 preamplifier_Error_with_its_EEPROM_5, ///< Preamplifier EEPROM error CH5
238};
239
240
241//error_address_CAN bits:
245
246// error_address_Bias_adjustment
248 Error_detector_realy_setting, ///< Error in setting any the relay
249 Final_bias_diff_not_accurate_0, ///< detector bias setting out of tolerance CH0
250 Final_bias_diff_not_accurate_1, ///< detector bias setting out of tolerance CH1
251 Final_bias_diff_not_accurate_2, ///< detector bias setting out of tolerance CH2
252 Final_bias_diff_not_accurate_3, ///< detector bias setting out of tolerance CH3
253 Final_bias_diff_not_accurate_4, ///< detector bias setting out of tolerance CH4
254 Final_bias_diff_not_accurate_5, ///< detector bias setting out of tolerance CH5
255
256 Final_bias_pos_not_accurate_0, ///< positive detector bias setting out of tolerance CH0
257 Final_bias_pos_not_accurate_1, ///< positive detector bias setting out of tolerance CH1
258 Final_bias_pos_not_accurate_2, ///< positive detector bias setting out of tolerance CH2
259 Final_bias_pos_not_accurate_3, ///< positive detector bias setting out of tolerance CH3
260 Final_bias_pos_not_accurate_4, ///< positive detector bias setting out of tolerance CH4
261 Final_bias_pos_not_accurate_5, ///< positive detector bias setting out of tolerance CH5
262
263 Final_bias_neg_not_accurate_0, ///< negative detector bias setting out of tolerance CH0
264 Final_bias_neg_not_accurate_1, ///< negative detector bias setting out of tolerance CH1
265 Final_bias_neg_not_accurate_2, ///< negative detector bias setting out of tolerance CH2
266 Final_bias_neg_not_accurate_3, ///< negative detector bias setting out of tolerance CH3
267 Final_bias_neg_not_accurate_4, ///< negative detector bias setting out of tolerance CH4
268 Final_bias_neg_not_accurate_5, ///< negative detector bias setting out of tolerance CH5
269
270 Detector_bias_slopes_not_available ///< One or more channels have not the slope set
272
274 DetectorTrimmer_error_0, ///< detector trimmer setting error for CH0
275 DetectorTrimmer_error_1, ///< detector trimmer setting error for CH1
276 DetectorTrimmer_error_2, ///< detector trimmer setting error for CH2
277 DetectorTrimmer_error_3, ///< detector trimmer setting error for CH3
278 DetectorTrimmer_error_4, ///< detector trimmer setting error for CH4
279 DetectorTrimmer_error_5, ///< detector trimmer setting error for CH5
280
281 PGA_error_0, ///< detector PGA setting error for CH0
282 PGA_error_1, ///< detector PGA setting error for CH1
283 PGA_error_2, ///< detector PGA setting error for CH2
284 PGA_error_3, ///< detector PGA setting error for CH3
285 PGA_error_4, ///< detector PGA setting error for CH4
286 PGA_error_5 ///< detector PGA setting error for CH5
288
289
290
291
292/************Elenco Funzioni**************************************************/
293void ERROR_codifica_errore(uint8_t scheda_su_scheda_giu, unsigned char error_addres, unsigned char code_to_shift, uint8_t reset_count_se_0 );
294
295int error_inspection ( char what_to_answer) ;
296
297void store_errors (void);
298
299void restore_errors (void);
300
304
305//char test_supply_voltage_ON_OFF ( char channel) ;
306
307//int test_supply_voltage_ON_OFF_CAN ( char channel_input);
308
309
310
311 /************Fine Elenco funzioni**************************************************/
312
ERROR_BIAS_POWER_SUPPLY_
@ Vref_pos_too_large
Positive Vref too large.
@ V__dig_3e3V_val_too_large
Digital 3.3 V supply too large.
@ Vbol_neg_large_for_switching
Negative Vbol too large for switching from internal to external power or vice-versa.
@ VCC_PGA_pos_too_large
Positive supply for PGA too large.
@ Vbol_neg_small_for_switching
Negative Vbol too small for switching from internal to external power or vice-versa.
@ VCC_PRE_pos_too_large
Positive supply for preamplifier too large.
@ V__dig_3e3V_val_too_small
Digital 3.3 V supply too small.
@ VEE_PGA_absolute_val_too_large
Negative supply for PGA too large.
@ Vbol_pos_too_large
Positive Vbol exceeds the maximum.
@ Vbol_neg_too_large
Negative Vbol exceeds the maximum.
@ VCC_PGA_pos_too_small
Positive supply for PGA too small.
@ Vbol_pos_too_small
Positive Vbol is below the lower limit.
@ VEE_PGA_absolute_val_too_small
Negative supply for PGA too small.
@ V__dig_5V_val_too_small
Digital 5 V supply too small.
@ Vref_pos_too_small
Positive Vref too small.
@ Vbol_pos_large_for_switching
Positive Vbol too large for switching from internal to external power or vice-versa.
@ Vref_neg_absolute_val_too_small
Negative Vref too small.
@ VEE_PRE_absolute_val_too_large
Negative supply for preamplifier too large.
@ Vref_neg_absolute_val_too_large
Negative Vref too large.
@ VEE_PRE_absolute_val_too_small
Negative supply for preamplifier too small.
@ V__dig_5V_val_too_large
Digital 5 V supply too large.
@ Vbol_pos_small_for_switching
Positive Vbol too small for switching from internal to external power or vice-versa.
@ VCC_PRE_pos_too_small
Positive supply for preamplifier too small.
@ Vbol_neg_too_small
Negative Vbol is below the lower limit.
ERROR_I2C_B
@ I2C_error_trimmer_bias_0
trimmer_bias ch0
@ I2C_error_trimmer_bias_3
trimmer_bias ch3
@ I2C_error_termometro_2
termometro ch2
@ I2C_error_termometro_3
termometro ch3
@ I2C_error_termometro_0
termometro ch0
@ I2C_error_termometro_4
termometro ch4
@ I2C_error_trimmer_bias_5
trimmer_bias ch5
@ I2C_error_trimmer_bias_2
trimmer_bias ch2
@ I2C_error_trimmer_bias_4
trimmer_bias ch4
@ I2C_error_termometro_1
termometro ch1
@ I2C_error_termometro_5
termometro ch5
@ I2C_error_trimmer_bias_1
trimmer_bias ch1
ERROR_ADC_
@ ADC_internal_General_fails
ADC general fault.
@ VREF_ADC_too_small
ADC VREF measured out of its tolerance, too small.
@ ADC_RDY_pin_fault
ADC ready not received.
@ VREF_ADC_too_large
ADC VREF measured out of its tolerance, too large.
@ ADC_external_fails
measurement form an external ADC went wrong
@ ADC_SPI_fault
SPI Communication fault.
@ ADC_RDY_pin_fault_during_calibration
ADC ready not during calibration.
void store_errors(void)
Copy all errors in a buffer.
unsigned int Post_frontend_errors[error_number_of_errors_registers+error_offset_for_board_up]
Vector that lists the flag registers.
void Error_imposta_la_istruzione(void)
Function to be located at the end of every instruction to mark the error, if any.
unsigned int Post_frontend_errors_copy[error_number_of_errors_registers+error_offset_for_board_up]
///
volatile unsigned char can_send_error
The shift bit of the last error.
volatile uint32_t Error_bad_operation
exploited to mark the errors
ERROR_preamplifier_
@ preamplifier_Error_offset_not_accurate_1
offset adjustment out of tolerance CH1
@ preamplifier_Error_offset_not_accurate_3
offset adjustment out of tolerance CH3
@ preamplifier_Error_with_its_trimmer_3
Preaamplifier trimmer error CH3.
@ preamplifier_Error_with_its_trimmer_5
Preaamplifier trimmer error CH5.
@ preamplifier_Error_with_its_trimmer_1
Preaamplifier trimmer error CH1.
@ preamplifier_Error_with_its_EEPROM_0
Preamplifier EEPROM error CH0.
@ preamplifier_Error_in_reading_temperature_0
Preaamplifier temperature missed CH0.
@ preamplifier_Error_with_its_trimmer_2
Preaamplifier trimmer error CH2.
@ preamplifier_Error_with_its_trimmer_4
Preaamplifier trimmer error CH4.
@ preamplifier_Error_with_its_EEPROM_2
Preamplifier EEPROM error CH2.
@ preamplifier_Error_with_its_EEPROM_3
Preamplifier EEPROM error CH3.
@ preamplifier_Error_offset_not_accurate_4
offset adjustment out of tolerance CH4
@ preamplifier_Error_with_its_EEPROM_4
Preamplifier EEPROM error CH4.
@ preamplifier_Error_with_its_trimmer_0
Preaamplifier trimmer error CH0.
@ preamplifier_Error_in_reading_temperature_1
Preaamplifier temperature missed CH1.
@ preamplifier_Error_offset_not_accurate_0
offset adjustment out of tolerance CH0
@ preamplifier_Error_in_reading_temperature_3
Preaamplifier temperature missed CH3.
@ preamplifier_Error_in_reading_temperature_4
Preaamplifier temperature missed CH4.
@ preamplifier_Error_in_reading_temperature_5
Preaamplifier temperature missed CH5.
@ preamplifier_Error_in_reading_temperature_2
Preaamplifier temperature missed CH2.
@ preamplifier_Error_with_its_EEPROM_5
Preamplifier EEPROM error CH5.
@ preamplifier_Error_with_its_EEPROM_1
Preamplifier EEPROM error CH1.
@ preamplifier_Error_offset_not_accurate_5
offset adjustment out of tolerance CH5
@ preamplifier_Error_offset_not_accurate_2
offset adjustment out of tolerance CH2
ERROR_CAN
@ CAN_error_comunichiamo_qualche_dato_timeout_on_transmission
Transmission CAN error.
ERROR_I2C_A
@ I2C_Error_trimmer_2
trimmer ch2
@ I2C_error_EPROM_3
EPROM ch3.
@ I2C_Error_trimmer_4
trimmer ch4
@ I2C_Error_trimmer_1
trimmer ch1
@ I2C_error_EPROM_1
EPROM ch1.
@ I2C_Error_EVENT_BUS_ERROR
I2C communications trouble.
@ I2C_error_EPROM_0
EPROM ch0.
@ I2C_Error_I2C_to_parallel_PCA9554_2
I2C to parallel conversion ch2.
@ I2C_Error_NONE
I2C communications trouble.
@ I2C_Error_EVENT_BUS_CLEAR
I2C communications trouble.
@ I2C_error_EPROM_4
EPROM ch4.
@ I2C_Error_I2C_to_parallel_PCA9554_0
I2C to parallel conversion ch0.
@ I2C_Error_EVENT_TRANSFER_INCOMPLETE
I2C communications trouble.
@ I2C_Error_EVENT_TRANSFER_DONE
I2C communications trouble.
@ I2C_error_EPROM_5
EPROM ch5
@ I2C_Error_trimmer_5
trimmer ch5
@ I2C_Error_EVENT_ADDRESS_NACK
I2C communications trouble.
@ I2C_Error_trimmer_3
trimmer ch3
@ I2C_Error_EVENT_SLAVE_RECEIVE
I2C communications trouble.
@ I2C_error_EPROM_2
EPROM ch2.
@ I2C_Error_I2C_to_parallel_PCA9554_3
I2C to parallel conversion ch3.
@ I2C_Error_trimmer_0
trimmer ch0
@ I2C_Error_EVENT_SLAVE_TRANSMIT
I2C communications trouble.
@ I2C_Error_EVENT_ARBITRATION_LOST
I2C communications trouble.
@ I2C_Error_I2C_mux
Trouble with I2C mux communication.
@ I2C_Error_I2C_to_parallel_PCA9554_1
I2C to parallel conversion ch1.
void instr_ERROR_inspection_function(void)
The state of the errors can be verified/reset.
volatile unsigned char last_code_to_shift
The address of the last verified error.
volatile unsigned char last_code_to_shift_at_startup
The address of the last verified error.
ERROR_BIAS_setting
@ Final_bias_pos_not_accurate_0
positive detector bias setting out of tolerance CH0
@ Final_bias_pos_not_accurate_2
positive detector bias setting out of tolerance CH2
@ Final_bias_pos_not_accurate_3
positive detector bias setting out of tolerance CH3
@ Final_bias_neg_not_accurate_3
negative detector bias setting out of tolerance CH3
@ Error_detector_realy_setting
Error in setting any the relay.
@ Final_bias_pos_not_accurate_5
positive detector bias setting out of tolerance CH5
@ Final_bias_diff_not_accurate_5
detector bias setting out of tolerance CH5
@ Final_bias_neg_not_accurate_5
negative detector bias setting out of tolerance CH5
@ Final_bias_diff_not_accurate_2
detector bias setting out of tolerance CH2
@ Final_bias_pos_not_accurate_1
positive detector bias setting out of tolerance CH1
@ Final_bias_neg_not_accurate_2
negative detector bias setting out of tolerance CH2
@ Final_bias_pos_not_accurate_4
positive detector bias setting out of tolerance CH4
@ Final_bias_diff_not_accurate_1
detector bias setting out of tolerance CH1
@ Final_bias_neg_not_accurate_4
negative detector bias setting out of tolerance CH4
@ Final_bias_diff_not_accurate_4
detector bias setting out of tolerance CH4
@ Final_bias_diff_not_accurate_3
detector bias setting out of tolerance CH3
@ Final_bias_diff_not_accurate_0
detector bias setting out of tolerance CH0
@ Final_bias_neg_not_accurate_1
negative detector bias setting out of tolerance CH1
@ Detector_bias_slopes_not_available
One or more channels have not the slope set.
@ Final_bias_neg_not_accurate_0
negative detector bias setting out of tolerance CH0
ERROR_CROSS_address_
Here the indexes of the errors of the vector Post_frontend_errors.
@ error_address_reg_ADC1
Error register for ADC1.
@ error_address_CAN
Error register for CAN bus
@ error_address_reg_ADC0
Error register for ADC0.
@ error_address_Bias_adjustment
Error register for channel detector bias adjustment.
@ error_address_PGA_DetectorTrimmer_down
Error register for on board PGA/detector trimmer
@ error_address_I2C0
Error register A for I2C0.
@ error_address_PGA_DetectorTrimmer_up
Error register for on board PGA/detector trimmer
@ error_address_DAC_Trimmer_Pre_Detector_supply
Error register for preaamplifer and detector power supplies.
@ error_preamplifier_up
Error register preamflifier board up.
@ error_address_I2C1_B
Error register B for I2C1
@ error_preamplifier_down
Error register preamflifier board down.
@ error_offset_for_board_up
=15, First addresss for board up errors
@ error_address_I2C1
Error register A for I2C1
@ error_address_Power_Supply_in_General
Error register for channel power supplies.
@ error_address_SPI
Error register for SPI.
@ error_address_I2C0_B
Error register B for I2C0
@ error_number_of_errors_registers
Number of errors (this is not an addres)
void ERROR_codifica_errore(uint8_t scheda_su_scheda_giu, unsigned char error_addres, unsigned char code_to_shift, uint8_t reset_count_se_0)
If an error is found its flag is codified here.
volatile unsigned int flag_error_verified_at_startup
Alla verifica di un qualsiasi errore questo flag viene incrementato, 0 implica nessun errore.
error_SPI_
@ SPI_error_NONE
this should be ARM_SPI_EVENT_TRANSFER_COMPLETE
@ SPI_error_EVENT_DATA_LOST
This is ARM_SPI_EVENT_DATA_LOST.
@ SPI_error_EVENT_MODE_FAULT
this is ARM_SPI_EVENT_MODE_FAULT
volatile unsigned char last_error_address
Il flag di errore veirifcato e tutti gli errori vengono resettati perch\'e acquisiti.
void instr_ERROR_echo_on_off_function(void)
Immediate echos of a verified error activated/disattivated.
void restore_errors(void)
Re-store all errors from the buffer.
volatile unsigned char flag_error_acknowledged
Alla verifica di un qualsiasi errore allo startup questo flag viene posto ad 1, 0 altrimenti.
volatile unsigned char last_error_address_at_startup
The shift bit of the last error.
DetectorTrimmer_error_
@ PGA_error_4
detector PGA setting error for CH4
@ DetectorTrimmer_error_4
detector trimmer setting error for CH4
@ DetectorTrimmer_error_0
detector trimmer setting error for CH0
@ DetectorTrimmer_error_2
detector trimmer setting error for CH2
@ PGA_error_1
detector PGA setting error for CH1
@ DetectorTrimmer_error_1
detector trimmer setting error for CH1
@ PGA_error_0
detector PGA setting error for CH0
@ PGA_error_5
detector PGA setting error for CH5
@ DetectorTrimmer_error_5
detector trimmer setting error for CH5
@ DetectorTrimmer_error_3
detector trimmer setting error for CH3
@ PGA_error_3
detector PGA setting error for CH3
@ PGA_error_2
detector PGA setting error for CH2