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>