diff --git a/python_scripts/RCUH_test.py b/python_scripts/RCUH_test.py new file mode 100644 index 0000000000000000000000000000000000000000..ec471438e8017ee3f2cc7c48437be033b6f019e1 --- /dev/null +++ b/python_scripts/RCUH_test.py @@ -0,0 +1,103 @@ +from pypcc.i2cdirect import i2cdirect +from time import sleep + +import logging +logging.basicConfig(level="ERROR",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s') +#logging.basicConfig(level="DEBUG",format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s') + +d1=i2cdirect('RECVTR_HB_TEST') + + + +def ADC_config(d1): + logging.warning("Configure ADCs"); + d1.SetRegister("ADC1.JESD_control1",[0x14]) + d1.SetRegister("ADC1.SYNC_control",[1]) + d1.SetRegister("ADC1.CML_level",[0x7]) + d1.SetRegister("ADC1.dither",[0x0]) + d1.SetRegister("ADC1.Update",[1]) + d1.SetRegister("ADC2.JESD_control1",[0x14]) + d1.SetRegister("ADC2.SYNC_control",[1]) + d1.SetRegister("ADC2.CML_level",[0x7]) + d1.SetRegister("ADC2.dither",[0x0]) + d1.SetRegister("ADC2.Update",[1]) + d1.SetRegister("ADC3.JESD_control1",[0x14]) + d1.SetRegister("ADC3.SYNC_control",[1]) + d1.SetRegister("ADC3.CML_level",[0x7]) + d1.SetRegister("ADC3.dither",[0x0]) + d1.SetRegister("ADC3.Update",[1]) + +def enable_ant_pwr(d1): + logging.warning("Switch antenna output power on"); + d1.SetVal("CH1_PWR_ANT_on",[True]) + d1.SetVal("CH2_PWR_ANT_on",[True]) + d1.SetVal("CH3_PWR_ANT_on",[True]) + +def dither_config(d1): #Switch dither on + logging.warning("Configure Dither sources"); + d1.SetVal("CH1_DTH_freq",[101000000]) + d1.SetVal("CH1_DTH_PWR",[-10]) + d1.SetRegister("DTH1.CONF",[0,0,0]) + d1.SetRegister("DTH1.Tune",[0,0]) + d1.SetRegister("DTH1.Start",[0,1,0,0,1]) + d1.SetVal("CH2_DTH_freq",[102000000]) + d1.SetVal("CH2_DTH_PWR",[-10]) + d1.SetRegister("DTH2.CONF",[0,0,0]) + d1.SetRegister("DTH2.Tune",[0,0]) + d1.SetRegister("DTH2.Start",[0,1,0,0,1]) + d1.SetVal("CH3_DTH_freq",[103000000]) + d1.SetVal("CH3_DTH_PWR",[-10]) + d1.SetRegister("DTH3.CONF",[0,0,0]) + d1.SetRegister("DTH3.Tune",[0,0]) + d1.SetRegister("DTH3.Start",[0,1,0,0,1]) + + +#RCU_off(d1) +if False: + d1.runmethod("RCU_off"); + sleep(1.0) +if True: + d1.runmethod("RCU_on"); + sleep(1.0) +if True: + d1.runmethod("ADC_on"); +enable_ant_pwr(d1) +#dither_config(d1) + +if True: + for varname in ['RCU_PCB_ID','RCU_PCB_version','RCU_PCB_number', + 'RCU_firmware_version', + 'RCU_PWR_good','RCU_PWR_DIGITAL_on','RCU_PWR_ANALOG_on', + 'RCU_IO1_GPIO1','RCU_IO1_GPIO2','RCU_IO2_GPIO1','RCU_IO2_GPIO2', + "RCU_LED_red_on","RCU_LED_green_on","RCU_DTH_shutdown"]: + data,var1=d1.GetVal(varname); + print(varname+"=",data[0]) +if True: + LED=0 + data=d1.SetVal("CH1_HBAT_BF2_byte",[0x80+LED]*32) +# print(data[0].data) + data=d1.SetVal("CH2_HBAT_BF2_byte",[0x80+LED]*32) +# print(data[0].data) + data=d1.SetVal("CH3_HBAT_BF_byte",[0x80+LED]*32) +# print(data[0].data) + data,var1=d1.GetVal("CH1_HBAT_BF2_byte") + print(data) + data,var1=d1.GetVal("CH2_HBAT_BF2_byte") + print(data) + data,var1=d1.GetVal("CH3_HBAT_BF2_byte") + print(data) +if True: + for varname in ['RCU_TEMP','RCU_PWR_3V3','RCU_PWR_2V5','RCU_PWR_1V8']: + data,var1=d1.GetVal(varname); + print(varname+"=",data[0]) + +if True: + for ch in ['CH1','CH2','CH3']: + print("Channel ",ch) + for varname in ['band_select','attenuator_dB','ADC_shutdown', + 'PWR_ANT_on','PWR_ANT_VOUT','PWR_ANT_VIN','PWR_ANT_IOUT', + 'ADC_locked','ADC_sync','ADC_JESD','ADC_CML_level', + 'DTH_freq','DTH_PWR','DTH_on', + ]: + data,var1=d1.GetVal(ch+'_'+varname); + print(" ",varname+"=",data[0])