# Agilent 33521A Function/Arbitrary Waveform Generator

class pymeasure.instruments.agilent.Agilent33521A(adapter, **kwargs)

  Bases: `Agilent33500`

  Represents the Agilent 33521A Function/Arbitrary Waveform Generator.

  This documentation page shows only methods different from the parent class Agilent33500.

  ch_1
    Channel:

      `Agilent33500Channel`

  ch_2
    Channel:

      `Agilent33500Channel`

  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. This can be set.

  property frequency

    A floating point property that controls the frequency of the output waveform in Hz, from 1 uHz to 30 MHz, depending on the specified function. Can be set.

class pymeasure.instruments.agilent.agilent33500.Agilent33500Channel(parent, id)

  Bases: `Channel`

  Implementation of a base Agilent 33500 channel

  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).

  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).

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

    Uploads an arbitrary trace into the volatile memory of the device for a given channel.

    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 for a given channel.

    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 memory.

  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.

  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 1 Ms. 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 1e6 s, 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.

  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).