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 <[email protected]>