def FreezeDCO(): # Freeze DCO cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, "B089", 0) cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_DATA_WR, "F010", 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0) time.sleep(0.2) print(" Freeze Si570 DCO")
def UnFreezeDCO(): # UnFreeze DCO cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, "B089", 0) cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_DATA_WR, "F000", 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0) time.sleep(0.2) cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, "B087", 0) cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_DATA_WR, "F040", 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0) time.sleep(0.2) print(" UnFreeze Si570 DCO & Start Oscillator\n")
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions # Mask Triggers & turn off Bias # import setTriggerSW # cin_functions.setCameraOff() # Clamp Mode registers # Write clampr cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0048", 0) cin_functions.WriteReg("821F", "0001", 0) cin_functions.WriteReg("8001", "0105", 0) cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0049", 0) cin_functions.WriteReg("821F", "00FF", 0) cin_functions.WriteReg("8001", "0105", 0) # Write clamp cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0050", 0) cin_functions.WriteReg("821F", "0001", 0) cin_functions.WriteReg("8001", "0105", 0) cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0051", 0) cin_functions.WriteReg("821F", "00FF", 0)
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions import time # Write to FO Module Register to send Test Pattern cin_functions.WriteReg("821D", "9E00", 0) cin_functions.WriteReg("821E", "0000", 0) cin_functions.WriteReg("821F", "0001", 0) cin_functions.WriteReg("8001", "0105", 0) time.sleep(0.2) cin_functions.WriteReg("8211", "0000", 0) cin_functions.WriteReg("8212", "0000", 0) cin_functions.WriteReg("8213", "0000", 0)
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions import time # def getBaseEthStat(): print "**** CFG FPGA - Base (1GbE) Ethernet Status Registers " print " " # Get PHY1 Status register cin_functions.WriteReg(cin_register_map.REG_PHY1_MDIO_CMD, "C001", 1) time.sleep(0.1) cin_functions.WriteReg(cin_register_map.REG_PHY1_MDIO_CMD, "0000", 1) reg_val = bin((int( cin_functions.ReadReg(cin_register_map.REG_PHY1_MDIO_RD_DATA)[4:8], 16)))[2:].zfill(16) stats_vec = reg_val[:] print " 1GbE PHY1 Status Register : " print stats_vec[-9] + " : Extended Status" print stats_vec[-7] + " : MGMT Frame Preamble Suppression" print stats_vec[-6] + " : Copper auto-negotiation complete" print stats_vec[-5] + " : Copper remote fault detect" print
import getFrmFPGAStatus import setFClk125M # import setFClk200M import getFClkStatus # Load Camera Timing File for 125MHz System Clock cin_functions.loadCameraConfigFile(config_dir + "TimingConfig.txt") print "\nSet Trigger Mux to accept external triggers on FP Trigger Input 1 Only" import setTrigger0 # Maps to Front Panel Trigger Input 1 # import setTriggerSW # Set Exposure Time to 1ms cin_functions.WriteReg("8206", "0000", 1) # MS Byte cin_functions.WriteReg("8207", "0032", 1) # LS Byte # Set Int TriggerRate to 100ms cin_functions.WriteReg("8208", "0000", 1) # MS Byte cin_functions.WriteReg("8209", "0064", 1) # LS Byte # Set Num Exposures == 1 cin_functions.WriteReg("820C", "0001", 1) # Power up Front Panel boards & FO Modules import setFPPowerOn time.sleep(0.2) # Wait to allow visual check import set_FOPS_On
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions import time # `def setFPPowerOn(): print " " print "Powering On Front Panel Boards ........ " if cin_functions.WriteReg(cin_register_map.REG_PS_ENABLE, "003F", 1) != 1: print 'Write register could not be verified. Aborting.' sys.exit(1) cin_functions.WriteReg(cin_register_map.REG_COMMAND, cin_register_map.CMD_PS_ENABLE, 1) time.sleep(2)
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import cin_functions import cin_register_map # Convert ms to Hex - 1 count = 1ms cycle_time_d = int(float(sys.argv[1])) # inc is 2x CCD clock if (cycle_time_d == 0): cycle_time_h = "00000001" else: cycle_time_h = str(hex(cycle_time_d)).lstrip("0x").zfill(8) # print cycle_time_h # print cycle_time_h[4:] # print cycle_time_h[0:4] # Write Number of Exposure Time MSB cin_functions.WriteReg(cin_register_map.REG_TRIGGERREPETITIONTIMEMSB_REG, cycle_time_h[0:4], 1) # Write Number of Exposure Time LSB cin_functions.WriteReg(cin_register_map.REG_TRIGGERREPETITIONTIMELSB_REG, cycle_time_h[4:], 1)
if (exp_time_d == 0): exp_time_h = "00000001" else: exp_time_h = str(hex(exp_time_d)).lstrip("0x").zfill(8) #print exp_time_h #print exp_time_h[4:] #print exp_time_h[0:4] # Cycle Time cycle_time_h = str(hex(cycle_time_d)).lstrip("0x").zfill(8) # Number of Exposures num_exps_h = str(hex(num_exps_d)).lstrip("0x").zfill(4) # Write Exposure Time MSB cin_functions.WriteReg(cin_register_map.REG_EXPOSURETIMEMSB_REG, exp_time_h[0:4], 1) # Write Exposure Time LSB cin_functions.WriteReg(cin_register_map.REG_EXPOSURETIMELSB_REG, exp_time_h[4:], 1) # Write Cycle Time MSB cin_functions.WriteReg(cin_register_map.REG_TRIGGERREPETITIONTIMEMSB_REG, cycle_time_h[0:4], 1) # Write Cycle Time LSB cin_functions.WriteReg(cin_register_map.REG_TRIGGERREPETITIONTIMELSB_REG, cycle_time_h[4:], 1) # Write Number of Exposures and Start triggers cin_functions.WriteReg(cin_register_map.REG_NUMBEROFEXPOSURE_REG, num_exps_h, 1)
bitpos = int(sys.argv[3]) width = int(sys.argv[4]) # Select Bit Mask count = 0 maskbit = 0x0000 while (count < width): maskbit = maskbit << 1 maskbit = maskbit | 0x0001 count = count + 1 # Create bit clearing mask temp = maskbit << int(bitpos) clrval = ~temp & 0xFFFF # Create bitwise insert value insval = (maskbit & data) << int(bitpos) # Read Selected Register value regval = cin_functions.ReadReg(addr)[4:] # Clear write location twdata = int(regval, 16) & clrval # Input new data bits wdata = twdata | insval # Format Data word for WriteReg Function data = "{0:0>4}".format(str(hex(wdata)).lstrip("0x")) # Write new data word cin_functions.WriteReg(addr, data, 1) # regval = cin_functions.ReadReg( addr )[4:] # print regval
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import time import cin_constants import cin_register_map import cin_functions ClampVoltage = str(sys.argv[1]) # print ClampVoltage # Device Locator Word cin_functions.WriteReg("821D", "9E00", 0) # Register Address cin_functions.WriteReg("821E", "0001", 0) # Register Data if (ClampVoltage == "1.60"): cin_functions.WriteReg("821F", "8055", 0) elif (ClampVoltage == "1.65"): cin_functions.WriteReg("821F", "8054", 0) elif (ClampVoltage == "1.70"): cin_functions.WriteReg("821F", "8051", 0) elif (ClampVoltage == "1.75"): cin_functions.WriteReg("821F", "8050", 0) elif (ClampVoltage == "1.80"): cin_functions.WriteReg("821F", "8045", 0) elif (ClampVoltage == "1.85"): cin_functions.WriteReg("821F", "8044", 0) elif (ClampVoltage == "1.90"): cin_functions.WriteReg("821F", "8041", 0)
print xaui_stats_vec[-13] + " : XAUI Sync[2]" print xaui_stats_vec[-12] + " : XAUI Sync[1]" print xaui_stats_vec[-11] + " : XAUI Sync[0]" print xaui_stats_vec[-10] + " : XAUI TX Local Fault" print xaui_stats_vec[-9] + " : XAUI RX Local Fault" print xaui_stats_vec[ -7:-5] + " : XAUI Test Mode Testpatern: (00):High (01):Low (10):Mixed" print xaui_stats_vec[-5] + " : XAUI Enable Test Mode" print xaui_stats_vec[-4] + " : XAUI Reset RX Link Status" print xaui_stats_vec[-3] + " : XAUI Reset Local Fault" print xaui_stats_vec[-2] + " : XAUI Power Down" print xaui_stats_vec[-1] + " : XAUI Loopback Mode" cin_functions.WriteReg(cin_register_map.REG_XAUI_FAB1B, "000C", 1) cin_functions.WriteReg(cin_register_map.REG_XAUI_FAB1B, "0000", 1) cin_functions.WriteReg(cin_register_map.REG_MAC_CONFIG_VEC_FAB1B0, "0D9B", 1) cin_functions.WriteReg(cin_register_map.REG_MAC_CONFIG_VEC_FAB1B0, "058B", 1)
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import cin_functions import cin_register_map # Get Value from Trigger Select Register reg_val = cin_functions.ReadReg(cin_register_map.REG_TRIGGERSELECT_REG) # print reg_val[7:] # print reg_val[6:7] # print reg_val[5:6] # print reg_val[4:5] str_val = reg_val[4:5] + reg_val[5:6] + "D" + reg_val[7:] # print str_val cin_functions.WriteReg(cin_register_map.REG_TRIGGERSELECT_REG, str_val, 1)
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions # Mask Triggers & turn off Bias # import setTriggerSW # cin_functions.setCameraOff() # Clamp Mode registers # Write clampr cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0048", 0) cin_functions.WriteReg("821F", "00C7", 0) cin_functions.WriteReg("8001", "0105", 0) cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0049", 0) cin_functions.WriteReg("821F", "004C", 0) cin_functions.WriteReg("8001", "0105", 0) # Write clamp cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0050", 0) cin_functions.WriteReg("821F", "00B4", 0) cin_functions.WriteReg("8001", "0105", 0) cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0051", 0) cin_functions.WriteReg("821F", "0002", 0)
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions import time cin_functions.WriteReg(cin_register_map.REG_FCRIC_MASK_REG1, "0000", 0) cin_functions.WriteReg(cin_register_map.REG_FCRIC_MASK_REG2, "0000", 0) cin_functions.WriteReg(cin_register_map.REG_FCRIC_MASK_REG3, "0000", 0)
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import cin_functions import cin_register_map cin_functions.clearFocusBit() # Convert Decimal to Hex string num_exp = str(hex(int(sys.argv[1])).lstrip("0x")).zfill(4) # print num_exp # Write Number of Exposures to CIN cin_functions.WriteReg(cin_register_map.REG_NUMBEROFEXPOSURE_REG, num_exp, 1) # Debug... # reg_val = cin_functions.ReadReg(cin_register_map.REG_NUMBEROFEXPOSURE_REG) # print reg_val if (int(sys.argv[1]) > 1): cin_functions.setFocusBit()
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions import time cin_functions.WriteReg(cin_register_map.REG_CDICLKDISABLE_REG, "0001", 0)
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions import time cin_functions.WriteReg(cin_register_map.REG_TRIGGERMASK_REG, "0001", 0)
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import cin_functions import cin_register_map # Convert ms to Hex - 1 count = 10us exp_time_d = int(float(sys.argv[1]) * 100) #inc is 2x CCD clock if (exp_time_d == 0): exp_time_h = "00000001" else: exp_time_h = str(hex(exp_time_d)).lstrip("0x").zfill(8) #print exp_time_h #print exp_time_h[4:] #print exp_time_h[0:4] # Write Number of Exposure Time MSB cin_functions.WriteReg(cin_register_map.REG_EXPOSURETIMEMSB_REG, exp_time_h[0:4], 1) # Write Number of Exposure Time LSB cin_functions.WriteReg(cin_register_map.REG_EXPOSURETIMELSB_REG, exp_time_h[4:], 1)
import time # def getFCLK(): print " " print "**** CIN FCLK Configuration ****\n" regval = cin_functions.ReadReg(cin_register_map.REG_FCLK_I2C_DATA_WR) print " FCLK OSC MUX SELECT : 0x" + regval[4:] if (regval[4:5] == "F"): # Freeze DCO cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, "B189", 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0) reg_val = cin_functions.ReadReg(cin_register_map.REG_FCLK_I2C_DATA_RD) if (reg_val[6:] != "08"): print " Status Reg : 0x" + reg_val[6:] cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, "B107", 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0) reg_val7 = cin_functions.ReadReg(cin_register_map.REG_FCLK_I2C_DATA_RD) cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, "B108", 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0) reg_val8 = cin_functions.ReadReg(cin_register_map.REG_FCLK_I2C_DATA_RD) cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, "B109", 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0)
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import cin_functions import cin_register_map # Convert us to Hex - 1 count = 1us time_d = int(float(sys.argv[1])) # print time_d time_h = str(hex(time_d)).lstrip("0x").zfill(8) # print time_h # print time_h[4:] # print time_h[0:4] # Write Number of Exposure Time MSB cin_functions.WriteReg(cin_register_map.REG_DELAYTOEXPOSUREMSB_REG, time_h[0:4], 1) # Write Number of Exposure Time LSB cin_functions.WriteReg(cin_register_map.REG_DELAYTOEXPOSURELSB_REG, time_h[4:], 1)
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import cin_functions import cin_register_map # Clear the Focus bit cin_functions.clearFocusBit() # Set Number of Exposures to value = 0000 cin_functions.WriteReg(cin_register_map.REG_NUMBEROFEXPOSURE_REG, "0000", 1) # Set the Focus bit cin_functions.setFocusBit() # Start Triggers cin_functions.WriteReg("8001", "0100", 1)
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions # Mask Triggers & turn off Bias # import setTriggerSW # cin_functions.setCameraOff() # Write Gain x8 cin_functions.WriteReg("821D", "A000", 0) cin_functions.WriteReg("821E", "0086", 0) cin_functions.WriteReg("821F", "0000", 0) cin_functions.WriteReg("8001", "0105", 0) # Bias On & allow Ext Triggers # cin_functions.setCameraOn() # import setTrigger0
#! /usr/bin/python # -*- coding: utf-8 -*- import sys import cin_constants import cin_register_map import cin_functions import time setFreq = str(sys.argv[1]) # print setFreq print "\n**** Set CIN External FCLK to " + setFreq + "MHz" if (setFreq == "125"): # Set & Enable 125MHz XO cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_DATA_WR, "B000", 0) elif (setFreq == "200"): # Set & Enable 200MHz XO cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_DATA_WR, "7000", 0) elif (setFreq == "250"): # Set & Enable 250MHz XO cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_DATA_WR, "3000", 0) else: print "Invalid FCLK Frequency\n" print "Currently only 125MHz, 200MHz and 250MHz are Supported\n"
def writeFClkReg(addr, data): cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_ADDRESS, addr, 0) cin_functions.WriteReg(cin_register_map.REG_FCLK_I2C_DATA_WR, data, 0) cin_functions.WriteReg(cin_register_map.REG_FRM_COMMAND, cin_register_map.CMD_FCLK_COMMIT, 0) time.sleep(0.2)
#! /usr/bin/python # -*- coding: utf-8 -*- import cin_constants import cin_register_map import cin_functions import time cin_functions.loadCameraConfigFile("/home/user/CVSSandbox/QT/CINController/config/2013_Nov_25-200_MHz_fCRIC_timing.txt") # ./setReg.py 8212 00e0 Mask the bad signal lines FCRIC to CIN cin_functions.WriteReg("8211", "E000", 1) cin_functions.WriteReg("8212", "00E0", 1) raw_input("\nConfiguration Data sent to all fCRICs (Press Enter Key to Exit)")