Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board

Library for LTC3589: 8-Output Regulator with Sequencing and I2C. More...

Detailed Description

Library for LTC3589: 8-Output Regulator with Sequencing and I2C.

Definition in file LTC3589.cpp.

Go to the source code of this file.

Functions

int8_t LTC3589_register_read (uint8_t i2c_address, uint8_t register_address, uint8_t *register_data)
 Reads an 8-bit register from the LTC3589 using the standard repeated start format. More...
 
int8_t LTC3589_register_write (uint8_t i2c_address, uint8_t register_address, uint8_t register_data)
 Writes to an 8-bit register inside the LTC3589 using the standard I2C repeated start format. More...
 
int8_t LTC3589_bit_set (uint8_t i2c_address, uint8_t register_address, uint8_t bit_number)
 Sets any bit inside the LTC3589 using the standard I2C repeated start format. More...
 
int8_t LTC3589_bit_clear (uint8_t i2c_address, uint8_t register_address, uint8_t bit_number)
 Clears any bit inside the LTC3589 using the standard I2C repeated start format. More...
 
int8_t LTC3589_bit_write (uint8_t i2c_address, uint8_t register_address, uint8_t bit_number, uint8_t bit_data)
 Writes any bit inside the LTC3589 using the standard I2C repeated start format. More...
 
uint8_t LTC3589_bit_is_set (uint8_t i2c_address, uint8_t register_address, uint8_t bit_number)
 Reads the value of any bit in any register or the LTC3589. More...
 
float LTC3589_set_ldo2_output_voltage (uint8_t i2c_address, uint8_t register_address, float output_voltage)
 Sets the output voltage of LDO2. More...
 
float LTC3589_set_buck_output_voltage (uint8_t i2c_address, uint8_t register_address, float output_voltage)
 Sets the output voltage of any buck. More...
 
float LTC3589_set_ldo2_fb_ref (uint8_t i2c_address, uint8_t register_address, float fb_ref_voltage)
 Writes the Feedback Reference Voltage of LDO2. More...
 
float LTC3589_set_buck_fb_ref (uint8_t i2c_address, uint8_t register_address, float fb_ref_voltage)
 Writes the Feedback Reference Voltage of any buck. More...
 
float LTC3589_ldo2_vout_max ()
 Calculates the maximum output voltage of LDO2 in mV based on the feedback resistors. More...
 
float LTC3589_ldo2_vout_min ()
 Calculates the minimum output voltage of LDO2 mV based on the feedback resistors. More...
 
float LTC3589_buck_vout_max (uint8_t buck_number)
 Calculates the maximum output voltage of any buck in mV based on the feedback resistors. More...
 
float LTC3589_buck_vout_min (uint8_t buck_number)
 Calculates the minimum output voltage of any buck in mV based on the feedback resistors. More...
 
int8_t LTC3589_select_ldo2_reference (uint8_t i2c_address, int8_t ref_char)
 Selects the reference for LDO2. More...
 
int8_t LTC3589_select_buck_reference (uint8_t i2c_address, uint8_t buck_number, int8_t ref_char)
 Selects the reference for the specified buck regulator(s). More...
 
int8_t LTC3589_set_buck_mode (uint8_t i2c_address, uint8_t buck_number, uint8_t mode)
 Sets the switching mode for the specified buck regulator(s). More...
 
int8_t LTC3589_set_buckboost_mode (uint8_t i2c_address, uint8_t mode)
 Sets the switching mode for the buck-boost regulator. More...
 
int8_t LTC3589_set_startup_mode (uint8_t i2c_address, uint8_t startup_bit)
 Sets the start-up mode for all regulators. More...
 
int8_t LTC3589_set_pgood_mask (uint8_t i2c_address, uint8_t pgood_bit)
 Sets the PGOOD mask bit for all bucks and LDO2. More...
 
int8_t LTC3589_set_ldo4_voltage (uint8_t i2c_address, uint8_t ldo4_output_voltage_code)
 Sets LDO4 output voltage on the LTC3589. More...
 
int8_t LTC3589_set_regulator_slew (uint8_t i2c_address, uint8_t regulator_mask, uint8_t slew_rate)
 Sets the dynamnic reference slew rate for the regulator(s). More...
 
int8_t LTC3589_set_switch_dvdt_control (uint8_t i2c_address, uint8_t dvdt_control_bits)
 Sets the switch DV/DT control for the buck regulators. More...
 
int8_t LTC3589_set_go_bits (uint8_t i2c_address)
 Sets all of the GO bits in the VCCR register. More...
 

Function Documentation

◆ LTC3589_bit_clear()

int8_t LTC3589_bit_clear ( uint8_t  i2c_address,
uint8_t  register_address,
uint8_t  bit_number 
)

Clears any bit inside the LTC3589 using the standard I2C repeated start format.

Returns
State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 register to be overwritten. This is also known as the "command byte".
bit_numberAddress of the bit to set within the register.

Definition at line 113 of file LTC3589.cpp.

◆ LTC3589_bit_is_set()

uint8_t LTC3589_bit_is_set ( uint8_t  i2c_address,
uint8_t  register_address,
uint8_t  bit_number 
)

Reads the value of any bit in any register or the LTC3589.

Returns
Bit value at the passed register subaddress and bit location.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 register to be read. This is also known as the "command byte".
bit_numberBit location (0-7) to be read.

Definition at line 140 of file LTC3589.cpp.

◆ LTC3589_bit_set()

int8_t LTC3589_bit_set ( uint8_t  i2c_address,
uint8_t  register_address,
uint8_t  bit_number 
)

Sets any bit inside the LTC3589 using the standard I2C repeated start format.

Returns
State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 register to be overwritten. This is also known as the "command byte".
bit_numberBit location (0-7) to be written.

Definition at line 100 of file LTC3589.cpp.

◆ LTC3589_bit_write()

int8_t LTC3589_bit_write ( uint8_t  i2c_address,
uint8_t  register_address,
uint8_t  bit_number,
uint8_t  bit_data 
)

Writes any bit inside the LTC3589 using the standard I2C repeated start format.

Returns
State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 register to be written.
bit_numberBit location (0-7) to be written.
bit_dataBit data (0 or 1) to be written.

Definition at line 126 of file LTC3589.cpp.

◆ LTC3589_buck_vout_max()

float LTC3589_buck_vout_max ( uint8_t  buck_number)

Calculates the maximum output voltage of any buck in mV based on the feedback resistors.

Returns
Maximum possible output voltage for the selected buck.
Parameters
buck_numberNumber (1-3) of buck.

Definition at line 229 of file LTC3589.cpp.

◆ LTC3589_buck_vout_min()

float LTC3589_buck_vout_min ( uint8_t  buck_number)

Calculates the minimum output voltage of any buck in mV based on the feedback resistors.

Returns
Minimum possible output voltage for the selected buck.
Parameters
buck_numberNumber (1-3) of buck.

Definition at line 246 of file LTC3589.cpp.

◆ LTC3589_ldo2_vout_max()

float LTC3589_ldo2_vout_max ( )

Calculates the maximum output voltage of LDO2 in mV based on the feedback resistors.

Returns
Maximum possible output voltage for LDO2.

Definition at line 217 of file LTC3589.cpp.

◆ LTC3589_ldo2_vout_min()

float LTC3589_ldo2_vout_min ( )

Calculates the minimum output voltage of LDO2 mV based on the feedback resistors.

Returns
Minimum possible output voltage for LDO2.

Definition at line 223 of file LTC3589.cpp.

◆ LTC3589_register_read()

int8_t LTC3589_register_read ( uint8_t  i2c_address,
uint8_t  register_address,
uint8_t *  register_data 
)

Reads an 8-bit register from the LTC3589 using the standard repeated start format.

Returns
State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 register to be read. This is also known as the "command byte".
register_datareturns 8-bit value read from the LTC3589 register.

Definition at line 84 of file LTC3589.cpp.

◆ LTC3589_register_write()

int8_t LTC3589_register_write ( uint8_t  i2c_address,
uint8_t  register_address,
uint8_t  register_data 
)

Writes to an 8-bit register inside the LTC3589 using the standard I2C repeated start format.

Returns
State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 register to be overwritten. This is also known as the "command byte".
register_dataValue that will be written to the register.

Definition at line 92 of file LTC3589.cpp.

◆ LTC3589_select_buck_reference()

int8_t LTC3589_select_buck_reference ( uint8_t  i2c_address,
uint8_t  buck_number,
int8_t  ref_char 
)

Selects the reference for the specified buck regulator(s).

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
buck_numberNumber (1-3) of the buck whose reference will be selected. Enter 0xFF for all bucks.
ref_charReference to select (A or B).

Definition at line 275 of file LTC3589.cpp.

◆ LTC3589_select_ldo2_reference()

int8_t LTC3589_select_ldo2_reference ( uint8_t  i2c_address,
int8_t  ref_char 
)

Selects the reference for LDO2.

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
ref_charReference to select (A or B).

Definition at line 263 of file LTC3589.cpp.

◆ LTC3589_set_buck_fb_ref()

float LTC3589_set_buck_fb_ref ( uint8_t  i2c_address,
uint8_t  register_address,
float  fb_ref_voltage 
)

Writes the Feedback Reference Voltage of any buck.

Returns
New Feedback Reference Input Voltage, the closest allowable voltage to the user's chosen voltage.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 Buck FB reference register to be written.
fb_ref_voltageNew Feedback Reference voltage to set in mV. Values between 362.5 and 750 are allowed.

Definition at line 202 of file LTC3589.cpp.

◆ LTC3589_set_buck_mode()

int8_t LTC3589_set_buck_mode ( uint8_t  i2c_address,
uint8_t  buck_number,
uint8_t  mode 
)

Sets the switching mode for the specified buck regulator(s).

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
buck_numberNumber (1-3) of the buck to set. Enter 0xFF for all bucks.
modeSwitching mode to be set (0=pulse skipping, 1=burst, 2=forced continuous)

Definition at line 294 of file LTC3589.cpp.

◆ LTC3589_set_buck_output_voltage()

float LTC3589_set_buck_output_voltage ( uint8_t  i2c_address,
uint8_t  register_address,
float  output_voltage 
)

Sets the output voltage of any buck.

Returns
New buck output voltage, the closest allowable voltage to the user's chosen voltage.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 Buck FB reference register to be written.
output_voltageNew output voltage to set, in mV. Assumes a valid voltage for the feedback resistors.

Definition at line 164 of file LTC3589.cpp.

◆ LTC3589_set_buckboost_mode()

int8_t LTC3589_set_buckboost_mode ( uint8_t  i2c_address,
uint8_t  mode 
)

Sets the switching mode for the buck-boost regulator.

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
modeSwitching mode to be set (0=pulse skipping, 1=burst, 2=forced continuous)

Definition at line 313 of file LTC3589.cpp.

◆ LTC3589_set_go_bits()

int8_t LTC3589_set_go_bits ( uint8_t  i2c_address)

Sets all of the GO bits in the VCCR register.

Parameters
i2c_addressI2C address of the LTC3589.

Definition at line 392 of file LTC3589.cpp.

◆ LTC3589_set_ldo2_fb_ref()

float LTC3589_set_ldo2_fb_ref ( uint8_t  i2c_address,
uint8_t  register_address,
float  fb_ref_voltage 
)

Writes the Feedback Reference Voltage of LDO2.

Returns
New Feedback Reference Input Voltage, the closest allowable voltage to the user's chosen voltage.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 LDO2 FB reference register to be written.
fb_ref_voltageNew Feedback Reference voltage to set in mV. Values between 362.5 and 750 are allowed.

Definition at line 187 of file LTC3589.cpp.

◆ LTC3589_set_ldo2_output_voltage()

float LTC3589_set_ldo2_output_voltage ( uint8_t  i2c_address,
uint8_t  register_address,
float  output_voltage 
)

Sets the output voltage of LDO2.

Returns
New LDO2 output voltage, the closest allowable voltage to the user's chosen voltage.
Parameters
i2c_addressI2C address of the LTC3589.
register_addressAddress of the LTC3589 LDO2 FB reference register to be written.
output_voltageNew output voltage to set, in mV. Assumes a valid voltage for the feedback resistors.

Definition at line 151 of file LTC3589.cpp.

◆ LTC3589_set_ldo4_voltage()

int8_t LTC3589_set_ldo4_voltage ( uint8_t  i2c_address,
uint8_t  ldo4_output_voltage_code 
)

Sets LDO4 output voltage on the LTC3589.

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
ldo4_output_voltage_codeVoltage code for new LDO4 output voltage (varies by part option).

Definition at line 347 of file LTC3589.cpp.

◆ LTC3589_set_pgood_mask()

int8_t LTC3589_set_pgood_mask ( uint8_t  i2c_address,
uint8_t  pgood_bit 
)

Sets the PGOOD mask bit for all bucks and LDO2.

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
pgood_bitData to write to PGOOD bit (0=PGOOD low when slewing, 1=PGOOD not forced low when slewing)

Definition at line 336 of file LTC3589.cpp.

◆ LTC3589_set_regulator_slew()

int8_t LTC3589_set_regulator_slew ( uint8_t  i2c_address,
uint8_t  regulator_mask,
uint8_t  slew_rate 
)

Sets the dynamnic reference slew rate for the regulator(s).

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
regulator_maskMask of the regulator to set. Enter 0xFF for all regulators.
slew_rateSlew rate code to set.

Definition at line 359 of file LTC3589.cpp.

◆ LTC3589_set_startup_mode()

int8_t LTC3589_set_startup_mode ( uint8_t  i2c_address,
uint8_t  startup_bit 
)

Sets the start-up mode for all regulators.

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
startup_bitData to write to start-up bit (0=enable at any output, 1=enable only if output <300mV)

Definition at line 322 of file LTC3589.cpp.

◆ LTC3589_set_switch_dvdt_control()

int8_t LTC3589_set_switch_dvdt_control ( uint8_t  i2c_address,
uint8_t  dvdt_control_bits 
)

Sets the switch DV/DT control for the buck regulators.

Returns
State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
Parameters
i2c_addressI2C address of the LTC3589.
dvdt_control_bitsTwo-bit DV/DT control code to set.

Definition at line 380 of file LTC3589.cpp.