This adds control of the C04 Cryocard's HEMT2 gate and drain. This should not change the operations of users on the C02 cryocard. No changes are made to the other three amplifiers, or TES biases.
The following optional configurations are added.
smurf_config.py
hemt2_gate_dac_num, default 27
hemt2_drain_dac_num, default 29
hemt2_Id_offset, default 0
hemt2_amp_Vd_series_resistor, default 50.0
hemt2_opamp_gain, default 3.874
hemt2_gate_bit_to_V, default 3.869e-6
hemt2_drain_conversion_m, default -0.259491
hemt2_drain_conversion_b, default 1.74185
The following functions are added.
smurf_command.py
get_hemt2_ps_en
set_hemt2_ps_en
get_hemt2_bias
get_hemt2_drain_milliamps
get_hemt2_gate_enable
set_hemt2_gate_enable
get_hemt2_gate_voltage
set_hemt2_gate_voltage
get_hemt2_drain_enable
set_hemt2_drain_enable
get_hemt2_drain_voltage
set_hemt2_drain_voltage
cryo_card.py
get_hemt2_i_voltage
The get_hemt2_drain_voltage and set_hemt2_drain voltage is calculated with the following fit.
Test log
[ 2022-02-18 01:37:34 ] Done with setup.
In [5]: S.hemt2_gate_dac_num
Out[5]: 27
In [6]: S.hemt2_drain_dac_num
Out[6]: 29
In [7]: S.hemt2_gate_bit_to_V
Out[7]: 3.869e-06
In [8]: S.hemt2_drain_conversion_m
Out[8]: -0.259491
In [9]: S.hemt2_drain_conversion_b
Out[9]: 1.74185
In [10]: S.hemt2_Id_offset
Out[10]: 0
In [11]: S.hemt2_amp_Vd_series_resistor
Out[11]: 50.0
In [12]: S.hemt2_opamp_gain
Out[12]: 3.874
In [13]: S.C.read_ps_en()
Out[13]: 4
In [14]: S.set_hemt2_ps_en(False)
In [15]: # 0V on HEMT2 Drain
In [16]: S.get_hemt2_ps_en()
Out[16]: False
In [17]: S.set_hemt2_ps_en(True)
In [18]: S.get_hemt2_ps_en()
Out[18]: True
In [19]: # 1.7445V on HEMT2 Drain
In [20]: S.get_hemt2_gate_enable()
Out[20]: False
In [21]: S.set_hemt2_gate_enable(True)
In [22]: S.get_hemt2_gate_voltage()
Out[22]: 0.0
In [23]: # 0V HEMT2 Gate
In [26]: S.get_rtm_slow_dac_volt(S.hemt2_gate_dac_num)
Out[26]: 9.999980926513672
In [27]: S.set_hemt2_ps_en(True)
In [28]: S.get_hemt2_ps_en()
Out[28]: True
In [37]: S.set_hemt2_gate_voltage(2.03)
In [41]: # Measuring 2.0243 V on HEMT2 G
In [42]: S.set_hemt2_gate_voltage(1)
In [43]: # 0.9974 V on HEMT2 G
In [44]: S.set_hemt2_gate_voltage(0)
In [45]: # 0 V on HEMT2 G
In [46]: S.set_hemt2_gate_voltage(2.03)
[ 2022-02-18 01:58:21 ] Bias too high. Must be <= than 2^19-1. Setting to max value
In [47]: S.set_hemt2_drain_enable(True)
In [51]: S.set_hemt2_drain_voltage(1.7)
In [52]: # 1.6920 on HEMT2 Drain
In [53]: S.set_hemt2_drain_voltage(1.2)
In [54]: # 1.1938 V on HEMT2 Drain
In [55]: S.set_hemt2_drain_voltage(0.5)
In [56]: # 0.4963 V on HEMT2 Drain
In [58]: S.set_hemt2_drain_voltage(0)
In [59]: # 0.0066 on HEMT2 Drain
In [62]: S.set_hemt2_gate_voltage(1.5)
In [63]: S.get_hemt2_gate_voltage()
Out[63]: 1.499999693
In [64]: # Measuring 1.49 V on HEMT2 Gate
In [67]: S.get_hemt2_drain_milliamps()
Out[67]: 0.23292301239029423
In [68]: S.set_hemt2_drain_voltage(1.7)
In [69]: S.get_hemt2_drain_milliamps()
Out[69]: 0.3859867062467733
In [70]: S.set_hemt2_drain_voltage(0)
In [71]: S.get_hemt2_drain_milliamps()
Out[71]: 0.24623289881259677
In [65]: # Result: Controlling the HEMT2 gate and drain works, and get_ values agree with multimeter.
Issue
ESCRYODET-852
Description
This adds control of the C04 Cryocard's HEMT2 gate and drain. This should not change the operations of users on the C02 cryocard. No changes are made to the other three amplifiers, or TES biases.
The following optional configurations are added.
The following functions are added.
The get_hemt2_drain_voltage and set_hemt2_drain voltage is calculated with the following fit.
Test log
See Also
697 #699