From 2d027583b15e1bbcda2b10847d442d8f142fadf5 Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Fri, 24 May 2024 12:52:14 +0200 Subject: [PATCH] add FEE FM calibrations --- Ccs/calibrations_SMILE.py | 241 ++++++++++++++++++++++++-------------- 1 file changed, 150 insertions(+), 91 deletions(-) diff --git a/Ccs/calibrations_SMILE.py b/Ccs/calibrations_SMILE.py index 74d4d81..d0b486b 100644 --- a/Ccs/calibrations_SMILE.py +++ b/Ccs/calibrations_SMILE.py @@ -12,13 +12,14 @@ import scipy as sp T_ZERO = 273.15 # common ADC coefficients -ADC_INPRNG = 7.34783 # V -ADC_OFFSET = -1.69565 # V +# EQM (?) +# ADC_INPRNG = 7.34783 # V +# ADC_OFFSET = -1.69565 # V # PFM # # nom -# ADC_INPRNG = 7.58261 # V -# ADC_OFFSET = -1.76956 # V +ADC_INPRNG = 7.58261 # V +ADC_OFFSET = -1.76956 # V # # red # ADC_INPRNG = 7.54783 # V # ADC_OFFSET = -1.77391 # V @@ -60,15 +61,16 @@ class Temp: # Signal specific coefficients class V_T0: - CCD = 2.5650 - TEMP1 = 2.5770 - FEE = 1.2800 + # EQM + # CCD = 2.5650 + # TEMP1 = 2.5770 + # FEE = 1.2800 # PFM # # nom - # CCD = 2.5688 - # TEMP1 = 2.5599 - # FEE = 1.2749 + CCD = 2.5688 + TEMP1 = 2.5599 + FEE = 1.2749 # # red # CCD = 2.5547 # TEMP1 = 2.5649 @@ -83,63 +85,64 @@ class K_T: # interpolation table for nominal operation CCD temperature # (degC, ADC_V, ADU_dec, ADU_hex) -CCD_TEMP_TABLE = [ - (-140.0, 1.125, 6288, 0x1890), - (-135.0, 1.178, 6407, 0x1906), - (-130.0, 1.231, 6524, 0x197C), - (-125.0, 1.283, 6642, 0x19F1), - (-120.0, 1.336, 6759, 0x1A66), - (-115.0, 1.388, 6876, 0x1ADB), - (-110.0, 1.440, 6992, 0x1B50), - (-105.0, 1.493, 7109, 0x1BC4), - (-100.0, 1.545, 7225, 0x1C38), - (-95.0, 1.596, 7340, 0x1CAC), - (-90.0, 1.648, 7456, 0x1D1F), - (-85.0, 1.700, 7571, 0x1D92), - (-80.0, 1.751, 7686, 0x1E05), - (-75.0, 1.803, 7800, 0x1E78), - (-70.0, 1.854, 7915, 0x1EEA), - (-65.0, 1.905, 8029, 0x1F5D), - (-60.0, 1.957, 8143, 0x1FCF), - (-55.0, 2.008, 8257, 0x2040), - (-50.0, 2.059, 8371, 0x20B2), - (-45.0, 2.109, 8484, 0x2123), - (-40.0, 2.160, 8597, 0x2195), - (-35.0, 2.211, 8710, 0x2206), - (-30.0, 2.261, 8823, 0x2276), - (-25.0, 2.312, 8936, 0x22E7), - (-20.0, 2.362, 9048, 0x2358) -] +# EQM +# CCD_TEMP_TABLE = [ +# (-140.0, 1.125, 6288, 0x1890), +# (-135.0, 1.178, 6407, 0x1906), +# (-130.0, 1.231, 6524, 0x197C), +# (-125.0, 1.283, 6642, 0x19F1), +# (-120.0, 1.336, 6759, 0x1A66), +# (-115.0, 1.388, 6876, 0x1ADB), +# (-110.0, 1.440, 6992, 0x1B50), +# (-105.0, 1.493, 7109, 0x1BC4), +# (-100.0, 1.545, 7225, 0x1C38), +# (-95.0, 1.596, 7340, 0x1CAC), +# (-90.0, 1.648, 7456, 0x1D1F), +# (-85.0, 1.700, 7571, 0x1D92), +# (-80.0, 1.751, 7686, 0x1E05), +# (-75.0, 1.803, 7800, 0x1E78), +# (-70.0, 1.854, 7915, 0x1EEA), +# (-65.0, 1.905, 8029, 0x1F5D), +# (-60.0, 1.957, 8143, 0x1FCF), +# (-55.0, 2.008, 8257, 0x2040), +# (-50.0, 2.059, 8371, 0x20B2), +# (-45.0, 2.109, 8484, 0x2123), +# (-40.0, 2.160, 8597, 0x2195), +# (-35.0, 2.211, 8710, 0x2206), +# (-30.0, 2.261, 8823, 0x2276), +# (-25.0, 2.312, 8936, 0x22E7), +# (-20.0, 2.362, 9048, 0x2358) +# ] # PFM # # nom -# CCD_TEMP_TABLE = [ -# (-140.0, 1.123, 6250, 0x186A), -# (-135.0, 1.176, 6364, 0x18DC), -# (-130.0, 1.229, 6478, 0x194E), -# (-125.0, 1.281, 6592, 0x19C0), -# (-120.0, 1.334, 6705, 0x1A31), -# (-115.0, 1.386, 6818, 0x1AA2), -# (-110.0, 1.438, 6931, 0x1B13), -# (-105.0, 1.491, 7044, 0x1B84), -# (-100.0, 1.542, 7156, 0x1BF4), -# (-95.0, 1.594, 7268, 0x1C64), -# (-90.0, 1.646, 7380, 0x1CD4), -# (-85.0, 1.698, 7491, 0x1D43), -# (-80.0, 1.749, 7602, 0x1DB2), -# (-75.0, 1.800, 7713, 0x1E21), -# (-70.0, 1.852, 7824, 0x1E90), -# (-65.0, 1.903, 7935, 0x1EFF), -# (-60.0, 1.954, 8045, 0x1F6D), -# (-55.0, 2.005, 8155, 0x1FDB), -# (-50.0, 2.056, 8265, 0x2049), -# (-45.0, 2.107, 8375, 0x20B7), -# (-40.0, 2.157, 8484, 0x2124), -# (-35.0, 2.208, 8594, 0x2192), -# (-30.0, 2.258, 8703, 0x21FF), -# (-25.0, 2.309, 8812, 0x226C), -# (-20.0, 2.359, 8921, 0x22D9) -# ] +CCD_TEMP_TABLE = [ + (-140.0, 1.123, 6250, 0x186A), + (-135.0, 1.176, 6364, 0x18DC), + (-130.0, 1.229, 6478, 0x194E), + (-125.0, 1.281, 6592, 0x19C0), + (-120.0, 1.334, 6705, 0x1A31), + (-115.0, 1.386, 6818, 0x1AA2), + (-110.0, 1.438, 6931, 0x1B13), + (-105.0, 1.491, 7044, 0x1B84), + (-100.0, 1.542, 7156, 0x1BF4), + (-95.0, 1.594, 7268, 0x1C64), + (-90.0, 1.646, 7380, 0x1CD4), + (-85.0, 1.698, 7491, 0x1D43), + (-80.0, 1.749, 7602, 0x1DB2), + (-75.0, 1.800, 7713, 0x1E21), + (-70.0, 1.852, 7824, 0x1E90), + (-65.0, 1.903, 7935, 0x1EFF), + (-60.0, 1.954, 8045, 0x1F6D), + (-55.0, 2.005, 8155, 0x1FDB), + (-50.0, 2.056, 8265, 0x2049), + (-45.0, 2.107, 8375, 0x20B7), + (-40.0, 2.157, 8484, 0x2124), + (-35.0, 2.208, 8594, 0x2192), + (-30.0, 2.258, 8703, 0x21FF), + (-25.0, 2.309, 8812, 0x226C), + (-20.0, 2.359, 8921, 0x22D9) +] # # # red # CCD_TEMP_TABLE = [ @@ -173,21 +176,7 @@ CCD_TEMP_TABLE = [ # interpolation table for PSU temperature # (degC, ADC_V, ADU_dec, ADU_hex) -PSU_TEMP = [ - (-50.0, 3.237, 10998, 0x2AF6), - (-40.0, 3.187, 10887, 0x2A86), - (-20.0, 2.960, 10380, 0x288C), - (0.0, 2.487, 9326, 0x246D), - (20.0, 1.816, 7830, 0x1E95), - (25.0, 1.643, 7444, 0x1D13), - (40.0, 1.169, 6387, 0x18F3), - (60.0, 0.703, 5348, 0x14E4), - (80.0, 0.417, 4710, 0x1266), - (90.0, 0.323, 4501, 0x1194), - (100.0, 0.252, 4343, 0x10F6) -] - -# PFM +# EQM # PSU_TEMP = [ # (-50.0, 3.237, 10998, 0x2AF6), # (-40.0, 3.187, 10887, 0x2A86), @@ -202,6 +191,21 @@ PSU_TEMP = [ # (100.0, 0.252, 4343, 0x10F6) # ] +# PFM +PSU_TEMP = [ + (-50.0, 3.237, 10998, 0x2AF6), + (-40.0, 3.187, 10887, 0x2A86), + (-20.0, 2.960, 10380, 0x288C), + (0.0, 2.487, 9326, 0x246D), + (20.0, 1.816, 7830, 0x1E95), + (25.0, 1.643, 7444, 0x1D13), + (40.0, 1.169, 6387, 0x18F3), + (60.0, 0.703, 5348, 0x14E4), + (80.0, 0.417, 4710, 0x1266), + (90.0, 0.323, 4501, 0x1194), + (100.0, 0.252, 4343, 0x10F6) +] + class Psu: @@ -214,23 +218,24 @@ class Psu: ADC_I_HEATER = "HK_ADC_I_HEATER" -K_PSU = { - Psu.ADC_I_FEE_ANA: 0.3058, - Psu.ADC_I_FEE_DIG: 0.1528, - Psu.ADC_I_DPU: 0.4913, - Psu.ADC_I_RSE: 0.844, - Psu.ADC_I_HEATER: 0.4349 -} - -# PFM +# EQM # K_PSU = { # Psu.ADC_I_FEE_ANA: 0.3058, # Psu.ADC_I_FEE_DIG: 0.1528, -# Psu.ADC_I_DPU: 0.603, +# Psu.ADC_I_DPU: 0.4913, # Psu.ADC_I_RSE: 0.844, # Psu.ADC_I_HEATER: 0.4349 # } +# PFM +K_PSU = { + Psu.ADC_I_FEE_ANA: 0.3058, + Psu.ADC_I_FEE_DIG: 0.1528, + Psu.ADC_I_DPU: 0.603, + Psu.ADC_I_RSE: 0.844, + Psu.ADC_I_HEATER: 0.4349 +} + PSU_OFFSET = { Psu.ADC_I_FEE_ANA: 0, Psu.ADC_I_FEE_DIG: 0, @@ -742,7 +747,16 @@ class Fee: # FEE HK gains/offsets -# EQM + +# EQM ??? +# Fee.CCD2_TS_A: (0.0143896, 507.7463659), +# Fee.CCD4_TS_B: (0.0143869, 508.0853237), +# Fee.PRT1: (0.013942679, 511.4689646), +# Fee.PRT2: (0.014066366, 520.9910997), +# Fee.PRT3: (0.014075819, 520.1841103), +# Fee.PRT4: (0.013816741, 535.4382444), +# Fee.PRT5: (0.014074936, 520.4885901), +# # Fee.CCD2_TS_A: (0.048589970854, 326.709603726099), # Fee.CCD4_TS_B: (0.048346071846, 317.545999899085), # Fee.PRT1: (0.049337666752, 310.304954966437), @@ -751,6 +765,7 @@ class Fee: # Fee.PRT4: (0.048777132761, 322.321990156487), # Fee.PRT5: (0.048683458078, 323.746239172483), +# EQM FEE_GAIN_OFFSET = { Fee.CCD2_TS_A: (0.0143896, 507.7463659), Fee.CCD4_TS_B: (0.0143869, 508.0853237), @@ -793,6 +808,50 @@ FEE_GAIN_OFFSET = { Fee.CCD2_VOD_MON_F: (0.000562860544, -0.00642286504851342) } +# FM +# FEE_GAIN_OFFSET = { +# Fee.CCD2_TS_A: (0.014369244000, 372.541803600000), +# Fee.CCD4_TS_B: (0.014373897000, 372.828009000000), +# Fee.PRT1: (0.014371437000, 372.685351900000), +# Fee.PRT2: (0.014371437000, 372.685351900000), +# Fee.PRT3: (0.014371437000, 372.685351900000), +# Fee.PRT4: (0.014371437000, 372.685351900000), +# Fee.PRT5: (0.014371437000, 372.685351900000), +# Fee.CCD4_VOD_MON_E: (0.000562370000, 0.010150918000), +# Fee.CCD4_VOG_MON: (0.000132526000, 0.000030609000), +# Fee.CCD4_VRD_MON_E: (0.000562986000, 0.011770430000), +# Fee.CCD2_VOD_MON_E: (0.000562758000, -0.000015833000), +# Fee.CCD2_VOG_MON: (0.000132538000, -0.000518162000), +# Fee.CCD2_VRD_MON_E: (0.000562977000, 0.009355482000), +# Fee.CCD4_VRD_MON_F: (0.000562755000, 0.014634286000), +# Fee.CCD4_VDD_MON: (0.000878920000, 0.000000000000), +# Fee.CCD4_VGD_MON: (0.000562959000, 0.012800967000), +# Fee.CCD2_VRD_MON_F: (0.000562992000, 0.012512884000), +# Fee.CCD2_VDD_MON: (0.000802557000, 0.000000000000), +# Fee.CCD2_VGD_MON: (0.000563277000, 0.006843414000), +# Fee.VCCD: (0.000755650000, 0.000000000000), +# Fee.VRCLK_MON: (0.000360278000, 0.000000000000), +# Fee.VICLK: (0.000360286000, 0.000000000000), +# Fee.CCD4_VOD_MON_F: (0.000562421000, 0.011387822000), +# Fee.P5VB_POS_MON: (0.000092222000, 0.000000000000), +# Fee.P5VB_NEG_MON: (-0.000125804000, 0.000000000000), +# Fee.P3V3B_MON: (0.000062651000, 0.000000000000), +# Fee.P2V5A_MON: (0.000062656000, 0.000000000000), +# Fee.P3V3D_MON: (0.000062654000, 0.000000000000), +# Fee.P2V5D_MON: (0.000062658000, 0.000000000000), +# Fee.P1V2D_MON: (0.000031315000, 0.000000000000), +# Fee.P5VREF_MON: (0.000097241000, 0.000000000000), +# Fee.VCCD_POS_RAW: (0.000756621000, 0.000000000000), +# Fee.VCLK_POS_RAW: (0.000360158000, 0.000000000000), +# Fee.VAN1_POS_RAW: (0.000163416000, 0.000000000000), +# Fee.VAN3_NEG_MON: (-0.000208731000, 0.000000000000), +# Fee.VAN2_POS_RAW: (0.000163228000, 0.000000000000), +# Fee.VDIG_RAW: (0.000097252000, 0.000000000000), +# Fee.IG_HI_MON: (0.000187565000, 0.000000000000), +# Fee.CCD2_VOD_MON_F: (0.000563010000, 0.006615808000) +# } + + FEE_CCD2TsA_gain, FEE_CCD2TsA_offset = FEE_GAIN_OFFSET[Fee.CCD2_TS_A] FEE_CCD4TsB_gain, FEE_CCD4TsB_offset = FEE_GAIN_OFFSET[Fee.CCD4_TS_B] @@ -983,6 +1042,6 @@ if __name__ == '__main__': import matplotlib.pyplot as plt ct = CalibrationTables() - ct._plot(Temp.ADC_TEMP_CCD) + ct._plot(Temp.ADC_PSU_TEMP) # ct.write_to_files('/home/marko/space/CCS/calibrations') lmt = LimitTables() -- GitLab