atomiq.components.sinara.dac module¶
- class atomiq.components.sinara.dac.Zotino(zotino_device, *args, max_parallel_arbs=5, max_arb_samples=128, **kwargs)[source]¶
Bases:
DAC
This class represents the Sinara Zotino 32 Channel DAC.
Hint
The Zotino provides the
Zotino.parallel_arb
context manager which allows to play arbitrary waveforms and ramps on multiple channels in parallel. Example code using this functionallity can be found here- Parameters:
zotino_device (TStr) -- The ARTIQ zotino device to use from the device db, e.g. @zotino_0
max_parallel_arbs (TInt32) -- Number of channels that can be ramped or played an arbitrary waveform on in parallel. Keep this as low as possible as higher numbers increase the prerun phase length.
max_arb_samples (TInt32) -- Number of samples a arbitrary waveform/ramp can maximally have. Keep this as low as possible as higher numbers increase the prerun phase length.
A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)
- kernel_invariants = {'_zotino_device'}¶
- hold_arbs = False¶
- update()[source]¶
Applys the voltages in the DAC register to the outputs.
Hint
If an update is already scheduled at the current time, this command does nothing. This allows for setting multiple DAC channels in a parallel statement without multiple slow updates.
- write_dac(channel, voltage)[source]¶
Writes the voltage value voltage to the DAC channel channel. This method schedules the operation in the past and does not advance the time cursor.
- Parameters:
channel (artiq.language.types.TInt32) -- Channel number
voltage (artiq.language.types.TFloat) -- Voltage in V
- Return type:
None
Hint
This command uses a scheduler which takes care that no write operations occure at the same time to prevent undefined behavior which often do not result in a noticable error.
- set_channel_voltage(channel, voltage)¶
- Parameters:
channel (artiq.language.types.TInt32)
voltage (artiq.language.types.TFloat)
- set_parameter(value, channel=None)¶
- Parameters:
value (artiq.language.types.TFloat)
channel (artiq.language.types.TStr)
- class atomiq.components.sinara.dac.ZotinoChannel(dac_device, channel, *args, **kwargs)[source]¶
Bases:
DACChannel
A single channel of a (possibly multichannel) DAC
A single channel of a DAC is a digitally controlled voltage source. Thus, this class inherits from
VoltageSource
.- Parameters:
dac_device (DAC) -- the DAC the channel belongs to
channel (TInt32) -- the number of the channel
- kernel_invariants = {'channel', 'dac_device'}¶
- ramp_voltage(duration, voltage_start, voltage_end, ramp_timestep=nan, ramp_steps=-1)¶
Ramp voltage over a given duration.
This method advances the timeline by duration
- Parameters:
duration (artiq.language.types.TFloat) -- ramp duration [s]
voltage_start (artiq.language.types.TFloat) -- initial voltage [V]
voltage_end (artiq.language.types.TFloat) -- end voltage [V]
ramp_timestep (artiq.language.types.TFloat)
ramp_steps (artiq.language.types.TInt32)
- set_parameter(value, channel=None)¶
- Parameters:
value (artiq.language.types.TFloat)
channel (artiq.language.types.TStr)
- set_voltage(voltage)¶
Set the voltage delivered by the voltage source
- Parameters:
voltage (artiq.language.types.TFloat) -- Voltage in V
- class atomiq.components.sinara.dac.Fastino(fastino_device, parallel_event_delay=1e-08, *args, **kwargs)[source]¶
Bases:
DAC
The Sinara Fast ADC called Fastino
- Parameters:
fastino_device (TStr) -- The ARTIQ fastino device from the device_db
parallel_event_delay (TBool) -- Time by which occuring parallel events in ramps are moved [s] (default: 10ns)
A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)
- kernel_invariants = {'_fastino_device', 'parallel_event_delay'}¶
- register_event(time)[source]¶
- Parameters:
time (artiq.language.types.TInt64)
- Return type:
artiq.language.types.TFloat
- set_channel_voltage(channel, voltage)¶
- Parameters:
channel (artiq.language.types.TInt32)
voltage (artiq.language.types.TFloat)
- set_parameter(value, channel=None)¶
- Parameters:
value (artiq.language.types.TFloat)
channel (artiq.language.types.TStr)
- class atomiq.components.sinara.dac.FastinoChannel(dac_device, channel, *args, **kwargs)[source]¶
Bases:
DACChannel
A single channel of a (possibly multichannel) DAC
A single channel of a DAC is a digitally controlled voltage source. Thus, this class inherits from
VoltageSource
.- Parameters:
dac_device (DAC) -- the DAC the channel belongs to
channel (TInt32) -- the number of the channel
- kernel_invariants = {'channel', 'dac_device'}¶
- ramp_voltage(duration, voltage_start, voltage_end, ramp_timestep=nan, ramp_steps=-1)¶
Ramp voltage over a given duration.
This method advances the timeline by duration
- Parameters:
duration (artiq.language.types.TFloat) -- ramp duration [s]
voltage_start (artiq.language.types.TFloat) -- initial voltage [V]
voltage_end (artiq.language.types.TFloat) -- end voltage [V]
ramp_timestep (artiq.language.types.TFloat)
ramp_steps (artiq.language.types.TInt32)
- set_parameter(value, channel=None)¶
- Parameters:
value (artiq.language.types.TFloat)
channel (artiq.language.types.TStr)
- set_voltage(voltage)¶
Set the voltage delivered by the voltage source
- Parameters:
voltage (artiq.language.types.TFloat) -- Voltage in V