Hi,
I want to use the set_group function with fastino. I have read the documentation as well as some discussions in this forum. I know that log2_width has to be in device_db and this value must match the corresponding value in the RTIO PHY (gateware).
I am using Artiq v8.0+df15f53.beta with the gateware definition in the json file
{
"target": "kasli",
"hw_rev": "v1.1",
"base": "standalone",
"peripherals": [
{
"type": "fastino",
"ports": [6],
"hw_rev": "v1.1",
"log2_width": 5
}
]
}
I am using Linux qc-lc-10 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux and vivado 2022.2.
My device_db is
device_db["fastino0"] = {
"type": "local",
"module": "artiq.coredevice.fastino",
"class": "Fastino",
"arguments": {"channel": 0x00001f, "log2_width": 5}
}
When log2_width is 0, then it is working properly. I am able to control each channel of the fastino individually by using set_dac function.
When log2_width is 5, then it does not work properly. I can control channel 0 of the fastino with the set_dac function, but not another channel, and set_group does not produce any voltage change, nor does it produce any error.
A minimal code I tested for set_group is:
`from artiq.experiment import *
from artiq.coredevice import core, fastino
from artiq.language import delay, delay_mu, now_mu
class SetFastinoChannel(EnvExperiment):
def build(self):
self.setattr_device("core")
self.setattr_device("fastino0")
@kernel
def run(self):
self.core.reset()
f = self.fastino0
f.init()
delay((10 * ms))
listvolt = [2 for _ in range(0, 32)]
f.set_group(0, listvolt) `
I would appreciate any help or advice on what I am doing wrong.