Active Technologies AWG-401x 1.2GS/s Arbitrary Waveform Generator

class pymeasure.instruments.activetechnologies.AWG401x_AFG(adapter, **kwargs)

Bases: AWG401x_base

Represents the Active Technologies AWG-401x Arbitrary Waveform Generator in AFG mode.

wfg = AWG401x_AFG("TCPIP::192.168.0.123::INSTR")

wfg.reset()                     # Reset the instrument at default state

wfg.channels[1].shape = "SINUSOID"    # Sets a sine waveform on CH1
wfg.channels[1].frequency = 4.7e3     # Sets the frequency to 4.7 kHz on CH1
wfg.channels[1].amplitude = 1         # Set amplitude of 1 V on CH1
wfg.channels[1].offset = 0            # Set the amplitude to 0 V on CH1
wfg.channels[1].enabled = True        # Enables the CH1

wfg.channels[2].shape = "SQUARE"      # Sets a square waveform on CH2
wfg.channels[2].frequency = 100e6     # Sets the frequency to 100 MHz on CH2
wfg.channels[2].amplitude = 0.5         # Set amplitude of 0.5 V on CH2
wfg.channels[2].offset = 0            # Set the amplitude to 0 V on CH2
wfg.channels[2].enabled = True        # Enables the CH2

wfg.enabled = True              # Enable output of waveform generator
wfg.beep()                      # "beep"

print(wfg.check_errors())       # Get the error queue
ch_1
Channel:

ChannelAFG

ch_2
Channel:

ChannelAFG

property enabled: Any

Control whether the generation of signals is enabled (bool).

class pymeasure.instruments.activetechnologies.AWG401x_AWG(adapter, **kwargs)

Bases: AWG401x_base

Represents the Active Technologies AWG-401x Arbitrary Waveform Generator in AWG mode.

wfg = AWG401x_AWG("TCPIP::192.168.0.123::INSTR")

wfg.reset()             # Reset the instrument at default state

# Set a oscillating waveform
wfg.waveforms["MyWaveform"] = [1, 0] * 8

for i in range(1, wfg.num_ch + 1):
    wfg.entries[1].channels[i].voltage_high = 1       # Sets high voltage = 1
    wfg.entries[1].channels[i].voltage_low = 0        # Sets low voltage = 1
    wfg.entries[1].channels[i].waveform = "SQUARE"    # Sets a square wave
    wfg.setting_ch[i].enabled = True            # Enable channel

wfg.entries.resize(2)           # Resize the number of entries to 2

wfg.entries[2].channels[1].waveform = "MyWaveform"   # Set custom waveform

wfg.enabled = True              # Enable output of waveform generator
wfg.beep()                      # "beep"

print(wfg.check_errors())       # Get the error queue
class DummyEntriesElements(parent, number_of_channel)

Bases: Sequence

Dummy List Class to list every sequencer entry. The content is loaded in real-time.

class WaveformsLazyDict(parent)

Bases: MutableMapping

This class inherit from MutableMapping in order to create a custom dict to lazy load, modify, delete and create instrument waveform.

reset()

Reset the class reloading the waveforms from instrument

property burst_count: Any

Control the burst count parameter.(dynamic)

property burst_count_max: Any

Get the maximum burst count parameter.

property burst_count_min: Any

Get the minimum burst count parameter.

property enabled: Any

Control whether generation of signals in enabled.

property entry_level_strategy: Any

Control the Entry Length Strategy. This strategy manages the length of the sequencer entries in relationship with the length of the channel waveforms defined for each entry. The possible values are:

  • ADAPTL<ONGER>: the length of an entry of the sequencer by default will be equal to the length of the longer channel waveform, among all analog channels, assigned to the entry.

  • ADAPTS<HORTER>: the length of an entry of the sequencer by default will be equal to the length of the shorter channel waveform, among all analog channels, assigned to the entry.

  • DEF<AULT>:the length of an entry of the sequencer by default will be equal to the value specified in the Sequencer Item Default Length [N] parameter

list_files(path=None)

Return a List of tuples with all file found in a directory. If the path is not specified the current directory will be used

property num_ch: Any

Get the number of analog channels.

property num_dch: Any

Get the number of digital channels.

remove_file(file_name, path=None)

Remove a specified file

property run_mode: Any

Control the AWG run mode. The possible values are:

  • CONT<INUOUS>: each waveform will loop as written in the entry repetition parameter and the entire sequence is repeated circularly

  • BURS<T>: the AWG waits for a trigger event. When the trigger event occurs each waveform will loop as written in the entry repetition parameter and the entire sequence will be repeated circularly many times as written in the Burst Count[N] parameter. If you set Burst Count[N]=1 the instrument is in Single mode and the sequence will be repeated only once.

  • TCON<TINUOUS>: the AWG waits for a trigger event. When the trigger event occurs each waveform will loop as written in the entry repetition parameter and the entire sequence will be repeated circularly.

  • STEP<PED>: the AWG, for each entry, waits for a trigger event before the execution of the sequencer entry. The waveform of the entry will loop as written in the entry repetition parameter. After the generation of an entry has completed, the last sample of the current entry or the first sample of the next entry is held until the next trigger is received. At the end of the entire sequence the execution will restart from the first entry.

  • ADVA<NCED>: it enables the “Advanced” mode. In this mode the execution of the sequence can be changed by using conditional and unconditional jumps (JUMPTO and GOTO commands) and dynamic jumps (PATTERN JUMP commands).

The *RST command sets this parameter to CONTinuous.

property run_status: Any

Get the run state of the AWG. The possible values are: STOPPED, WAITING_TRIGGER, RUNNING

property sample_decreasing_strategy: Any

Control the Sample Decreasing Strategy. The “Sample decreasing strategy” parameter defines the strategy used to adapt the waveform length to the sequencer entry length in the case where the original waveform length is longer than the sequencer entry length. Can be set to: DECIM<ATION>, CUTT<AIL>, CUTH<EAD>

property sample_increasing_strategy: Any

Control the Sample Increasing Strategy. The “Sample increasing strategy” parameter defines the strategy used to adapt the waveform length to the sequencer entry length in the case where the original waveform length is shorter than the sequencer entry length. Can be set to: INTER<POLATION>, RETURN<ZERO>, HOLD<LAST>, SAMPLESM<ULTIPLICATION>

property sampling_rate: Any

Control the sample rate for the Sampling Clock.(dynamic)

property sampling_rate_max: Any

Get the maximum sample rate for the Sampling Clock.

property sampling_rate_min: Any

Get the minimum sample rate for the Sampling Clock.

save_file(file_name, data, path=None, override_existing=False)

Write a string in a file in the instrument

trigger()

Force a trigger event to occour.

property trigger_source: Any

Control the instrument trigger source. The possible values are:

  • TIM<ER>: the trigger is sent at regular intervals.

  • EXT<ERNAL>: the trigger come from the external BNC connector.

  • MAN<UAL>: the trigger is sent via software or using the trigger button on front panel.

property waveforms

Get a dict with all the waveform present in the instrument system (Wave. List). It is possible to modify the values, delete them or create new waveforms

class pymeasure.instruments.activetechnologies.AWG401x.ChannelAFG(instrument, id)

Bases: ChannelBase

Implementation of a Active Technologies AWG-4000 channel in AFG mode.

property baseline_offset: Any

Control the offset level for the specified channel. The offset range setting depends on the amplitude parameter. (dynamic)

property baseline_offset_max: Any

Get the maximum offset voltage level that can be set to the output waveform.

property baseline_offset_min: Any

Get the minimum offset voltage level that can be set to the output waveform.

property frequency: Any

Control the frequency of the output waveform. This command is available when the Run Mode is set to any setting other than Sweep. The output frequency range setting depends on the type of output waveform. If you change the type of output waveform, it may change the output frequency because changing waveform types affects the setting range of the output frequency. The output frequency range setting depends also on the amplitude parameter.(dynamic)

property frequency_max: Any

Get the maximum frequency that can be set to the output waveform.

property frequency_min: Any

Get the minimum frequency that can be set to the output waveform.

property load_impedance: Any

Control the output load impedance for the specified channel. The specified value is used for amplitude, offset, and high/low level settings. You can set the impedance to any value from 1 Ω to 1 MΩ. The default value is 50 Ω.

property output_impedance: Any

Control the instrument output impedance, the possible values are: 5 Ohm or 50 Ohm (default).

property phase: Any

Control the phase of the output waveform for the specified channel. The value is in degrees.(dynamic)

property phase_max: Any

Get the maximum phase that can be set to the output waveform.

property phase_min: Any

Get the minimum phase that can be set to the output waveform.

property shape: Any

Control the shape of the carrier waveform. Allowed choices depends on the choosen modality, please refer on instrument manual. When you set this property with a different value, if the instrument is running it will be stopped. Can be set to: SIN<USOID>, SQU<ARE>, PULS<E>, RAMP, PRN<OISE>, DC, SINC, GAUS<SIAN>, LOR<ENTZ>, ERIS<E>, EDEC<AY>, HAV<ERSINE>, ARBB, EFIL<E>, DOUBLEPUL<SE>

property voltage_amplitude: Any

Control the output amplitude for the specified channel. The measurement unit of amplitude depends on the selection operated using the voltage_unit property. If the carrier is Noise the amplitude is Vpk instead of Vpp. If the carrier is DC level this command causes an error. The range of the amplitude setting could be limited by the frequency and offset parameter of the carrier waveform. (dynamic)

property voltage_amplitude_max: Any

Get the maximum amplitude voltage level that can be set to the output waveform.

property voltage_amplitude_min: Any

Get the minimum amplitude voltage level that can be set to the output waveform.

property voltage_high: Any

Control the high level of the waveform. The high level could be limited by noise level to not exceed the maximum amplitude. If the carrier is Noise or DC level, this command and this query cause an error.(dynamic)

property voltage_high_max: Any

Get the maximum high voltage level that can be set to the output waveform.

property voltage_high_min: Any

Get the minimum high voltage level that can be set to the output waveform.

property voltage_low: Any

Control the low level of the waveform. The low level could be limited by noise level to not exceed the maximum amplitude. If the carrier is Noise or DC level, this command and this query cause an error.(dynamic)

property voltage_low_max: Any

Get the maximum low voltage level that can be set to the output waveform.

property voltage_low_min: Any

Get the minimum low voltage level that can be set to the output waveform.

property voltage_offset: Any

Control the offset level for the specified channel. The offset range setting depends on the amplitude parameter. (dynamic)

property voltage_offset_max: Any

Get the maximum offset voltage level that can be set to the output waveform.

property voltage_offset_min: Any

Get the minimum offset voltage level that can be set to the output waveform.

property voltage_unit: Any

Control the units of output amplitude, the possible choices are: VPP, VRMS, DBM. This command does not affect the offset, high level, or low level of output.