NAME

Device::Chip::MCP4725 - chip driver for MCP4725

SYNOPSIS

use Device::Chip::MCP4725;
use Future::AsyncAwait;

my $chip = Device::Chip::MCP4725->new;
await $chip->mount( Device::Chip::Adapter::...->new );

# Presuming Vcc = 5V
await $chip->write_dac_ratio( 1.23 / 5 );
print "Output is now set to 1.23V\n";

DESCRIPTION

This Device::Chip subclass provides specific communication to a Microchip MCP4725 attached to a computer via an I²C adapter.

The reader is presumed to be familiar with the general operation of this chip; the documentation here will not attempt to explain or define chip-specific concepts or features, only the use of this module to access them.

MOUNT PARAMETERS

addr

The I²C address of the device. Can be specified in decimal, octal or hex with leading 0 or 0x prefixes.

ACCESSORS

The following methods documented in an await expression return Future instances.

read_config

$config = await $chip->read_config;

Returns a HASH reference containing the chip's current configuration

RDY => 0 | 1
POR => 0 | 1

PD  => "normal" | "1k" | "100k" | "500k"
DAC => 0 .. 4095

EEPROM_PD  => "normal" | "1k" | "100k" | "500k"
EEPROM_DAC => 0 .. 4095

METHODS

write_dac

await $chip->write_dac( $dac, $powerdown );

Writes a new value for the DAC output and powerdown state in "fast" mode.

$powerdown is optional and will default to 0 if not provided.

write_dac_ratio

await $chip->write_dac_ratio( $ratio );

Writes a new value for the DAC output, setting it to normal output for a given ratio between 0 and 1.

write_dac_and_eeprom

$chip->write_dac_and_eeprom( $dac, $powerdown )

As "write_dac" but also updates the EEPROM with the same values.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>