Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
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")
Ejemplo n.º 3
0
#! /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)
Ejemplo n.º 4
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
Ejemplo n.º 7
0
#! /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)
Ejemplo n.º 8
0
#! /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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
#! /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)
Ejemplo n.º 12
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)
Ejemplo n.º 16
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()
Ejemplo n.º 17
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_CDICLKDISABLE_REG, "0001", 0)
Ejemplo n.º 18
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)
Ejemplo n.º 19
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)
Ejemplo n.º 20
0
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)
Ejemplo n.º 23
0
#! /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
Ejemplo n.º 24
0
#! /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"
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
#! /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)")