예제 #1
0
    def __init__(self, device=None):
        if device is None:
            self.fifo = AXIS_FIFO()
        else:
            self.fifo = AXIS_FIFO(device)
        #SPI config register
        #sets device in active mode
        self.fifo.write_axis_fifo("\x00\x03\x0A\x84")
        #GEN config
        #activate internal ref
        self.fifo.write_axis_fifo("\x00\x04\x3F\x00")
        #BRDCONFIG - disable broadcast mode
        self.fifo.write_axis_fifo("\x00\x05\x00\x00")
        #SYNCCONFIG - leave at default
        self.fifo.write_axis_fifo("\x00\x06\x00\x00")
        #TOGGCONFIG0 - leave at default
        self.fifo.write_axis_fifo("\x00\x07\x00\x00")
        #TOGGCONFIG1 - leave at default
        self.fifo.write_axis_fifo("\x00\x08\x00\x00")
        #DACRANGE set to +-10V
        self.fifo.write_axis_fifo("\x00\x0A\xAA\xAA")
        #DACRANGE set to +-10V
        self.fifo.write_axis_fifo("\x00\x0B\xAA\xAA")
        #DACRANGE set to +-10V
        self.fifo.write_axis_fifo("\x00\x0C\xAA\xAA")
        #DACRANGE set to +-10V
        self.fifo.write_axis_fifo("\x00\x0D\xAA\xAA")
        #TRIGGER - leave at default
        self.fifo.write_axis_fifo("\x00\x0E\x00\x00")
        #power down control
        self.fifo.write_axis_fifo("\x00\x09\x00\x00")

        for channel in range(16):
            self.set_DAC(channel, 256 * 128)
예제 #2
0
  def __init__(self, device, device_atw_seq, device_ftw_seq, main_seq):
    #self.dds   = AD9959(device) # initialize DDS   -- not needed for now

    self.gpio2 = AXI_GPIO(gpio_devices['axi_gpio_2'])

    self.fifo_dds_atw_seq = AXIS_FIFO(device_atw_seq)
    self.fifo_dds_ftw_seq = AXIS_FIFO(device_ftw_seq)
    self.fifo_main_seq    = AXIS_FIFO(main_seq)
예제 #3
0
 def __init__(self, dac_a, dac_b, device_seq0, device_seq1, main_seq):
     self.dac_a = dac_a
     DAC81416(dac_a)  # initialize DAC
     self.dac_b = dac_b
     DAC81416(dac_b)  # initialize DAC
     self.gpio2 = AXI_GPIO(gpio_devices['axi_gpio_2'])
     self.fifo_dac_seq0 = AXIS_FIFO(device_seq0)
     self.fifo_dac_seq1 = AXIS_FIFO(device_seq1)
     self.fifo_main_seq = AXIS_FIFO(main_seq)
예제 #4
0
def program():
    fifo = AXIS_FIFO(fifo_devices['GPIO_seq'])
    points = []
    points.append(GPIO_seq_point(address=0, time=0, output=0xFFFFFFFF))
    points.append(GPIO_seq_point(address=1, time=10000, output=0x00000000))
    points.append(GPIO_seq_point(address=2, time=20000, output=0xFFFFFFFF))
    points.append(GPIO_seq_point(address=3, time=30000, output=0x00000000))
    points.append(GPIO_seq_point(address=4, time=0, output=0x00000000))

    for point in points:
        write_point(fifo, point)
예제 #5
0
	def __init__(self):
		self.dacRes = 65535 #0xffff
		self.dacRange = [-10, 10]

		self.dacIncrMax = 0xffffffff # 32bit
		self.dacRampTimeRes = 2000 #20us in the unit of system clk (10ns)
		self.ddsAmpRange = [0, 5]
		self.ddsFreqRange = [0, 500]

		self.accUpdateFreq = 1.0 # accumulator update freq in MHz, not really used, for reminder
		self.ddsUpdateFreq = 50.0 # dds update freq in kHz, not really used, for reminder

		self.ddsFreqRangeConv = 0xffffffff / 500.0  #8589930 # (2^32 - 1)/500 MHz
		self.ddsAmpRangeConv = 0x3ff/100 # (2^10 - 1)/100
		
		self.ddsFreqIncMax = 0xfffffffffff # 32 ftw + 12 acc = 44bit
		self.ddsAmpIncMax = 0x3fffff # 10 atw + 12 acc = 22bit
		# self.ddsTimeRes = 1.0e3 # in us
		
		# initialize DACs
		self.dac0 = DAC81416(fifo_devices['DAC81416_0'])
		self.dac1 = DAC81416(fifo_devices['DAC81416_1'])
		self.dds0 = AD9959(fifo_devices['AD9959_0'])
		self.dds1 = AD9959(fifo_devices['AD9959_1'])
		self.dds2 = AD9959(fifo_devices['AD9959_2'])
		self.fifo_dac0_seq = AXIS_FIFO(fifo_devices['DAC81416_0_seq'])
		self.fifo_dac1_seq = AXIS_FIFO(fifo_devices['DAC81416_1_seq'])
		dds_lock_pll.dds_lock_pll()

		# initialize DDSs
		self.fifo_dds0_atw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_atw'])
		self.fifo_dds0_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_ftw'])
		self.fifo_dds1_atw_seq = AXIS_FIFO(fifo_devices['AD9959_1_seq_atw'])
		self.fifo_dds1_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_1_seq_ftw'])
		self.fifo_dds2_atw_seq = AXIS_FIFO(fifo_devices['AD9959_2_seq_atw'])
		self.fifo_dds2_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_2_seq_ftw'])
		# self.dds = AD9959(dds_device) # initialize DDS
		self.gpio2 = AXI_GPIO(gpio_devices['axi_gpio_2'])
		self.fifo_dio_seq = AXIS_FIFO(fifo_devices['GPIO_seq'])

		reset()
 def __init__(self):
     self.dacRes = 65536
     self.dacRange = [-10, 10]
     self.dacRangeConv = float(167772) / self.dacRes
     self.dacIncrMax = 268435455
     self.dacTimeRes = 1.6e3  # in us
     self.ddsAmpRange = [0, 5]
     self.ddsFreqRange = [0, 500]
     self.ddsFreqRangeConv = 8589930  # (2^32 - 1)/500 MHz
     self.ddsAmpRangeConv = 818.4  # (2^10 - 1)/1.25 mW
     self.ddsTimeRes = 1.6e3  # in us
     # initialize DACs
     self.dac0 = DAC81416(fifo_devices['DAC81416_0'])
     self.dac1 = DAC81416(fifo_devices['DAC81416_1'])
     self.dds0 = AD9959(fifo_devices['AD9959_0'])
     self.dds1 = AD9959(fifo_devices['AD9959_1'])
     self.dds2 = AD9959(fifo_devices['AD9959_2'])
     self.fifo_dac0_seq = AXIS_FIFO(fifo_devices['DAC81416_0_seq'])
     self.fifo_dac1_seq = AXIS_FIFO(fifo_devices['DAC81416_1_seq'])
     # initialize DDSs
     self.fifo_dds_atw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_atw'])
     self.fifo_dds_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_ftw'])
     self.fifo_dds0_atw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_atw'])
     self.fifo_dds0_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_ftw'])
     self.fifo_dds1_atw_seq = AXIS_FIFO(fifo_devices['AD9959_1_seq_atw'])
     self.fifo_dds1_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_1_seq_ftw'])
     self.fifo_dds2_atw_seq = AXIS_FIFO(fifo_devices['AD9959_2_seq_atw'])
     self.fifo_dds2_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_2_seq_ftw'])
     # self.dds = AD9959(dds_device) # initialize DDS
     self.gpio2 = AXI_GPIO(gpio_devices['axi_gpio_2'])
     self.fifo_dio_seq = AXIS_FIFO(fifo_devices['GPIO_seq'])
예제 #7
0
from axis_fifo import AXIS_FIFO
from devices import fifo_devices
import struct

fifo = AXIS_FIFO(fifo_devices['AD9959_0'])

#Function Register 1 (FR1)
fifo.write_axis_fifo("\x00\x80\x00\x00")
fifo.write_axis_fifo("\x00\xC0\x00\x00")


예제 #8
0
    def __init__(self):
        self.dacRes = 65536  #0xffff
        self.dacRange = [-10, 10]
        self.dacRangeConv = float(167772) / self.dacRes

        self.dacIncrMax = 0xfffffff  # 16 atw + 12 acc = 28bit #268435455
        # self.dacTimeRes = 1.6e3 # in us

        self.ddsAmpRange = [0, 5]
        self.ddsFreqRange = [0, 500]

        self.accUpdateFreq = 1.0  # accumulator update freq in MHz, not really used, for reminder
        self.ddsUpdateFreq = 50.0  # dds update freq in kHz, not really used, for reminder

        self.ddsFreqRangeConv = 0xffffffff / 500.0  #8589930 # (2^32 - 1)/500 MHz
        self.ddsAmpRangeConv = 0x3ff / 1.25  #818.4 # (2^10 - 1)/1.25 mW

        self.ddsFreqIncMax = 0xfffffffffff  # 32 ftw + 12 acc = 44bit
        self.ddsAmpIncMax = 0x3fffff  # 10 atw + 12 acc = 22bit
        # self.ddsTimeRes = 1.0e3 # in us

        # initialize DACs
        self.dac0 = DAC81416(fifo_devices['DAC81416_0'])
        self.dac1 = DAC81416(fifo_devices['DAC81416_1'])
        self.dds0 = AD9959(fifo_devices['AD9959_0'])
        self.dds1 = AD9959(fifo_devices['AD9959_1'])
        self.dds2 = AD9959(fifo_devices['AD9959_2'])
        self.fifo_dac0_seq = AXIS_FIFO(fifo_devices['DAC81416_0_seq'])
        self.fifo_dac1_seq = AXIS_FIFO(fifo_devices['DAC81416_1_seq'])
        # initialize DDSs
        self.fifo_dds_atw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_atw'])
        self.fifo_dds_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_ftw'])
        self.fifo_dds0_atw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_atw'])
        self.fifo_dds0_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_0_seq_ftw'])
        self.fifo_dds1_atw_seq = AXIS_FIFO(fifo_devices['AD9959_1_seq_atw'])
        self.fifo_dds1_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_1_seq_ftw'])
        self.fifo_dds2_atw_seq = AXIS_FIFO(fifo_devices['AD9959_2_seq_atw'])
        self.fifo_dds2_ftw_seq = AXIS_FIFO(fifo_devices['AD9959_2_seq_ftw'])
        # self.dds = AD9959(dds_device) # initialize DDS
        self.gpio2 = AXI_GPIO(gpio_devices['axi_gpio_2'])
        self.fifo_dio_seq = AXIS_FIFO(fifo_devices['GPIO_seq'])
예제 #9
0
 def __init__(self, device=None):
     self.device = device
     if device is None:
         self.fifo = AXIS_FIFO()
     else:
         self.fifo = AXIS_FIFO(device)