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)
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)
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)
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)
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'])
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")
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'])
def __init__(self, device=None): self.device = device if device is None: self.fifo = AXIS_FIFO() else: self.fifo = AXIS_FIFO(device)