NAME

    Device::Chip::AnalogConverters - a collection of chip drivers

DESCRIPTION

    This distribution contains a number of Device::Chip drivers for various
    ADC and DAC chips.

ADCs

      * Device::Chip::ADC121Sx

      * Device::Chip::ADS1115

      * Device::Chip::LTC2400

      * Device::Chip::MCP3221

      * Device::Chip::MAX11200

      * Device::Chip::MAX1166x

 SUGGESTED ADC METHODS

  trigger

       await $chip->trigger( %args );

    Optional. This method asks the chip to begin taking a reading.

  read_adc

       $value = await $chip->read_adc;

    Obtains the most recent reading performed by the chip, as a plain
    integer value. This may be signed or unsigned, scaled to whatever
    precision the chip works at.

  read_adc_voltage

       $voltage = await $chip->read_adc_voltage;

    If the chip contains an internal reference, or in some other way the
    scale is known by the driver, this method should be provided that
    converts the result of "read_adc" into an actual signed voltage.

  read_adc_ratio

       $ratio = await $chip->read_adc_ratio;

    If the chip (driver) does not have a reference to scale convert the
    output directly to a voltage level, then this method should be provided
    instead that merely scales the raw reading down by a factor such that
    the returned value is a floating-point number between 0 and 1 for
    unipolar (single-ended unsigned) readings, or between -1 and 1 for
    bipolar (differential signed) readings.

DACs

      * Device::Chip::AD5691R

      * Device::Chip::DAC7513

      * Device::Chip::DAC7571

      * Device::Chip::MCP4725

 SUGGESTED DAC METHODS

  write_dac

       await $chip->write_dac( $value );

    Sets the value of the DAC's output as a plain integer value. This may
    be signed or unsigned, scaled to whatever precision the chip works at.

  write_dac_voltage

       await $chip->write_dac_voltage( $voltage );

    If the chip contains an internal reference, or in some other way the
    scale is known by the driver, this method should be provided that
    converts the given voltage into a raw value to invoke "write_dac" with.

  write_dac_ratio

       await $chip->write_dac_ratio( $ratio );

    If the chip (driver) does not have a reference to scale convert a given
    voltage to a DAC code value, then this method should be provided
    instead that takes a given ratio, as a floating-point number between 0
    and 1 for unipolar (single-ended unsigned) outputs or between -1 and 1
    for bipolar (differential signed) outputs, and scales it by a suitable
    factor.

AUTHOR

    Paul Evans <leonerd@leonerd.org.uk>