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

◆ EPROM_store_recover_state_M24C32_64()

void EPROM_store_recover_state_M24C32_64 ( uint8_t  scheda_su_scheda_giu,
uint8_t  canali_da_regolare,
uint8_t  set_1_store_0,
uint8_t  startup_1_user_0 
)

Store the system state or recover and apply the system state.

Parameters
[in]scheda_su_scheda_giu
[in]canali_da_regolarethe channels to be worked out, 1= yes, 0=no. Ex: 101001= ch 0, ch 3 and ch 5 are worked.
[in]set_1_store_0store the system state in memory, if 1, recover and apply the stored setup, if 0
[out]startup_1_user_0store/recover from the startup, if 1, or from the user location, if 0
Returns
No Parameters
527void EPROM_store_recover_state_M24C32_64(uint8_t scheda_su_scheda_giu,uint8_t canali_da_regolare, \
528uint8_t set_1_store_0 , uint8_t startup_1_user_0){
529
530 uint8_t dati_da_leggere[4],ii_,canale,dati_da_scrivere[]={0,0,0,0},esegui=0;
531 uint16_t memoria_per_trimmer, memoria_per_abilitazione, memoria_per_relay_PGA,memoria_per_detector_trimmer;
532 if(scheda_su_scheda_giu) scheda_su_scheda_giu=6;
533
534 if( startup_1_user_0){
535 memoria_per_abilitazione=Memory_preamplifier_startup_offset_trimmer_ON_0_OFF_ff <<2 ;
536 memoria_per_trimmer=Memory_preamplifier_startup_offset_trimmer <<2;
537 memoria_per_relay_PGA=0;
538 esegui=1;
539 }else if(startup_1_user_0 ==0){
540 memoria_per_abilitazione=Memory_preamplifier_user_offset_trimmer_ON_0_OFF_ff <<2;
541 memoria_per_trimmer=Memory_preamplifier_user_offset_trimmer <<2;
542 memoria_per_detector_trimmer=Memory_preamplifier_user_detector_trimmer;
543 memoria_per_relay_PGA = Memory_preamplifier_user_detector_and_gain <<2;
544 esegui=1;
545 }
546
547 if ((set_1_store_0 ==0) && esegui){ //Quindi scriviamo
548 for(canale=0;canale<6;canale++){
549 if((canali_da_regolare >> canale) &1 ){
550 EPROM_scrittura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard,canale,\
551 memoria_per_abilitazione , dati_da_scrivere);
552 EPROM_scrittura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard, canale,\
553 memoria_per_trimmer , (uint8_t *)&contenuto_trimmer_preamplifier[canale+scheda_su_scheda_giu]);
554 if (memoria_per_relay_PGA){
555 dati_da_scrivere[0]= detector_Relay_state[scheda_su_scheda_giu + canale];
556 dati_da_scrivere[1]= PGA_settled_gain[scheda_su_scheda_giu+canale];
557 dati_da_scrivere[2]= 0;
558 dati_da_scrivere[3]= 0;
559 EPROM_scrittura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard,canale, \
560 memoria_per_relay_PGA , dati_da_scrivere);
561 dati_da_scrivere[0]= 0;
562 dati_da_scrivere[1]= 0;
563 EPROM_scrittura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard,canale,\
564 memoria_per_detector_trimmer , (uint8_t *)&contenuto_trimmer_detector[canale+scheda_su_scheda_giu]);
565 }
566 }
567 }
568 }
569
570 if (set_1_store_0 && esegui){ //Quindi recuperiamo ed applichiamo o stato
571 for(canale=0;canale<6;canale++){
572 if((canali_da_regolare >> canale) &1 ){
573 EPROM_lettura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard, canale, \
574 memoria_per_abilitazione , dati_da_leggere);
575 if(*(uint32_t *)dati_da_leggere ==0){
576 EPROM_lettura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard, canale, \
577 memoria_per_trimmer , dati_da_leggere);
578 for(ii_=0;ii_<4;ii_++){
579 preamplifier_scrittura_lettura_trimmer( scheda_su_scheda_giu, canale, ii_, \
580 dati_da_leggere[ii_], preamplifier_scrivi_il_trimmer );
581 }
582 if(memoria_per_relay_PGA){
583 EPROM_lettura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard, canale, \
584 memoria_per_relay_PGA , dati_da_leggere);
585 PGA_GAIN_CROSS( scheda_su_scheda_giu, canale, dati_da_leggere[1] );
586 for(ii_=0;ii_<7;ii_++){
587 if( (dati_da_leggere[0] >> ii_) & 1){
588 Relays_driver_set_reset_channel(scheda_su_scheda_giu,canale, (1<<ii_));
589 }
590 }
591 EPROM_lettura_M24C32_64(scheda_su_scheda_giu, I2C_mainboard, canale, \
592 memoria_per_detector_trimmer , dati_da_leggere);
593 for(ii_=0;ii_<4;ii_++){
594 detector_scrittura_lettura_trimmer_bias( scheda_su_scheda_giu, canale, ii_, \
595 dati_da_leggere[ii_], preamplifier_scrivi_il_trimmer );
596 }
597 }
598 }
599 }
600 }
601
602 }
603}
void PGA_GAIN_CROSS(uint8_t scheda_su_scheda_giu, uint8_t canale, uint8_t PGA_gain_to_set)
Here the 2 digital signals from the trimmer are exploited to set the gain of the input stage of the P...
Definition: DAC_PGA.c:109
uint8_t PGA_settled_gain[12]
PGA set gain.
Definition: DAC_PGA.c:95
uint8_t detector_Relay_state[12]
The state of the Detector realis is considerede. Note that this is the wanted working condition....
void Relays_driver_set_reset_channel(uint8_t scheda_su_giu, uint8_t numero_canale, uint8_t valore_da_trasmettere)
Setting the state of the detector realis: pre connected to detector or intrnal resistor,...
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.
void EPROM_store_recover_state_M24C32_64(uint8_t scheda_su_scheda_giu, uint8_t canali_da_regolare, uint8_t set_1_store_0, uint8_t startup_1_user_0)
Store the system state or recover and apply the system state.
@ Memory_preamplifier_user_detector_trimmer
detector trimmer content is stored here
@ Memory_preamplifier_startup_offset_trimmer
startup offset trimmer active if zero
@ Memory_preamplifier_user_offset_trimmer_ON_0_OFF_ff
user offset trimmer active if zero
@ Memory_preamplifier_startup_offset_trimmer_ON_0_OFF_ff
startup offset trimmer active if zero
@ Memory_preamplifier_user_offset_trimmer
startup offset trimmer active if zero
@ Memory_preamplifier_user_detector_and_gain
detectro setup anf PGA gain at user location
#define preamplifier_scrivi_il_trimmer
uint8_t contenuto_trimmer_detector[12][4]
Content of the trimmer for detector bias system.
Definition: Trimmer.c:161
void detector_scrittura_lettura_trimmer_bias(uint8_t scheda_su_scheda_giu, uint8_t canale, uint8_t trimmer, uint8_t valore, uint8_t scrivi_1_leggi_0)
Setting the value of any trimmer for detector biasing, the contents of the trimmers are stored in the...
Definition: Trimmer.c:238
uint8_t volatile contenuto_trimmer_preamplifier[12][4]
Definition: Trimmer.c:179
void preamplifier_scrittura_lettura_trimmer(uint8_t scheda_su_scheda_giu, uint8_t canale, uint8_t trimmer, uint8_t valore, uint8_t scrivi_1_leggi_0)
Setting the value of any trimmer for preamplifier trimmer, the contents of the trimmers are stored in...
Definition: Trimmer.c:283

[fun_EPROM_store_recover_state_M24C32_64]

Definition at line 527 of file Memoria_pre_M24CXX.c.

References contenuto_trimmer_detector, contenuto_trimmer_preamplifier, detector_Relay_state, detector_scrittura_lettura_trimmer_bias(), EPROM_lettura_M24C32_64(), EPROM_scrittura_M24C32_64(), Memory_preamplifier_startup_offset_trimmer, Memory_preamplifier_startup_offset_trimmer_ON_0_OFF_ff, Memory_preamplifier_user_detector_and_gain, Memory_preamplifier_user_detector_trimmer, Memory_preamplifier_user_offset_trimmer, Memory_preamplifier_user_offset_trimmer_ON_0_OFF_ff, PGA_GAIN_CROSS(), PGA_settled_gain, preamplifier_scrittura_lettura_trimmer(), preamplifier_scrivi_il_trimmer, and Relays_driver_set_reset_channel().

Referenced by instr_inizializza_tutto_da_zero_function(), and instr_output_offset_to_be_set_function().