sinarads/examples/suservo.py

38 lines
1.2 KiB
Python

from artiq.experiment import *
from scipy import signal
import numpy
class SUServoExample(EnvExperiment):
def build(self):
self.setattr_device("core")
self.suservo = self.get_device("suservo0")
self.suschannels = [
self.get_device("suservo0_ch0")
]
@kernel
def run(self):
self.core.reset()
self.core.break_realtime()
self.suservo.init()
self.suservo.set_pgia_mu(0, 0) # unity gain
self.suservo.cplds[0].set_att(0, 15.)
self.suschannels[0].set_y(profile=0, y=0.) # Clear integrator
self.suschannels[0].set_iir(
profile=0,
adc=0, # take data from Sampler channel 0
kp=-1., # -1 P gain
ki=0./s, # no integrator gain
g=0., # no integrator gain limit
delay=0. # no IIR update delay after enabling
)
self.suschannels[0].set_dds(
profile=0,
offset=-.3, # 3 V with above PGIA settings
frequency=10*MHz,
phase=0.)
# enable RF, IIR updates and set profile
self.suschannels[0].set(en_out=1, en_iir=1, profile=0)
self.suservo.set_config(enable=1)