# Agilent 4284A LCR Meter

class pymeasure.instruments.agilent.Agilent4284A(adapter, name='Agilent 4284A LCR meter', **kwargs)

  Bases: `SCPIMixin`, `Instrument`

  Represents the Agilent 4284A precision LCR meter.

      agilent = Agilent4284A("GPIB::1::INSTR")

      agilent.reset()                         # Return instrument settings to default
                                                values
      agilent.frequency = 10e3                # Set frequency to 10 kHz
      agilent.voltage = 0.02                  # Set AC voltage to 20 mV
      agilent.mode = 'ZTR'                    # Set impedance mode to measure
                                                impedance magnitude [Ohm] and phase
                                                [rad]
      agilent.sweep_measurement(
          'frequency', [1e4, 1e3, 100]        # Perform frequency sweep measurement
      )                                       # at 10 kHz, 1 kHz, and 100 Hz
      agilent.enable_high_power()             # Enable upper current, voltage, and
                                                bias limits, if properly configured.

  property ac_current

    Control AC current level in Amps. Valid range is 50 uA to 20 mA for default, 50 uA to 200 mA in high-power mode.(dynamic)

  property ac_voltage

    Control AC voltage level in Volts. Range is 5 mV to 2 V for default, 5 mV to 20 V in high-power mode.(dynamic)

  property auto_range_enabled

    Control whether the impedance auto range is enabled.

  property bias_current

    Control the DC bias current in Amps. Requires Option 001 (power amplifier / DC bias) to be installed. Maximum is 100 mA.(dynamic)

  property bias_enabled

    Control whether DC bias is enabled.

  property bias_voltage

    Control the DC bias voltage in Volts. Maximum is 2 V by default, 40 V in high-power mode.(dynamic)

  property frequency

    Control AC frequency in Hertz, from 20 Hz to 1 MHz.

  property high_power_enabled

    Control whether high power mode is enabled. Enabling requires option 001 (power amplifier / DC bias) to be installed.

  property impedance_mode

    Control impedance measurement function.

    - CPD: Parallel capacitance [F] and dissipation factor [number]

    - CPQ: Parallel capacitance [F] and quality factor [number]

    - CPG: Parallel capacitance [F] and parallel conductance [S]

    - CPRP: Parallel capacitance [F] and parallel resistance [Ohm]

    - CSD: Series capacitance [F] and dissipation factor [number]

    - CSQ: Series capacitance [F] and quality factor [number]

    - CSRS: Series capacitance [F] and series resistance [Ohm]

    - LPQ: Parallel inductance [H] and quality factor [number]

    - LPD: Parallel inductance [H] and dissipation factor [number]

    - LPG: Parallel inductance [H] and parallel conductance [S]

    - LPRP: Parallel inductance [H] and parallel resistance [Ohm]

    - LSD: Series inductance [H] and dissipation factor [number]

    - LSQ: Seriesinductance [H] and quality factor [number]

    - LSRS: Series inductance [H] and series resistance [Ohm]

    - RX: Resistance [Ohm] and reactance [Ohm]

    - ZTD: Impedance, magnitude [Ohm] and phase [deg]

    - ZTR: Impedance, magnitude [Ohm] and phase [rad]

    - GB: Conductance [S] and susceptance [S]

    - YTD: Admittance, magnitude [Ohm] and phase [deg]

    - YTR: Admittance magnitude [Ohm] and phase [rad]

  property impedance_range

    Control the impedance measurement range. The 4284A will select an appropriate measurement range for the setting value.

  sweep_measurement(sweep_mode, sweep_values)

    Run list sweep measurement using sequential trigger.

    Parameters:

      - sweep_mode (str) – parameter to sweep across. Must be one of frequency, voltage, current, bias_voltage, or bias_current.

      - sweep_values – list of parameter values to sweep across.

    Returns:

      values as configured with `impedance_mode` and list of sweep parameters in format ([val A], [val B], [sweep_values])

  trigger()

    Execute a bus trigger, regardless of trigger state. Can be used when `trigger_source` is set to BUS. Returns result of triggered measurement.

  property trigger_continuous_enabled

    Control whether trigger state automatically returns to WAIT FOR TRIGGER after measurement.

  property trigger_delay

    Control trigger delay in seconds. Valid range is 0 to 60, with 1 ms resolution.

  trigger_immediate()

    Execute a bus trigger, regardless of trigger state. Can be used when `trigger_source` is set to BUS. Measurement result must be retrieved with FETCH? command.

  trigger_initiate()

    Change the trigger state from IDLE to WAIT FOR TRIGGER for one trigger sequence.

  property trigger_source

    Control trigger mode. Valid options are INT, EXT, BUS, or HOLD.