Skip to content

Instantly share code, notes, and snippets.

@mfe5003
Created August 25, 2018 15:47
Show Gist options
  • Save mfe5003/6baba612b354163b09f645d7cd392408 to your computer and use it in GitHub Desktop.
Save mfe5003/6baba612b354163b09f645d7cd392408 to your computer and use it in GitHub Desktop.
dds RAM mode test experiment
from artiq.experiment import *
import numpy as np
class DDSTest(EnvExperiment):
def build(self):
self.setattr_device("core")
self.setattr_device("core_dma")
self.setattr_device("led0")
self.setattr_device("ttl4")
self.setattr_device("urukul0_cpld")
self.setattr_device("urukul0_ch0")
@kernel
def record(self):
with self.core_dma.record("pulses"):
words = self.urukul0_ch0.set_ram_profile_mu(
wvfm_start=0,
wvfm_end=100,
addr_step_rate=400,
mode=3,
profile=0
)
amps = [0.99/words]*words
for i in range(len(amps)-1):
amps[i+1] += amps[i]
self.urukul0_ch0.write_ram_amps(amps, words)
@kernel
def run(self):
self.core.reset()
self.led0.off()
self.urukul0_cpld.init()
self.urukul0_ch0.init()
self.led0.on()
self.ttl4.output()
self.ttl4.off()
self.urukul0_ch0.set_ftw(3e6)
self.urukul0_ch0.sw.on()
self.record()
pulses_handle = self.core_dma.get_handle("pulses")
self.core.break_realtime()
self.core_dma.playback_handle(pulses_handle)
# words = self.urukul0_ch0.set_ram_profile_mu(
# wvfm_start=0,
# wvfm_end=100,
# addr_step_rate=400,
# mode=3,
# profile=0
# )
# amps = [0.99/words]*words
# for i in range(len(amps)-1):
# amps[i+1] += amps[i]
# self.urukul0_ch0.write_ram_amps(amps, words)
self.urukul0_cpld.io_update.pulse(10*ns)
self.urukul0_ch0.set_ram_mode(1,2)
self.urukul0_cpld.io_update.pulse(10*ns)
self.ttl4.pulse(1*us)
delay(10*ms)
self.urukul0_ch0.sw.off()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment