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

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

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>