CROSS Technical Documentation User Manual and Technical Doc.
INFN Milano Bicocca
Loading...
Searching...
No Matches

◆ termometro_sht_down()

void termometro_sht_down ( uint8_t  scheda_su_scheda_giu,
uint8_t  canale 
)


Thermometer in shtdown

Parameters
[in]scheda_su_scheda_giuone of the 2 boards that the postfrontend manages
[in]canalethe channel of the mux to be enabled
Returns
No Parameters
148void termometro_sht_down( uint8_t scheda_su_scheda_giu, uint8_t canale ){
149
150 //< registri termometro
151 #define reg_temperatura 0
152 #define reg_configuration 1
153 #define reg_control_status 4
154 //< Commands
155 #define Shut_down_and_one_shot_command_for_config_reg 0x84
156 #define Shut_down_config_reg 0x80
157 #define Max_accuracy_command_for_control_reg 0x60
158 #define maschera_DAV 1
159
160 uint8_t comando1[]={reg_control_status,Max_accuracy_command_for_control_reg};
161 uint8_t comando2[]={reg_configuration, Shut_down_config_reg};
162// uint8_t comando2[]={reg_configuration, 0};
163 uint8_t comando3[]={reg_temperatura};
164 uint8_t comando4[]={reg_control_status};
165 uint8_t lettura[2];
166
167
168//void I2C_mux_select_ch( uint8_t scheda_su_scheda_giu, I2C_mainboard,uint8_t canale_da_abilitare)
169 I2C_mux_select_ch( scheda_su_scheda_giu, I2C_mainboard, termometro_adrress[canale].quale_I2C);
170
171 I2C_mux -> MasterTransmit( termometro_adrress[canale].indirizzo_I2C, comando1, 2,false); //bestacuracy
172 while( I2C_mux -> GetStatus().busy); // White transmission complete
174 I2C_mux -> MasterTransmit( termometro_adrress[canale].indirizzo_I2C, comando2, 2,false); //onseshot meas
175 while( I2C_mux -> GetStatus().busy); // White transmission complete
176 Aspetta_tanti_ms(150);
178
179 I2C_mux_select_ch( scheda_su_scheda_giu, I2C_mainboard, I2C_mux_disabilita_tutto);
180
181}
volatile uint32_t Error_bad_operation
exploited to mark the errors
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.
@ I2C_error_termometro_0
termometro ch0
@ error_address_I2C0_B
Error register B for I2C0
void I2C_mux_select_ch(uint8_t scheda_su_scheda_giu, uint8_t mainboard_postmainboard, uint8_t canale_da_abilitare)
The I2C mux.
Definition: I2C_mux.c:100
#define I2C_mux_disabilita_tutto
i2C transmission/reception was bad
Definition: I2C_mux.h:24
const struct address_detector_bias_trimmer_type termometro_adrress[6]
Thermometer selection structure.
void termometro_sht_down(uint8_t scheda_su_scheda_giu, uint8_t canale)
void Aspetta_tanti_ms(int millisecondi)
The timing function.
Definition: Timer.c:52

Definition at line 148 of file I2C_termometro.c.

References Aspetta_tanti_ms(), error_address_I2C0_B, Error_bad_operation, ERROR_codifica_errore(), I2C_error_termometro_0, I2C_mux_disabilita_tutto, I2C_mux_select_ch(), and termometro_adrress.

Referenced by instr_inizializza_tutto_da_zero_function().