Skip to content
Snippets Groups Projects
Select Git revision
  • 077955cf144c2dd32ac1c45e5e8897fe3d961181
  • master default protected
  • L2SS-1914-fix_job_dispatch
  • TMSS-3170
  • TMSS-3167
  • TMSS-3161
  • TMSS-3158-Front-End-Only-Allow-Changing-Again
  • TMSS-3133
  • TMSS-3319-Fix-Templates
  • test-fix-deploy
  • TMSS-3134
  • TMSS-2872
  • defer-state
  • add-custom-monitoring-points
  • TMSS-3101-Front-End-Only
  • TMSS-984-choices
  • SDC-1400-Front-End-Only
  • TMSS-3079-PII
  • TMSS-2936
  • check-for-max-244-subbands
  • TMSS-2927---Front-End-Only-PXII
  • Before-Remove-TMSS
  • LOFAR-Release-4_4_318 protected
  • LOFAR-Release-4_4_317 protected
  • LOFAR-Release-4_4_316 protected
  • LOFAR-Release-4_4_315 protected
  • LOFAR-Release-4_4_314 protected
  • LOFAR-Release-4_4_313 protected
  • LOFAR-Release-4_4_312 protected
  • LOFAR-Release-4_4_311 protected
  • LOFAR-Release-4_4_310 protected
  • LOFAR-Release-4_4_309 protected
  • LOFAR-Release-4_4_308 protected
  • LOFAR-Release-4_4_307 protected
  • LOFAR-Release-4_4_306 protected
  • LOFAR-Release-4_4_304 protected
  • LOFAR-Release-4_4_303 protected
  • LOFAR-Release-4_4_302 protected
  • LOFAR-Release-4_4_301 protected
  • LOFAR-Release-4_4_300 protected
  • LOFAR-Release-4_4_299 protected
41 results

storage.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    RCU_test1.py 3.79 KiB
    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_LB_TEST')
    
    def RCU_off(d1):
     logging.warning("Switch RCU Power off");
     d1.SetRegister("IO1.GPIO1",[0])
     d1.SetRegister("IO1.GPIO2",[0x0]) #Analog power off
     d1.SetRegister("IO2.GPIO1",[0x0]) #Digital power off
     d1.SetRegister("IO2.GPIO2",[0x0])
     d1.SetRegister("IO3.GPIO1",[0x0]) 
     d1.SetRegister("IO3.GPIO2",[0x0])
    
     d1.SetRegister("IO1.CONF1",[0])
     d1.SetRegister("IO1.CONF2",[0])
     d1.SetRegister("IO2.CONF1",[0x80]) #Pgood on P07
     d1.SetRegister("IO2.CONF2",[0])
    
    def RCU_on(d1):
     logging.warning("Switch RCU Power on");
     d1.SetRegister("IO2.CONF1",[0x80]) #Pgood on P07
     d1.SetRegister("IO2.GPIO1",[0x4A]) #Digital power on
     d1.SetRegister("IO2.GPIO2",[0x55])
     d1.SetRegister("IO3.GPIO1",[0x15]) #ADC_SDIO=high, clk=low,  DTH_EN=low
     d1.SetRegister("IO3.GPIO2",[0x47]) #ADC SC=high, DTH_SDA=high
     d1.SetRegister("IO1.GPIO1",[0x0A])
     d1.SetRegister("IO1.GPIO2",[0x8A]) #Analog power on
     d1.SetRegister("IO2.CONF2",[0])
     d1.SetRegister("IO3.CONF1",[0]) #All output
     d1.SetRegister("IO3.CONF2",[0])
     d1.SetRegister("IO3.DIR1",[0]) #All output
     d1.SetRegister("IO3.DIR2",[0])
     d1.SetRegister("IO1.CONF1",[0])
     d1.SetRegister("IO1.CONF2",[0])
    
    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)
    #sleep(1.0)
    RCU_on(d1)
    sleep(1.0)
    ADC_config(d1)
    #enable_ant_pwr(d1)
    #dither_config(d1)
    
    
    for varname in ['RCU_PCB_ID','RCU_PCB_version','RCU_PCB_number',
                '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"]:
        data,var1=d1.GetVal(varname);
        print(varname+"=",data[0])
    
    for varname in ['RCU_TEMP','RCU_PWR_3V3','RCU_PWR_2V5','RCU_PWR_1V8']:
        data,var1=d1.GetVal(varname);
        print(varname+"=",data[0])
    
    for ch in ['CH1','CH2','CH3']:
     print("Channel ",ch)
     for varname in ['band_select','attenuator_dB','DTH_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])