atomiq.components.electronics.voltagesource

Classes

VoltageSource

Voltage Source

DAC

A DAC with multiple channels

DACChannel

Voltage Source

Module Contents

class atomiq.components.electronics.voltagesource.VoltageSource(min_voltage=float('-inf'), max_voltage=float('inf'), default_ramp_steps=30, *args, **kwargs)[source]

Bases: atomiq.components.primitives.Component, atomiq.components.primitives.Parametrizable

Voltage Source

This abstract class represents any device that can output a defined, controllable voltage.

Parameters:
  • min_voltage (artiq.language.types.TFloat) -- The minimum voltage the device can output [V]

  • max_voltage (artiq.language.types.TFloat) -- The maximum voltage the device can output [V]

  • default_ramp_steps (artiq.language.types.TInt32) -- The default number of steps that this device should use if the voltage is ramped. This value is only used if no ramp_steps are given in the ramp_voltage() method.

kernel_invariants
min_voltage
max_voltage
default_ramp_steps = 30
set_voltage(voltage)[source]

Set the voltage delivered by the voltage source

Parameters:

voltage (artiq.language.types.TFloat) -- Voltage in V

abstractmethod _set_voltage(voltage)[source]
Parameters:

voltage (artiq.language.types.TFloat)

_ramp_voltage(duration, voltage_start, voltage_end, ramp_timestep=0.0002)[source]

This method implements a stupid ramp on an abstract level. This will most likely work but be slow. If your hardware has native support for ramping, please override this function when you inherit from VoltageSource

Parameters:
  • duration (artiq.language.types.TFloat)

  • voltage_start (artiq.language.types.TFloat)

  • voltage_end (artiq.language.types.TFloat)

  • ramp_timestep (artiq.language.types.TFloat)

ramp_voltage(duration, voltage_start, voltage_end, ramp_timestep=float('nan'), ramp_steps=-1)[source]

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)

class atomiq.components.electronics.voltagesource.DAC(num_chan, *args, **kwargs)[source]

Bases: atomiq.components.primitives.Component, atomiq.components.primitives.Parametrizable

A DAC with multiple channels

Parameters:

num_chan (artiq.language.types.TInt32) -- Number of channels the DAC has

kernel_invariants
num_chan
set_channel_voltage(channel, voltage)[source]
Parameters:
  • channel (artiq.language.types.TInt32)

  • voltage (artiq.language.types.TFloat)

abstractmethod update()[source]
class atomiq.components.electronics.voltagesource.DACChannel(dac_device, channel, *args, **kwargs)[source]

Bases: VoltageSource

Voltage Source

This abstract class represents any device that can output a defined, controllable voltage.

Parameters:
  • min_voltage -- The minimum voltage the device can output [V]

  • max_voltage -- The maximum voltage the device can output [V]

  • default_ramp_steps -- The default number of steps that this device should use if the voltage is ramped. This value is only used if no ramp_steps are given in the ramp_voltage() method.

  • dac_device (DAC)

  • channel (artiq.language.types.TInt32)

kernel_invariants
dac_device
channel
_set_voltage(voltage, update_dac=True)[source]
Parameters:
  • voltage (artiq.language.types.TFloat)

  • update_dac (artiq.language.types.TBool)