Agilent 33500 Function/Arbitrary Waveform Generator Family

class pymeasure.instruments.agilent.Agilent33500(adapter, name='Agilent 33500 Function/Arbitrary Waveform generator family', **kwargs)

Bases: SCPIUnknownMixin, Instrument

Represents the Agilent 33500 Function/Arbitrary Waveform Generator family.

Individual devices are represented by subclasses. User can specify a channel to control, if no channel specified, a default channel is picked based on the device e.g. For Agilent33500B the default channel is channel 1. See reference manual for your device

generator = Agilent33500("GPIB::1")

generator.shape = 'SIN'                 # Sets default channel output signal shape to sine
generator.channels[1].shape = 'SIN'           # Sets channel 1 output signal shape to sine
generator.frequency = 1e3               # Sets default channel output frequency to 1 kHz
generator.channels[1].frequency = 1e3         # Sets channel 1 output frequency to 1 kHz
generator.channels[2].amplitude = 5           # Sets channel 2 output amplitude to 5 Vpp
generator.channels[2].output = 'on'           # Enables channel 2 output

generator.channels[1].shape = 'ARB'           # Set channel 1 shape to arbitrary
generator.channels[1].arb_srate = 1e6         # Set channel 1 sample rate to 1MSa/s

generator.channels[1].data_volatile_clear()   # Clear channel 1 volatile internal memory
generator.channels[1].data_arb(               # Send data of arbitrary waveform to channel 1
    'test',
    range(-10000, 10000, +20),          # In this case a simple ramp
    data_format='DAC'                   # Data format is set to 'DAC'
 )
generator.channels[1].arb_file = 'test'       # Select the transmitted waveform 'test'
ch_1
Channel

Agilent33500Channel

ch_2
Channel

Agilent33500Channel

property amplitude

A floating point property that controls the voltage amplitude of the output waveform in V, from 10e-3 V to 10 V. Depends on the output impedance.

property amplitude_unit

A string property that controls the units of the amplitude. Valid values are VPP (default), VRMS, and DBM.

property arb_advance

A string property that selects how the device advances from data point to data point. Can be set to ‘TRIG<GER>’ or ‘SRAT<E>’ (default).

property arb_file

A string property that selects the arbitrary signal from the volatile memory of the device. String has to match an existing arb signal in volatile memory (set by data_arb()).

property arb_filter

A string property that selects the filter setting for arbitrary signals. Can be set to ‘NORM<AL>’, ‘STEP’ and ‘OFF’.

property arb_srate

An floating point property that sets the sample rate of the currently selected arbitrary signal. Valid values are 1 µSa/s to 250 MSa/s (maximum range, can be lower depending on your device).

beep()

Causes a system beep.

property burst_mode

A string property that controls the burst mode. Valid values are: TRIG<GERED>, GAT<ED>.

property burst_ncycles

An integer property that sets the number of cycles to be output when a burst is triggered. Valid values are 1 to 100000. This can be set.

property burst_period

A floating point property that controls the period of subsequent bursts. Has to follow the equation burst_period > (burst_ncycles / frequency) + 1 µs. Valid values are 1 µs to 8000 s.

property burst_state

A boolean property that controls whether the burst mode is on (True) or off (False).

clear_display()

Removes a text message from the display.

data_arb(arb_name, data_points, data_format='DAC')

Uploads an arbitrary trace into the volatile memory of the device.

The data_points can be given as: comma separated 16 bit DAC values (ranging from -32767 to +32767), as comma separated floating point values (ranging from -1.0 to +1.0) or as a binary data stream. Check the manual for more information. The storage depends on the device type and ranges from 8 Sa to 16 MSa (maximum).

Parameters
  • arb_name – The name of the trace in the volatile memory. This is used to access the trace.

  • data_points – Individual points of the trace. The format depends on the format parameter. format = ‘DAC’ (default): Accepts list of integer values ranging from -32767 to +32767. Minimum of 8 a maximum of 65536 points. format = ‘float’: Accepts list of floating point values ranging from -1.0 to +1.0. Minimum of 8 a maximum of 65536 points. format = ‘binary’: Accepts a binary stream of 8 bit data.

  • data_format – Defines the format of data_points. Can be ‘DAC’ (default), ‘float’ or ‘binary’. See documentation on parameter data_points above.

data_volatile_clear()

Clear all arbitrary signals from volatile memory.

This should be done if the same name is used continuously to load different arbitrary signals into the memory, since an error will occur if a trace is loaded which already exists in the memory.

property display

A string property which is displayed on the front panel of the device.

property ext_trig_out

A boolean property that controls whether the trigger out signal is active (True) or not (False). This signal is output from the Ext Trig connector on the rear panel in Burst and Wobbel mode.

property frequency

A floating point property that controls the frequency of the output waveform in Hz, from 1 uHz to 120 MHz (maximum range, can be lower depending on your device), depending on the specified function.

property offset

A floating point property that controls the voltage offset of the output waveform in V, from 0 V to 4.995 V, depending on the set voltage amplitude (maximum offset = (Vmax - voltage) / 2).

property output

A boolean property that turns on (True, ‘on’) or off (False, ‘off’) the output of the function generator.

property output_load

Sets the expected load resistance (should be the load impedance connected to the output. The output impedance is always 50 Ohm, this setting can be used to correct the displayed voltage for loads unmatched to 50 Ohm. Valid values are between 1 and 10 kOhm or INF for high impedance. No validator is used since both numeric and string inputs are accepted, thus a value outside the range will not return an error.

property phase

A floating point property that controls the phase of the output waveform in degrees, from -360 degrees to 360 degrees. Not available for arbitrary waveforms or noise.

phase_sync()

Synchronize the phase of all channels.

property pulse_dutycycle

A floating point property that controls the duty cycle of a pulse waveform function in percent, from 0% to 100%.

property pulse_hold

A string property that controls if either the pulse width or the duty cycle is retained when changing the period or frequency of the waveform. Can be set to: WIDT<H> or DCYC<LE>.

property pulse_period

A floating point property that controls the period of a pulse waveform function in seconds, ranging from 33 ns to 1e6 s. Can be set and overwrites the frequency for all waveforms. If the period is shorter than the pulse width + the edge time, the edge time and pulse width will be adjusted accordingly.

property pulse_transition

A floating point property that controls the edge time in seconds for both the rising and falling edges. It is defined as the time between the 10% and 90% thresholds of the edge. Valid values are between 8.4 ns to 1 µs.

property pulse_width

A floating point property that controls the width of a pulse waveform function in seconds, ranging from 16 ns to 1 Ms, within a set of restrictions depending on the period.

property ramp_symmetry

A floating point property that controls the symmetry percentage for the ramp waveform, from 0.0% to 100.0%.

property shape

A string property that controls the output waveform. Can be set to: SIN<USOID>, SQU<ARE>, TRI<ANGLE>, RAMP, PULS<E>, PRBS, NOIS<E>, ARB, DC.

property square_dutycycle

A floating point property that controls the duty cycle of a square waveform function in percent, from 0.01% to 99.98%. The duty cycle is limited by the frequency and the minimal pulse width of 16 ns. See manual for more details.

trigger()

Send a trigger signal to the function generator.

property trigger_source

A string property that controls the trigger source. Valid values are: IMM<EDIATE> (internal), EXT<ERNAL> (rear input), BUS (via trigger command).

property voltage_high

A floating point property that controls the upper voltage of the output waveform in V, from -4.999 V to 5 V (must be higher than low voltage by at least 1 mV).

property voltage_low

A floating point property that controls the lower voltage of the output waveform in V, from -5 V to 4.999 V (must be lower than high voltage by at least 1 mV).

wait_for_trigger(timeout=3600, should_stop=<function Agilent33500.<lambda>>)

Wait until the triggering has finished or timeout is reached.

Parameters
  • timeout – The maximum time the waiting is allowed to take. If timeout is exceeded, a TimeoutError is raised. If timeout is set to zero, no timeout will be used.

  • should_stop – Optional function (returning a bool) to allow the waiting to be stopped before its end.