Thanks for the info.
But I think there is still some strange problem with the detection of the PLL.
When initializing the CPLD and the PLL with their init()
functions, I can run that script as often as I want and everything is ok:
`from artiq.experiment import *
from artiq.coredevice.mirny import *
class Mirny(EnvExperiment):
def build(self):
self.setattr_device("core")
#print(self.get_device_db())
self.setattr_device("mirny0_cpld")
self.setattr_device("mirny0_ch0")
def run(self):
self.do()
@kernel
def do(self):
self.core.reset()
self.core.break_realtime()
mirny = self.mirny0_ch0
delay(10*ms)
mirny.cpld.init()
delay(10*ms)
mirny.init()
mirny.set_att_mu(255)
mirny.sw.on()
mirny.set_frequency(125e6)
delay(10*ms)`
But when I additionally program the registers manually, it fails randomly, about every second try, with "MUXOUT not high":
`from artiq.experiment import *
from artiq.coredevice.mirny import *
class Mirny(EnvExperiment):
def build(self):
self.setattr_device("core")
self.setattr_device("mirny0_cpld")
self.setattr_device("mirny0_ch0")
def run(self):
self.do()
@kernel
def do(self):
self.core.reset()
self.core.break_realtime()
mirny = self.mirny0_ch0
delay(10*ms)
mirny.cpld.init()
delay(10*ms)
mirny.init()
mirny.set_att_mu(255)
mirny.sw.on()
mirny.set_frequency(125e6)
delay(10*ms)
mirny.regs[0] = 0x200200
mirny.regs[1] = 0x1
mirny.regs[2] = 0x12
mirny.regs[3] = 0x20000003
mirny.regs[4] = 0x30100984
mirny.regs[5] = 0x800025
mirny.regs[6] = 0x34A3C0F6
mirny.regs[7] = 0x12000067
mirny.regs[8] = 0x102D0428
mirny.regs[9] = 0x201FCC9
mirny.regs[10] = 0xC002BA
mirny.regs[11] = 0x61300B
mirny.regs[12] = 0xFFFF041C
mirny.sync()`