mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-22 18:04:03 +08:00
sinara_tester: break apart legacyalmazy, add almazny tests
This commit is contained in:
parent
793f8a3c8c
commit
20c67aca23
@ -61,6 +61,7 @@ class SinaraTester(EnvExperiment):
|
|||||||
self.mirnies = dict()
|
self.mirnies = dict()
|
||||||
self.suservos = dict()
|
self.suservos = dict()
|
||||||
self.suschannels = dict()
|
self.suschannels = dict()
|
||||||
|
self.legacy_almaznys = dict()
|
||||||
self.almaznys = dict()
|
self.almaznys = dict()
|
||||||
self.shuttler = dict()
|
self.shuttler = dict()
|
||||||
|
|
||||||
@ -101,6 +102,8 @@ class SinaraTester(EnvExperiment):
|
|||||||
elif (module, cls) == ("artiq.coredevice.suservo", "Channel"):
|
elif (module, cls) == ("artiq.coredevice.suservo", "Channel"):
|
||||||
self.suschannels[name] = self.get_device(name)
|
self.suschannels[name] = self.get_device(name)
|
||||||
elif (module, cls) == ("artiq.coredevice.almazny", "AlmaznyLegacy"):
|
elif (module, cls) == ("artiq.coredevice.almazny", "AlmaznyLegacy"):
|
||||||
|
self.legacy_almaznys[name] = self.get_device(name)
|
||||||
|
elif (module, cls) == ("artiq.coredevice.almazny", "AlmaznyChannel"):
|
||||||
self.almaznys[name] = self.get_device(name)
|
self.almaznys[name] = self.get_device(name)
|
||||||
elif (module, cls) == ("artiq.coredevice.shuttler", "Config"):
|
elif (module, cls) == ("artiq.coredevice.shuttler", "Config"):
|
||||||
shuttler_name = name.replace("_config", "")
|
shuttler_name = name.replace("_config", "")
|
||||||
@ -370,36 +373,35 @@ class SinaraTester(EnvExperiment):
|
|||||||
channel.pulse(100*ms)
|
channel.pulse(100*ms)
|
||||||
delay(100*ms)
|
delay(100*ms)
|
||||||
@kernel
|
@kernel
|
||||||
def init_almazny(self, almazny):
|
def init_legacy_almazny(self, almazny):
|
||||||
self.core.break_realtime()
|
self.core.break_realtime()
|
||||||
almazny.init()
|
almazny.init()
|
||||||
almazny.output_toggle(True)
|
almazny.output_toggle(True)
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def almazny_set_attenuators_mu(self, almazny, ch, atts):
|
def legacy_almazny_set_attenuators_mu(self, almazny, ch, atts):
|
||||||
self.core.break_realtime()
|
self.core.break_realtime()
|
||||||
almazny.set_att_mu(ch, atts)
|
almazny.set_att_mu(ch, atts)
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def almazny_set_attenuators(self, almazny, ch, atts):
|
def legacy_almazny_set_attenuators(self, almazny, ch, atts):
|
||||||
self.core.break_realtime()
|
self.core.break_realtime()
|
||||||
almazny.set_att(ch, atts)
|
almazny.set_att(ch, atts)
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def almazny_toggle_output(self, almazny, rf_on):
|
def legacy_almazny_toggle_output(self, almazny, rf_on):
|
||||||
self.core.break_realtime()
|
self.core.break_realtime()
|
||||||
almazny.output_toggle(rf_on)
|
almazny.output_toggle(rf_on)
|
||||||
|
|
||||||
def test_almaznys(self):
|
def test_legacy_almaznys(self):
|
||||||
print("*** Testing Almaznys.")
|
print("*** Testing legacy Almaznys (v1.1 or older).")
|
||||||
for name, almazny in sorted(self.almaznys.items(), key=lambda x: x[0]):
|
for name, almazny in sorted(self.legacy_almaznys.items(), key=lambda x: x[0]):
|
||||||
print(name + "...")
|
print(name + "...")
|
||||||
print("Initializing Mirny CPLDs...")
|
print("Initializing Mirny CPLDs...")
|
||||||
for name, cpld in sorted(self.mirny_cplds.items(), key=lambda x: x[0]):
|
for name, cpld in sorted(self.mirny_cplds.items(), key=lambda x: x[0]):
|
||||||
print(name + "...")
|
print(name + "...")
|
||||||
self.init_mirny(cpld)
|
self.init_mirny(cpld)
|
||||||
print("...done")
|
print("...done")
|
||||||
|
|
||||||
print("Testing attenuators. Frequencies:")
|
print("Testing attenuators. Frequencies:")
|
||||||
for card_n, channels in enumerate(chunker(self.mirnies, 4)):
|
for card_n, channels in enumerate(chunker(self.mirnies, 4)):
|
||||||
for channel_n, (channel_name, channel_dev) in enumerate(channels):
|
for channel_n, (channel_name, channel_dev) in enumerate(channels):
|
||||||
@ -407,31 +409,68 @@ class SinaraTester(EnvExperiment):
|
|||||||
print("{}\t{}MHz".format(channel_name, frequency*2))
|
print("{}\t{}MHz".format(channel_name, frequency*2))
|
||||||
self.setup_mirny(channel_dev, frequency)
|
self.setup_mirny(channel_dev, frequency)
|
||||||
print("{} info: {}".format(channel_name, channel_dev.info()))
|
print("{} info: {}".format(channel_name, channel_dev.info()))
|
||||||
self.init_almazny(almazny)
|
self.init_legacy_almazny(almazny)
|
||||||
print("RF ON, all attenuators ON. Press ENTER when done.")
|
print("RF ON, all attenuators ON. Press ENTER when done.")
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.almazny_set_attenuators_mu(almazny, i, 63)
|
self.legacy_almazny_set_attenuators_mu(almazny, i, 63)
|
||||||
input()
|
input()
|
||||||
print("RF ON, half power attenuators ON. Press ENTER when done.")
|
print("RF ON, half power attenuators ON. Press ENTER when done.")
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.almazny_set_attenuators(almazny, i, 15.5)
|
self.legacy_almazny_set_attenuators(almazny, i, 15.5)
|
||||||
input()
|
input()
|
||||||
print("RF ON, all attenuators OFF. Press ENTER when done.")
|
print("RF ON, all attenuators OFF. Press ENTER when done.")
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.almazny_set_attenuators(almazny, i, 0)
|
self.legacy_almazny_set_attenuators(almazny, i, 0)
|
||||||
input()
|
input()
|
||||||
print("SR outputs are OFF. Press ENTER when done.")
|
print("SR outputs are OFF. Press ENTER when done.")
|
||||||
self.almazny_toggle_output(almazny, False)
|
self.legacy_almazny_toggle_output(almazny, False)
|
||||||
input()
|
input()
|
||||||
print("RF ON, all attenuators are ON. Press ENTER when done.")
|
print("RF ON, all attenuators are ON. Press ENTER when done.")
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.almazny_set_attenuators(almazny, i, 31.5)
|
self.legacy_almazny_set_attenuators(almazny, i, 31.5)
|
||||||
self.almazny_toggle_output(almazny, True)
|
self.legacy_almazny_toggle_output(almazny, True)
|
||||||
input()
|
input()
|
||||||
print("RF OFF. Press ENTER when done.")
|
print("RF OFF. Press ENTER when done.")
|
||||||
self.almazny_toggle_output(almazny, False)
|
self.legacy_almazny_toggle_output(almazny, False)
|
||||||
input()
|
input()
|
||||||
|
|
||||||
|
def almazny_led_wave(self, almaznys):
|
||||||
|
while not is_enter_pressed():
|
||||||
|
self.core.break_realtime()
|
||||||
|
# do not fill the FIFOs too much to avoid long response times
|
||||||
|
t = now_mu() - self.core.seconds_to_mu(0.2)
|
||||||
|
while self.core.get_rtio_counter_mu() < t:
|
||||||
|
pass
|
||||||
|
for almazny in almaznys:
|
||||||
|
almazny.set(31.5, False, True)
|
||||||
|
delay(100*ms)
|
||||||
|
almazny.set(31.5, False, False)
|
||||||
|
|
||||||
|
def almazny_set_att_all(self, almaznys, att):
|
||||||
|
for almazny in almaznys:
|
||||||
|
almazny.set(att, False, True)
|
||||||
|
|
||||||
|
def test_almaznys(self):
|
||||||
|
print("*** Testing Almaznys (v1.2+).")
|
||||||
|
print("Initializing Mirny CPLDs...")
|
||||||
|
for name, cpld in sorted(self.mirny_cplds.items(), key=lambda x: x[0]):
|
||||||
|
print(name + "...")
|
||||||
|
self.init_mirny(cpld)
|
||||||
|
print("...done")
|
||||||
|
print("Frequencies:")
|
||||||
|
for card_n, channels in enumerate(chunker(self.mirnies, 4)):
|
||||||
|
for channel_n, (channel_name, channel_dev) in enumerate(channels):
|
||||||
|
frequency = 2000 + card_n * 250 + channel_n * 50
|
||||||
|
print("{}\t{}MHz".format(channel_name, frequency*2))
|
||||||
|
self.setup_mirny(channel_dev, frequency)
|
||||||
|
print("RF On, half power attenuators ON. Press ENTER when done.")
|
||||||
|
self.almazny_set_att_all(self.almaznys, 15.5)
|
||||||
|
input()
|
||||||
|
print("RF On, all attenuators ON. Press ENTER when done.")
|
||||||
|
self.almazny_set_att_all(self.almaznys, 31.5)
|
||||||
|
print("RF Off, testing LEDs. Press ENTER when done.")
|
||||||
|
self.almazny_led_wave(self.almaznys)
|
||||||
|
|
||||||
def test_mirnies(self):
|
def test_mirnies(self):
|
||||||
print("*** Testing Mirny PLLs.")
|
print("*** Testing Mirny PLLs.")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user