Signal Generator

Bases: PicoScopeBase, shared_ps6000a_psospa, shared_4000a_6000a

PicoScope 6000 (A) API specific functions

Methods:

Name Description
set_siggen

Configures and applies the signal generator settings.

set_siggen_awg

Arbitrary Waveform Generation - Generates a signal from a given buffer.

siggen_apply

Sets the signal generator running using parameters previously configured.

siggen_clock_manual

Manually control the signal generator clock.

siggen_filter

Enable or disable the signal generator output filter.

siggen_frequency_limits

Query frequency sweep limits for the signal generator.

siggen_frequency_sweep

Configure frequency sweep parameters.

siggen_limits

Query signal generator parameter limits.

siggen_pause

Pause the signal generator.

siggen_phase

Set the signal generator phase using delta_phase.

siggen_phase_sweep

Configure a phase sweep for the signal generator.

siggen_restart

Restart the signal generator after a pause.

siggen_set_duty_cycle

Set duty cycle of SigGen in percentage

siggen_set_frequency

Set frequency of SigGen in Hz.

siggen_set_range

Set mV range of SigGen (6000A).

siggen_set_waveform

Set waveform type for SigGen (6000A). If arbitrary mode is selected,

siggen_software_trigger_control

Control software triggering for the signal generator.

siggen_trigger

Configure signal generator triggering.

set_siggen(frequency, pk2pk, wave_type, offset=0.0, duty=50, sweep=False, stop_freq=None, inc_freq=1, dwell_time=0.001, sweep_type=SWEEP_TYPE.UP)

Configures and applies the signal generator settings.

Sets up the signal generator with the specified waveform type, frequency, amplitude (peak-to-peak), offset, and duty cycle.

If sweep is enabled and the sweep-related args are given, the SigGen will sweep.

Parameters:
  • frequency (float) –

    Signal frequency in hertz (Hz).

  • pk2pk (float) –

    Peak-to-peak voltage in volts (V).

  • wave_type (WAVEFORM) –

    Waveform type (e.g., WAVEFORM.SINE, WAVEFORM.SQUARE).

  • offset (float, default: 0.0 ) –

    Voltage offset in volts (V).

  • duty (int or float, default: 50 ) –

    Duty cycle as a percentage (0–100).

  • sweep (bool, default: False ) –

    If True, sweep is enabled, fill in the following:

  • stop_freq (float, default: None ) –

    Frequency to stop sweep at in Hertz (Hz). Defaults to None.

  • inc_freq (float, default: 1 ) –

    Frequency to increment (or step) in hertz (Hz). Defaults to 1 Hz.

  • dwell_time (float, default: 0.001 ) –

    Time to wait between frequency steps in seconds (s). Defaults to 1 ms.

  • sweep_type (SWEEP_TYPE, default: UP ) –

    Direction of sweep [UP, DOWN, UPDOWN, DOWNUP]. Defaults to UP.

Returns:
  • dict( dict ) –

    Returns dictionary of the actual achieved values.

set_siggen_awg(frequency, pk2pk, buffer, offset=0.0, duty=50, sweep=False, stop_freq=None, inc_freq=1, dwell_time=0.001, sweep_type=SWEEP_TYPE.UP)

Arbitrary Waveform Generation - Generates a signal from a given buffer.

Sets up the signal generator with a specified frequency, amplitude (peak-to-peak), offset, and duty cycle.

If sweep is enabled and the sweep-related args are given, the SigGen will sweep.

Parameters:
  • frequency (float) –

    Signal frequency in hertz (Hz).

  • pk2pk (float) –

    Peak-to-peak voltage in volts (V).

  • buffer (ndarray | list) –

    description

  • offset (float, default: 0.0 ) –

    Voltage offset in volts (V). Defaults to 0.0.

  • duty (float, default: 50 ) –

    Duty cycle as a percentage (0–100). Defaults to 50.

  • sweep (bool, default: False ) –

    If True, sweep is enabled, fill in the following:

  • stop_freq (float, default: None ) –

    Frequency to stop sweep at in Hertz (Hz). Defaults to None.

  • inc_freq (float, default: 1 ) –

    Frequency to increment (or step) in hertz (Hz). Defaults to 1.

  • dwell_time (float, default: 0.001 ) –

    Time to wait between frequency steps in seconds (s). Defaults to 0.001.

  • sweep_type (SWEEP_TYPE, default: UP ) –

    Direction of sweep [UP, DOWN, UPDOWN, DOWNUP]. Defaults to UP.

Raises:
  • PicoSDKException

    description

Returns:
  • dict( dict ) –

    description

siggen_apply(enabled=1, sweep_enabled=0, trigger_enabled=0, auto_clock_optimise_enabled=0, override_auto_clock_prescale=0)

Sets the signal generator running using parameters previously configured.

Parameters:
  • enabled (int, default: 1 ) –

    SigGen Enabled,

  • sweep_enabled (int, default: 0 ) –

    Sweep Enabled,

  • trigger_enabled (int, default: 0 ) –

    SigGen trigger enabled,

  • auto_clock_optimise_enabled (int, default: 0 ) –

    Auto Clock Optimisation,

  • override_auto_clock_prescale (int, default: 0 ) –

    Override Clock Prescale,

Returns:
  • dict( dict ) –

    Returns dictionary of the actual achieved values.

siggen_clock_manual(dac_clock_frequency, prescale_ratio)

Manually control the signal generator clock. Args: dac_clock_frequency: Frequency of the DAC clock in Hz. prescale_ratio: Prescale divisor for the DAC clock.

siggen_filter(filter_state)

Enable or disable the signal generator output filter. Args: filter_state: can be set on or off, or put in automatic mode.

siggen_frequency_limits(wave_type, num_samples, start_frequency, sweep_enabled, manual_dac_clock_frequency=None, manual_prescale_ratio=None)

Query frequency sweep limits for the signal generator. Args: wave_type: Waveform type. num_samples: Number of samples in the arbitrary waveform buffer. start_frequency: Starting frequency in Hz. sweep_enabled: Whether a sweep is enabled. manual_dac_clock_frequency: Optional manual DAC clock frequency. manual_prescale_ratio: Optional manual DAC prescale ratio. Returns: dict: Frequency limit information with keys max_stop_frequency, min_frequency_step, max_frequency_step, min_dwell_time and max_dwell_time.

siggen_frequency_sweep(stop_frequency_hz, frequency_increment, dwell_time_s, sweep_type)

Configure frequency sweep parameters. Args: stop_frequency_hz: End frequency of the sweep in Hz. frequency_increment: Increment value in Hz. dwell_time_s: Time to dwell at each frequency in seconds. sweep_type: Sweep direction.

siggen_limits(parameter)

Query signal generator parameter limits. Args: parameter: Signal generator parameter to query. Returns: dict: Dictionary with keys min, max and step.

siggen_pause()

Pause the signal generator.

siggen_phase(delta_phase)

Set the signal generator phase using delta_phase.

The signal generator uses direct digital synthesis (DDS) with a 32-bit phase accumulator that indicates the present location in the waveform. The top bits of the phase accumulator are used as an index into a buffer containing the arbitrary waveform. The remaining bits act as the fractional part of the index, enabling highresolution control of output frequency and allowing the generation of lower frequencies. The signal generator steps through the waveform by adding a deltaPhase value between 1 and phaseAccumulatorSize-1 to the phase accumulator every dacPeriod (= 1/dacFrequency).

Parameters:
  • delta_phase (int) –

    Phase offset to apply.

siggen_phase_sweep(stop_delta_phase, delta_phase_increment, dwell_count, sweep_type)

Configure a phase sweep for the signal generator. Args: stop_delta_phase: End phase in DAC counts. delta_phase_increment: Increment value in DAC counts. dwell_count: Number of DAC cycles to dwell at each phase step. sweep_type: Sweep direction.

siggen_restart()

Restart the signal generator after a pause.

siggen_set_duty_cycle(duty)

Set duty cycle of SigGen in percentage

Parameters:
  • duty (cycle (int) –

    Duty cycle in %.

siggen_set_frequency(frequency)

Set frequency of SigGen in Hz.

Parameters:
  • frequency (int) –

    Frequency in Hz.

siggen_set_range(pk2pk, offset=0.0)

Set mV range of SigGen (6000A).

Parameters:
  • pk2pk (int) –

    Peak to peak of signal in volts (V).

  • offset (int, default: 0.0 ) –

    Offset of signal in volts (V).

siggen_set_waveform(wave_type, buffer=None)

Set waveform type for SigGen (6000A). If arbitrary mode is selected, a buffer of ADC samples is needed.

Parameters:
  • wave_type (WAVEFORM) –

    Waveform type i.e. WAVEFORM.SINE.

  • buffer (ndarray | None, default: None ) –

    np.array buffer to be used in WAVEFORM.ARBITRARY mode.

siggen_software_trigger_control(trigger_state)

Control software triggering for the signal generator. Args: trigger_state: 1 to enable the software trigger, 0 to disable.

siggen_trigger(trigger_type, trigger_source, cycles, auto_trigger_ps=0)

Configure signal generator triggering. Args: trigger_type: Trigger type to use. trigger_source: Source for the trigger. cycles: Number of cycles before the trigger occurs. auto_trigger_ps: Time in picoseconds before auto-triggering.