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

◆ instr_Shut_Down_ON_OFF_function()

void instr_Shut_Down_ON_OFF_function ( void  )

μ-controller power down ON/OFF

Returns
No Parameters, the actual result is sent to the CAN bus output throught tx_data.
117 //If vettore_istruzioni[istruzione_byte_4_e_scelta_canale]>1 the state is returned only.
118 uint8_t dati_da_scrivere[]={0,0,0,0};
120 //Power down attivo
121 flag_power_down = true;
124 dati_da_scrivere[0]= POWER_DOWN_MAX_ATTESA & 0xFF;
125 EPROM_scrittura_M24C32_64( 0, I2C_postmainboard, Canale_EPROM_postmainboard_down, Memory_postmainboard_micro_PD_wait_time_in_sec << 2 , dati_da_scrivere);
126 EPROM_scrittura_M24C32_64( 1, I2C_postmainboard, Canale_EPROM_postmainboard_up, Memory_postmainboard_micro_PD_wait_time_in_sec << 2 , dati_da_scrivere);
129 //Power down non attivo, micro sempre acceso
130 flag_power_down = false;
131 }
132
133 dati_da_scrivere[0]= flag_power_down;
134 EPROM_scrittura_M24C32_64( 0, I2C_postmainboard, Canale_EPROM_postmainboard_down, Memory_postmainboard_micro_powdown_active_1_alwaysON_0 << 2 , dati_da_scrivere);
135 EPROM_scrittura_M24C32_64( 1, I2C_postmainboard, Canale_EPROM_postmainboard_up, Memory_postmainboard_micro_powdown_active_1_alwaysON_0 << 2 , dati_da_scrivere);
137// flag_power_down = false; //<-------------------- Cancellare questa riga
138
139 if( vettore_istruzioni[5]==0 ){
140 //ADC in standby quando non usati, res dummy attive, power non cambia
141 ADC_sleep_off = 0;
142 ADC_sleep_ON_OFF( 0 , 0);
143 ADC_sleep_ON_OFF( 1 , 0);
144 }else if (vettore_istruzioni[5]==2 ){
145 //ADC sempre accesi
146 ADC_sleep_off = 2;
147 ADC_sleep_ON_OFF( 0 , 2);
148 ADC_sleep_ON_OFF( 1 , 2);
149 } else if (vettore_istruzioni[5]==1 ){
150 //ADC in standby quando non usati, res dummy non attive, power si riduce
151 ADC_sleep_off = 1;
152 ADC_sleep_ON_OFF( 0 , 1);
153 ADC_sleep_ON_OFF( 1 , 1);
154 }
155 dati_da_scrivere[0]=ADC_sleep_off;
156 EPROM_scrittura_M24C32_64( 0, I2C_postmainboard, Canale_EPROM_postmainboard_down, Memory_postmainboard_ADCs_always_ON_0_powerdown_1 << 2 , dati_da_scrivere);
157 EPROM_scrittura_M24C32_64( 1, I2C_postmainboard, Canale_EPROM_postmainboard_up, Memory_postmainboard_ADCs_always_ON_0_powerdown_1 << 2 , dati_da_scrivere);
158 if (ADC_sleep_off ==0) {
159 tx_data[5]= 1; //spenti con dummy resistor
160 }
161 else if (ADC_sleep_off==1){
162 tx_data[5]= 11; //spenti senza dummy resistor
163 }else if (ADC_sleep_off>=2){
164 tx_data[5]= 2; //sempre accesi
165 }
166
167 EPROM_lettura_M24C32_64(0, I2C_postmainboard, Canale_EPROM_postmainboard_down, Memory_postmainboard_micro_PD_wait_time_in_sec << 2,dati_da_scrivere);
168 tx_data[0]= dati_da_scrivere[0];
169}
void ADC_sleep_ON_OFF(uint8_t up_down, uint8_t ADC_ON_1_OFF_0_NOP_GT1)
ADC is set to sleep or awake.
Definition: Adc.c:350
volatile uint8_t ADC_sleep_off
if 0 ADC in sleep when not working, ADC>1 ADC never sleep
Definition: Adc.c:205
uint8_t tx_data[8]
Transmission data vector.
Definition: Can.c:321
void instr_Shut_Down_ON_OFF_function(void)
μ-controller power down ON/OFF
Definition: Istruzioni.c:116
#define istruzione_byte_4_e_scelta_canale
Definition: Istruzioni.h:24
void EPROM_lettura_M24C32_64(uint8_t scheda_su_scheda_giu_, uint8_t mainboard_postmainboard, uint8_t canale, short indirizzo_memoria, uint8_t *dati_letti)
Read from preamplifier and on-board flashes.
void EPROM_scrittura_M24C32_64(uint8_t scheda_su_scheda_giu, uint8_t mainboard_postmainboard, uint8_t canale, short indirizzo_memoria, uint8_t *dati_da_scrivere)
Wriring the EEPROM.
@ Memory_postmainboard_ADCs_always_ON_0_powerdown_1
ADCs powerdown ON if 0, always ON if >1.
@ Memory_postmainboard_micro_PD_wait_time_in_sec
wait time before microcontroller power down since last operation
@ Memory_postmainboard_micro_powdown_active_1_alwaysON_0
microntroller aoutopower OFF if true, always ON if false
volatile uint32_t POWER_DOWN_MAX_ATTESA
upper limit for POWER_DOWN_TEMPO_ATTESA
Definition: Power_down.c:118
bool flag_power_down
if flag_power_down is true the u-controller goes in power down after a while
volatile int8_t vettore_istruzioni[8]
This is a copy of the received 8 bytes from the CAN.

Definition at line 116 of file Istruzioni.c.