Merge pull request #1628 from pathfinder49/fastino_mu_fix

fastino: ensure `xxx_to_mu()` methods return int32 on the host
This commit is contained in:
Robert Jördens 2021-04-15 15:02:12 +02:00 committed by GitHub
commit ffe1c9f9b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,7 @@
"""RTIO driver for the Fastino 32channel, 16 bit, 2.5 MS/s per channel,
streaming DAC.
"""
from numpy import int32
from artiq.language.core import kernel, portable, delay
from artiq.coredevice.rtio import (rtio_output, rtio_output_wide,
@ -112,7 +113,7 @@ class Fastino:
:param voltage: Voltage in SI Volts.
:return: DAC data word in machine units, 16 bit integer.
"""
data = int(round((0x8000/10.)*voltage)) + 0x8000
data = int32(round((0x8000/10.)*voltage)) + int32(0x8000)
if data < 0 or data > 0xffff:
raise ValueError("DAC voltage out of bounds")
return data
@ -129,7 +130,7 @@ class Fastino:
v = self.voltage_to_mu(voltage[i])
if i & 1:
v = data[i // 2] | (v << 16)
data[i // 2] = v
data[i // 2] = int32(v)
@kernel
def set_dac(self, dac, voltage):