Agilent 33500 Function/Arbitrary Waveform Generator Family

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

Bases: SCPIMixin, 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: Any

Control the voltage amplitude in Volts (float).(dynamic)

property amplitude_unit: Any

Control the amplitude units (string, strictly ‘VPP’, ‘VRMS’, or ‘DBM’).(dynamic)

property arb_advance: Any

Control how the device advances from data point to data point (str). Can be set to ‘TRIG<GER>’ or ‘SRAT<E>’ (default).

property arb_file: Any

Control the arbitrary signal to use from the volatile memory of the device.(dynamic)

property arb_filter: Any

Control the filter setting for arbitrary signals (str). Can be set to ‘NORM<AL>’, ‘STEP’ and ‘OFF’.

property arb_srate: Any

Control the sample rate of the currently selected arbitrary signal in Sa/s (float). Valid values range from 1 µSa/s to 250 MSa/s (maximum range, device-dependent).

beep()

Causes a system beep.

property burst_mode: Any

Control the burst mode type (str, strictly ‘TRIG<GERED>’ or ‘GAT<ED>’).(dynamic)

property burst_ncycles: Any

Control the number of cycles to be output when a burst is triggered (int).(dynamic)

property burst_period: Any

Control the period of subsequent bursts in seconds (float).(dynamic)

property burst_state: Any

Control the burst mode state (bool).(dynamic)

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. (default: 'DAC')

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: Any

Set text to be displayed on the front panel of the device (string).

property ext_trig_out: Any

Control whether the trigger out signal is active (bool).

property frequency: Any

Control the waveform frequency in Hz (float). Depends on the specified shape.(dynamic)

property offset: Any

Control the voltage offset in Volts (float).(dynamic)

property output: Any

Control the output state (bool).(dynamic)

property output_load: Any

Control the expected load resistance in Ohms (str or float). The output impedance is always 50 Ohm, this setting can be used to correct the displayed voltage for loads unmatched to 50 Ohm.(dynamic)

property phase: Any

Control the waveform phase in degrees (float, from -360 to 360).

phase_sync()

Synchronize the phase of all channels.

property pulse_dutycycle: Any

Control the pulse duty cycle in percent (float, from 0 to 100).(dynamic)

property pulse_hold: Any

Control whether pulse width or duty cycle is maintained when the period or frequency of the waveform is changed (str).(dynamic)

property pulse_period: Any

Control the pulse period in seconds (float). Overwrites frequency. If the period is shorter than the pulse width + the edge time, the edge time and pulse width are adjusted.(dynamic)

property pulse_transition: Any

Control the pulse edge time (both rising and falling) in seconds (float).(dynamic)

property pulse_width: Any

Control the pulse width in seconds (float).(dynamic)

property ramp_symmetry: Any

Control the ramp waveform symmetry in percent (float, from 0 to 100).(dynamic)

property shape: Any

Control the output waveform shape (str).(dynamic)

property square_dutycycle: Any

Control the square wave duty cycle in percent (float).(dynamic)

trigger()

Send a trigger signal to the function generator.

property trigger_source: Any

Control the trigger source (str).

property voltage_high: Any

Control the upper voltage level in Volts (float).(dynamic)

property voltage_low: Any

Control the lower voltage level in Volts (float).(dynamic)

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. (default: 3600)

  • should_stop – Optional function (returning a bool) to allow the waiting to be stopped before its end. (default: <function Agilent33500.<lambda> at 0x76f1fd0714e0>)