I came across this while trying to switch a DDS on and off with a long duty cycle (1 second). However, I have identified that the problem is ultimately with TTLs in general.
When a TTL is turned on, it seems that there is some maximum time after which the TTL no longer responds to future commands.
The minimal example which reproduces this behavior is as follows.
from artiq.experiment import *
class TestTTL(EnvExperiment):
def build(self):
self.core = self.get_device("core")
self.ttl = self.get_device("ttl5")
@kernel
def run(self):
self.core.reset()
print(self.N)
self.core.break_realtime()
for _ in range(5):
self.ttl.on()
delay(1*s)
self.ttl.off()
delay(1*s)
I do not know if this is a general behavior common to other crates, since I only have the one to test on.
I am using artiq release 7, gateware version 7.8123.3038639.
Please advise if anyone knows why this behavior might be happening, and if there is anything we can do to avoid it.