Maxim Integrated 7-bit Sink/Source Current DAC. DS4424, DS4422 input/output current Digital-to-Analog Converter Driver/library code.

Dependents:   DS4424_Hello_Current_DAC_on_MAX32630FTHR

Embed: (wiki syntax)

« Back to documentation index

DS4424 Class Reference

Four/two Channel I2C Sink/Source Current DAC. More...

#include <DS4424.h>

Public Types

enum  DS4424_ic_t
 

IC's supported with this driver.

More...
enum  DS4424_i2c_adrs_t
 

Valid 7-bit I2C addresses.

More...
enum  ChannelRegAddr_e
 

Register Addresses.

More...

Public Member Functions

 DS4424 (I2C &i2c_bus, DS4424_i2c_adrs_t slaveAddress, DS4424_ic_t ic_variant)
 Constructor for DS4424 Class.
 ~DS4424 ()
 Default destructor for DS4424 Class.
int read_raw (int32_t &result, ChannelRegAddr_e chan_addr)
 Read raw value of a channel using two's complement.
int read_hw_raw (uint8_t &result, ChannelRegAddr_e chan_addr)
 Read raw value of a channel, using the hardware format.
int write_raw (int32_t value, ChannelRegAddr_e chan_addr)
 Write two's complement raw value to a channel.
int write_hw_raw (uint8_t value, ChannelRegAddr_e chan_addr)
 Write raw value to a channel, using the hardware format.
int convert_picoAmps_to_hw_raw (uint8_t *val_out, int32_t picoAmps, uint32_t rfs_resistor)
 Convert picoAmps to raw values.
int convert_raw_to_picoAmps (int32_t *val_out, int8_t raw_in, uint32_t rfs_resistor)
 Convert raw values to picoAmps.

Protected Member Functions

int read_register (uint8_t &value, ChannelRegAddr_e reg)
 Read register of device at slave address.
int write_register (ChannelRegAddr_e reg, uint8_t value)
 Write register of device at slave address.

Detailed Description

Four/two Channel I2C Sink/Source Current DAC.

Version:
1.0000.301

The DS4424/DS422 contains four/two I2C programmable current DACs. This driver enables the writing of source/since values to the channel registers.

 #include "mbed.h"
 #include "DS4424.h"
 #include "max32630fthr.h"
 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
 I2C i2cBus(P3_4, P3_5);
 DS4424 ds4424_dac(i2cBus, DS4424::DS4424_I2C_SLAVE_ADRS0, DS4424::DS4424_IC);
    
 int main()
 {
    int32_t value[4]={0,0,0,0};
    int ret;
    
    i2cBus.frequency(400000);

    // read channel 0 register
    ret = ds4424_dac.read_raw(value[0], DS4424::REG_OUT0); 

      //... rest of application
 }

Definition at line 86 of file DS4424.h.


Member Enumeration Documentation

Register Addresses.

Enumerated MAX20303 register addresses

Definition at line 120 of file DS4424.h.

Valid 7-bit I2C addresses.

The 8 valid I2C addresses set via A0, and A1 pins of the DS4424

Definition at line 107 of file DS4424.h.

IC's supported with this driver.

DS4424, DS4422

Definition at line 95 of file DS4424.h.


Constructor & Destructor Documentation

DS4424 ( I2C &  i2c_bus,
DS4424_i2c_adrs_t  slaveAddress,
DS4424_ic_t  ic_variant 
)

Constructor for DS4424 Class.

Allows user to use existing I2C object

On Entry:

Parameters:
[in]i2c_bus- pointer to existing I2C object
[in]i2c_adrs- 7-bit slave address of DS4424
[in]ic_variant- which type of DS44xx is used

On Exit:

Returns:
None

Definition at line 57 of file DS4424.cpp.

~DS4424 ( void   )

Default destructor for DS4424 Class.

Destroys I2C object if owner

On Entry:

On Exit:

Returns:
None

empty block

Definition at line 77 of file DS4424.cpp.


Member Function Documentation

int convert_picoAmps_to_hw_raw ( uint8_t *  val_out,
int32_t  picoAmps,
uint32_t  rfs_resistor 
)

Convert picoAmps to raw values.

Parameters:
*val_out- 8-bit raw value
picoAmps- signed value in picoAmps Negative values are sink; Positive values are source.
rfs_resistor- external resistor values in Ohms
Returns:
0 on success, negative number on failure

Definition at line 169 of file DS4424.cpp.

int convert_raw_to_picoAmps ( int32_t *  val_out,
int8_t  raw_in,
uint32_t  rfs_resistor 
)

Convert raw values to picoAmps.

Parameters:
*val_out- value in picoAmps
raw_in- 8 bit raw value, two's complement Negative values are sink; Positive values are source.
rfs_resistor- external resistor values in Ohms
Returns:
0 on success, negative number on failure

Definition at line 210 of file DS4424.cpp.

int read_hw_raw ( uint8_t &  result,
ChannelRegAddr_e  chan_addr 
)

Read raw value of a channel, using the hardware format.

Parameters:
*result- Value that is read from the register. MSb is 0 for sink; MSb is 1 for source.
chan_addr- Channel 0 to 3
Returns:
0 on success, negative number on failure

Definition at line 107 of file DS4424.cpp.

int read_raw ( int32_t &  result,
ChannelRegAddr_e  chan_addr 
)

Read raw value of a channel using two's complement.

Parameters:
result- Value that is read from the register Negative values are sink; Positive values are source.
chan_addr- Channel 0 to 3
Returns:
0 on success, negative number on failure

Sinking will be negative values

Definition at line 84 of file DS4424.cpp.

int read_register ( uint8_t &  value,
ChannelRegAddr_e  reg 
) [protected]

Read register of device at slave address.

Parameters:
[out]value- Read data on success
reg- Register address
Returns:
0 on success, negative number on failure

Definition at line 233 of file DS4424.cpp.

int write_hw_raw ( uint8_t  value,
ChannelRegAddr_e  chan_addr 
)

Write raw value to a channel, using the hardware format.

Parameters:
value- Value that is stored to the register MSb is 0 for sink; MSb is 1 for source.
chan_addr- Channel 0 to 3
Returns:
0 on success, negative number on failure

Definition at line 153 of file DS4424.cpp.

int write_raw ( int32_t  value,
ChannelRegAddr_e  chan_addr 
)

Write two's complement raw value to a channel.

Parameters:
value- Two's complement value that is stored to the register. Sink values are negative.
chan_addr- Channel 0 to 3
Returns:
0 on success, negative number on failure

Definition at line 123 of file DS4424.cpp.

int write_register ( ChannelRegAddr_e  reg,
uint8_t  value 
) [protected]

Write register of device at slave address.

Parameters:
reg- Register address
value- Value to write
Returns:
0 on success, negative number on failure

Definition at line 258 of file DS4424.cpp.