- Edited
Hello,
I am currently testing three Urukuls (run with Kasli v.2 and Artiq-6), and I want to ask about their expected performance.
I have already found on the forum that there is a time delay when changing the DDS output parameters (frequency, amplitude) that was estimated to be 1.3 us. Is there any measure to reduce this time?
()
There is a delay of > 3us when turning off a DDS output, is it expected?
I observe phase drifts between experiments when I compare output of two channels (both on different Urukuls and on the same one). Phase drifts occur also when I compare channels without red lights on. What could be the reason for that? The DDSs have clocking from Kasli (125 MHz I suppose), and Kasli, in turn, gets an external clock signal at 10 MHz. Below I attach scope prints for comparison. These are two attempts to run the same code.
Partially related to the question above - I keep seeing red lights at the output channels of the DDSs, but not at all of them. The red lights seem to switch on and off in a random manner when running different programs. Some of them are on and others are off when no program is running (all dds are
sw.off()
properly). Did anyone have similar experience? Could it be related to the issues with PPLs? The device does not overheat (as this could be one of the potential problems).
Below, I attach a relevant part of my code.
@kernel
def run(self):
self.core.reset() #initiate the core module
delay(1*ms)
self.ttl5.output()
self.urukul2_cpld.init()
delay(1*ms)
self.urukul2_ch1.init() #initialise and configure the DDS channel
delay(1*ms)
FREQ_MHZ =20*MHz
self.urukul2_ch1.set_att(10.0) #set digital step attenuator in SI units
self.urukul2_ch1.set(FREQ_MHZ,1.0,1.0) #sets freq in MHz, amplitude and phase
self.urukul2_ch1.sw.on() #turn on the DDS ouput
delay(2*s)
# self.urukul2_ch1.sw.off() #turn off the DDS output
self.urukul2_ch1.sw.off()
delay(500*ns)
self.urukul2_ch1.set(FREQ2_MHZ,1.0,1.0)
delay(500*ns)
with parallel: #turn on the ttl mark at the same moment as DDS changes freq (use ttl as a mark on a scope)
self.urukul2_ch1.sw.on()
self.ttl5.on()
delay(20*ms)
self.ttl5.off()
delay(90*s)
self.urukul2_ch1.sw.off()