Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board
LTC3589.h
Go to the documentation of this file.
1 /*!
2 LTC3589: 8-Output Regulator with Sequencing and I2C
3 
4 @verbatim
5 
6 The LTC3589 is a complete power management solution for ARM and ARM-based
7 processors and advanced portable microprocessor systems. The device contains
8 three step-down DC/DC converters for core, memory and SoC rails, a
9 buck-boost regulator for I/O at 1.8V to 5V and three 250mA LDO regulators
10 for low noise analog supplies. An I2C serial port is used to control enables,
11 output voltage levels, dynamic voltage scaling, operating modes and status
12 reporting.
13 Regulator start-up is sequenced by connecting outputs to enable pins in the
14 desired order or programmed via the I2C port. System power-on, power-off,
15 and reset functions are controlled by pushbutton interface, pin inputs, or
16 I2C interface.
17 The LTC3589 supports i.MX53/51, PXA and OMAP processors with eight
18 independent rails at appropriate power levels. Other features include
19 interface signals such as the VSTB pin that simultaneously toggle up to
20 four rails between programmed run and standby output voltages. The device
21 is available in a low profile 40-pin 6mm x 6mm exposed pad QFN package.
22 
23 I2C DATA FORMAT (MSB FIRST);
24 
25 @endverbatim
26 
27 http://www.linear.com/product/LTC3589
28 
29 http://www.linear.com/product/LTC3589#demoboards
30 
31 
32 Copyright 2018(c) Analog Devices, Inc.
33 
34 All rights reserved.
35 
36 Redistribution and use in source and binary forms, with or without
37 modification, are permitted provided that the following conditions are met:
38  - Redistributions of source code must retain the above copyright
39  notice, this list of conditions and the following disclaimer.
40  - Redistributions in binary form must reproduce the above copyright
41  notice, this list of conditions and the following disclaimer in
42  the documentation and/or other materials provided with the
43  distribution.
44  - Neither the name of Analog Devices, Inc. nor the names of its
45  contributors may be used to endorse or promote products derived
46  from this software without specific prior written permission.
47  - The use of this software may or may not infringe the patent rights
48  of one or more patent holders. This license does not release you
49  from the requirement that you obtain separate licenses from these
50  patent holders to use this software.
51  - Use of the software either in source or binary form, must be run
52  on or directly connected to an Analog Devices Inc. component.
53 
54 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
55 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
56 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
57 IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
58 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
59 LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
60 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
61 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
62 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
63 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
64 */
65 
66 /*! @file
67  @ingroup LTC3589
68  Library Header File for LTC3589: 8-Output Regulator with Sequencing and I2C
69 */
70 
71 #ifndef LTC3589_H
72 #define LTC3589_H
73 #endif
74 
75 /*! @name I2C Address
76  I2C address of the LTC3589/LTC3589-1/LTC3589-2.
77 @{ */
78 /* LTC3589 I2C Addresses */
79 #define LTC3589_I2C_ADDRESS 0x34
80 /*! @} */
81 
82 /*! @name Feedback Resistors
83  Factory feedback resistor values for the LTC3589 demo boards in kOhm.
84 @{ */
85 #define LTC3589_RES_BUCK1_RTOP 604
86 #define LTC3589_RES_BUCK1_RBOT 768
87 #define LTC3589_RES_BUCK2_RTOP 715
88 #define LTC3589_RES_BUCK2_RBOT 422
89 #define LTC3589_RES_BUCK3_RTOP 681
90 #define LTC3589_RES_BUCK3_RBOT 787
91 #define LTC3589_RES_LDO2_RTOP 604
92 #define LTC3589_RES_LDO2_RBOT 768
93 /*! @} */
94 
95 /*! @name Registers
96 @{ */
97 /* LTC3589 Registers */
98 #define LTC3589_REG_SCR1 0x07
99 #define LTC3589_REG_OVEN 0x10
100 #define LTC3589_REG_SCR2 0x12
101 #define LTC3589_REG_VCCR 0x20
102 #define LTC3589_REG_CLIRQ 0x21
103 #define LTC3589_REG_B1DTV1 0x23
104 #define LTC3589_REG_B1DTV2 0x24
105 #define LTC3589_REG_VRRCR 0x25
106 #define LTC3589_REG_B2DTV1 0x26
107 #define LTC3589_REG_B2DTV2 0x27
108 #define LTC3589_REG_B3DTV1 0x29
109 #define LTC3589_REG_B3DTV2 0x2A
110 #define LTC3589_REG_L2DTV1 0x32
111 #define LTC3589_REG_L2DTV2 0x33
112 #define LTC3589_REG_IRQSTAT 0x02
113 #define LTC3589_REG_PGSTAT 0x13
114 /*! @} */
115 
116 /*! @name LTC3589_REG_SCR1 Register Settings
117  Bit position of single bit settings in the LTC3589_REG_SCR1 registers.
118 @{ */
119 #define LTC3589_BUCKBOOST_MODE 6
120 /*! @} */
121 
122 /*! @name LTC3589_REG_OVEN Register Settings
123  Bit position of single bit settings in the LTC3589_REG_OVEN register.
124 @{ */
125 #define LTC3589_SOFTWARE_CNTRL 7
126 #define LTC3589_EN_LDO4 6
127 #define LTC3589_EN_LDO3 5
128 #define LTC3589_EN_LDO2 4
129 #define LTC3589_EN4 3
130 #define LTC3589_EN3 2
131 #define LTC3589_EN2 1
132 #define LTC3589_EN1 0
133 /*! @} */
134 
135 /*! @name LTC3589_REG_SCR2 Register Settings
136  Bit position of single bit settings in the LTC3589_REG_SCR2 register.
137 @{ */
138 #define LTC3589_MASK_PG_SHUTDOWN 7
139 #define LTC3589_LDO4_STARTUP 6
140 #define LTC3589_LDO3_STARTUP 5
141 #define LTC3589_LDO2_STARTUP 4
142 #define LTC3589_BB_STARTUP 3
143 #define LTC3589_BUCK3_STARTUP 2
144 #define LTC3589_BUCK2_STARTUP 1
145 #define LTC3589_BUCK1_STARTUP 0
146 /*! @} */
147 
148 /*! @name LTC3589_REG_VCCR Register Settings
149  Bit position of single bit settings in the LTC3589_REG_VCCR register.
150 @{ */
151 #define LTC3589_LDO2_REF_SELECT 7
152 #define LTC3589_LDO2_GO 6
153 #define LTC3589_BUCK3_REF_SELECT 5
154 #define LTC3589_BUCK3_GO 4
155 #define LTC3589_BUCK2_REF_SELECT 3
156 #define LTC3589_BUCK2_GO 2
157 #define LTC3589_BUCK1_REF_SELECT 1
158 #define LTC3589_BUCK1_GO 0
159 /*! @} */
160 
161 /*! @name LTC3589_REG_BxDTV1 Register Settings
162  Bit position of single bit settings in the LTC3589_REG_BxDTV1 registers.
163 @{ */
164 #define LTC3589_BUCK_PG_MASK 5
165 /*! @} */
166 
167 /*! @name LTC3589_REG_BxDTV2 Register Settings
168  Bit position of single bit settings in the LTC3589_REG_BxDTV2 register.
169 @{ */
170 #define LTC3589_BUCK_KEEP_ALIVE 7
171 #define LTC3589_BUCK_PHASE_SEL 6
172 #define LTC3589_BUCK_CLOCK_RATE 5
173 /*! @} */
174 
175 /*! @name LTC3589_REG_L2DTV1 Register Settings
176  Bit position of single bit settings in the LTC3589_REG_L2DTV1 register.
177 @{ */
178 #define LTC3589_LDO2_KEEP_ALIVE 7
179 #define LTC3589_LDO2_PG_MASK 5
180 /*! @} */
181 
182 /*! @name LTC3589_REG_L2DTV2 Register Settings
183  Bit position of single bit settings in the LTC3589_REG_L2DTV2 register.
184 @{ */
185 #define LTC3589_LDO2_CNTRL_MODE 7
186 /*! @} */
187 
188 /*! @name LTC3589_REG_IRQSTAT Register Settings
189  Bit position of status bits in the LTC3589_REG_IRQSTAT register.
190 @{ */
191 #define LTC3589_IRQ_OT_SHUTDOWN 7
192 #define LTC3589_IRQ_OT_WARNING 6
193 #define LTC3589_IRQ_UV_SHUTDOWN 5
194 #define LTC3589_IRQ_UV_WARNING 4
195 #define LTC3589_IRQ_PG_SHUTDOWN 3
196 /*! @} */
197 
198 /*! @name LTC3589_REG_PGSTAT Register Settings
199  Bit position of status bits in the LTC3589_REG_PGSTAT register.
200 @{ */
201 #define LTC3589_PG_LDO4 7
202 #define LTC3589_PG_LDO3 6
203 #define LTC3589_PG_LDO2 5
204 #define LTC3589_PG_BB 4
205 #define LTC3589_PG_BUCK3 3
206 #define LTC3589_PG_BUCK2 2
207 #define LTC3589_PG_BUCK1 1
208 #define LTC3589_PG_LDO1 0
209 /*! @} */
210 
211 /*! @name LTC3589 Mask Settings
212  Bitwise AND with register data to determine present setting.
213 @{ */
214 #define LTC3589_BUCK_MODE_MASK(num) (0x03<<((num)*2)-2)
215 #define LTC3589_BUCK3_MODE_MASK 0x30
216 #define LTC3589_BUCK2_MODE_MASK 0x0C
217 #define LTC3589_BUCK1_MODE_MASK 0x03
218 #define LTC3589_BUCK_DVDT_MASK 0xC0
219 #define LTC3589_FB_REF_MASK 0x1F
220 #define LTC3589_LDO2_SLEW_MASK 0xC0
221 #define LTC3589_BUCK3_SLEW_MASK 0x30
222 #define LTC3589_BUCK2_SLEW_MASK 0x0C
223 #define LTC3589_BUCK1_SLEW_MASK 0x03
224 #define LTC3589_LDO4_VOLTAGE_MASK 0x60
225 /*! @} */
226 
227 
228 //! Reads an 8-bit register from the LTC3589 using the standard repeated start format.
229 //! @return State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
230 int8_t LTC3589_register_read(uint8_t i2c_address, //!< I2C address of the LTC3589.
231  uint8_t register_address, //!< Address of the LTC3589 register to be read. This is also known as the "command byte".
232  uint8_t *register_data //!< returns 8-bit value read from the LTC3589 register.
233  );
234 
235 //! Writes to an 8-bit register inside the LTC3589 using the standard I2C repeated start format.
236 //! @return State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
237 int8_t LTC3589_register_write(uint8_t i2c_address, //!< I2C address of the LTC3589.
238  uint8_t register_address, //!< Address of the LTC3589 register to be overwritten. This is also known as the "command byte".
239  uint8_t register_data //!< Value that will be written to the register.
240  );
241 
242 //! Sets any bit inside the LTC3589 using the standard I2C repeated start format.
243 //! @return State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
244 int8_t LTC3589_bit_set(uint8_t i2c_address, //!< I2C address of the LTC3589.
245  uint8_t register_address, //!< Address of the LTC3589 register to be overwritten. This is also known as the "command byte".
246  uint8_t bit_number //!< Bit location (0-7) to be written.
247  );
248 
249 //! Clears any bit inside the LTC3589 using the standard I2C repeated start format.
250 //! @return State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
251 int8_t LTC3589_bit_clear(uint8_t i2c_address, //!< I2C address of the LTC3589.
252  uint8_t register_address, //!< Address of the LTC3589 register to be overwritten. This is also known as the "command byte".
253  uint8_t bit_number //!< Address of the bit to set within the register.
254  );
255 
256 //! Writes any bit inside the LTC3589 using the standard I2C repeated start format.
257 //! @return State of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.
258 int8_t LTC3589_bit_write(uint8_t i2c_address, //!< I2C address of the LTC3589.
259  uint8_t register_address, //!< Address of the LTC3589 register to be written.
260  uint8_t bit_number, //!< Bit location (0-7) to be written.
261  uint8_t bit_data //!< Bit data (0 or 1) to be written.
262  );
263 
264 //! Reads the value of any bit in any register or the LTC3589.
265 //! @return Bit value at the passed register subaddress and bit location.
266 uint8_t LTC3589_bit_is_set(uint8_t i2c_address, //!< I2C address of the LTC3589.
267  uint8_t register_address, //!< Address of the LTC3589 register to be read. This is also known as the "command byte".
268  uint8_t bit_number //!< Bit location (0-7) to be read.
269  );
270 
271 //! Sets the output voltage of LDO2.
272 //! @return New LDO2 output voltage, the closest allowable voltage to the user's chosen voltage.
273 float LTC3589_set_ldo2_output_voltage(uint8_t i2c_address, //!< I2C address of the LTC3589.
274  uint8_t register_address, //!< Address of the LTC3589 LDO2 FB reference register to be written.
275  float output_voltage //!< New output voltage to set, in mV. Assumes a valid voltage for the feedback resistors.
276  );
277 
278 //! Sets the output voltage of any buck.
279 //! @return New buck output voltage, the closest allowable voltage to the user's chosen voltage.
280 float LTC3589_set_buck_output_voltage(uint8_t i2c_address, //!< I2C address of the LTC3589.
281  uint8_t register_address, //!< Address of the LTC3589 Buck FB reference register to be written.
282  float output_voltage //!< New output voltage to set, in mV. Assumes a valid voltage for the feedback resistors.
283  );
284 
285 //! Writes the Feedback Reference Voltage of LDO2.
286 //! @return New Feedback Reference Input Voltage, the closest allowable voltage to the user's chosen voltage.
287 float LTC3589_set_ldo2_fb_ref(uint8_t i2c_address, //!< I2C address of the LTC3589.
288  uint8_t register_address, //!< Address of the LTC3589 LDO2 FB reference register to be written.
289  float fb_ref_voltage //!< New Feedback Reference voltage to set in mV. Values between 362.5 and 750 are allowed.
290  );
291 
292 //! Writes the Feedback Reference Voltage of any buck.
293 //! @return New Feedback Reference Input Voltage, the closest allowable voltage to the user's chosen voltage.
294 float LTC3589_set_buck_fb_ref(uint8_t i2c_address, //!< I2C address of the LTC3589.
295  uint8_t register_address, //!< Address of the LTC3589 Buck FB reference register to be written.
296  float fb_ref_voltage //!< New Feedback Reference voltage to set in mV. Values between 362.5 and 750 are allowed.
297  );
298 
299 //! Calculates the maximum output voltage of LDO2 in mV based on the feedback resistors.
300 //! @return Maximum possible output voltage for LDO2.
301 float LTC3589_ldo2_vout_max();
302 
303 //! Calculates the minimum output voltage of LDO2 mV based on the feedback resistors.
304 //! @return Minimum possible output voltage for LDO2.
305 float LTC3589_ldo2_vout_min();
306 
307 //! Calculates the maximum output voltage of any buck in mV based on the feedback resistors.
308 //! @return Maximum possible output voltage for the selected buck.
309 float LTC3589_buck_vout_max(uint8_t buck_number //!< Number (1-3) of buck.
310  );
311 
312 //! Calculates the minimum output voltage of any buck in mV based on the feedback resistors.
313 //! @return Minimum possible output voltage for the selected buck.
314 float LTC3589_buck_vout_min(uint8_t buck_number //!< Number (1-3) of buck.
315  );
316 
317 //! Selects the reference for LDO2.
318 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
319 int8_t LTC3589_select_ldo2_reference(uint8_t i2c_address, //!< I2C address of the LTC3589.
320  int8_t ref_char //!< Reference to select (A or B).
321  );
322 
323 //! Selects the reference for the specified buck regulator(s).
324 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
325 int8_t LTC3589_select_buck_reference(uint8_t i2c_address, //!< I2C address of the LTC3589.
326  uint8_t buck_number, //!< Number (1-3) of the buck whose reference will be selected. Enter 0xFF for all bucks.
327  int8_t ref_char //!< Reference to select (A or B).
328  );
329 
330 //! Sets the switching mode for the specified buck regulator(s).
331 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
332 int8_t LTC3589_set_buck_mode(uint8_t i2c_address, //!< I2C address of the LTC3589.
333  uint8_t buck_number, //!< Number (1-3) of the buck to set. Enter 0xFF for all bucks.
334  uint8_t mode //!< Switching mode to be set (0=pulse skipping, 1=burst, 2=forced continuous)
335  );
336 
337 //! Sets the switching mode for the buck-boost regulator.
338 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
339 int8_t LTC3589_set_buckboost_mode(uint8_t i2c_address, //!< I2C address of the LTC3589.
340  uint8_t mode //!< Switching mode to be set (0=pulse skipping, 1=burst, 2=forced continuous)
341  );
342 
343 //! Sets the start-up mode for all regulators.
344 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
345 int8_t LTC3589_set_startup_mode(uint8_t i2c_address, //!< I2C address of the LTC3589.
346  uint8_t startup_bit //!< Data to write to start-up bit (0=enable at any output, 1=enable only if output <300mV)
347  );
348 
349 //! Sets the PGOOD mask bit for all bucks and LDO2.
350 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
351 int8_t LTC3589_set_pgood_mask(uint8_t i2c_address, //!< I2C address of the LTC3589.
352  uint8_t pgood_bit //!< Data to write to PGOOD bit (0=PGOOD low when slewing, 1=PGOOD not forced low when slewing)
353  );
354 
355 //! Sets LDO4 output voltage on the LTC3589.
356 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
357 int8_t LTC3589_set_ldo4_voltage(uint8_t i2c_address, //!< I2C address of the LTC3589.
358  uint8_t ldo4_output_voltage_code //!< Voltage code for new LDO4 output voltage (varies by part option).
359  );
360 
361 //! Sets the dynamnic reference slew rate for the regulator(s).
362 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
363 int8_t LTC3589_set_regulator_slew(uint8_t i2c_address, //!< I2C address of the LTC3589.
364  uint8_t regulator_mask, //!< Mask of the regulator to set. Enter 0xFF for all regulators.
365  uint8_t slew_rate //!< Slew rate code to set.
366  );
367 
368 //! Sets the switch DV/DT control for the buck regulators.
369 //! @return State of the acknowledge bit after the I2C addresss write. 0=acknowledge, 1=no acknowledge.
370 int8_t LTC3589_set_switch_dvdt_control(uint8_t i2c_address, //!< I2C address of the LTC3589.
371  uint8_t dvdt_control_bits //!< Two-bit DV/DT control code to set.
372  );
373 
374 //! Sets all of the GO bits in the VCCR register.
375 int8_t LTC3589_set_go_bits(uint8_t i2c_address //!< I2C address of the LTC3589.
376  );
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.
Definition: LTC3589.cpp:100
int8_t LTC3589_set_go_bits(uint8_t i2c_address)
Sets all of the GO bits in the VCCR register.
Definition: LTC3589.cpp:392
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).
Definition: LTC3589.cpp:275
uint8_t i2c_address
float LTC3589_ldo2_vout_max()
Calculates the maximum output voltage of LDO2 in mV based on the feedback resistors.
Definition: LTC3589.cpp:217
int8_t LTC3589_set_pgood_mask(uint8_t i2c_address, uint8_t pgood_bit)
Sets the PGOOD mask bit for all bucks and LDO2.
Definition: LTC3589.cpp:336
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.
Definition: LTC3589.cpp:202
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.
Definition: LTC3589.cpp:187
float LTC3589_set_ldo2_output_voltage(uint8_t i2c_address, uint8_t register_address, float output_voltage)
Sets the output voltage of LDO2.
Definition: LTC3589.cpp:151
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.
Definition: LTC3589.cpp:140
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).
Definition: LTC3589.cpp:359
float LTC3589_buck_vout_min(uint8_t buck_number)
Calculates the minimum output voltage of any buck in mV based on the feedback resistors.
Definition: LTC3589.cpp:246
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.
Definition: LTC3589.cpp:113
int8_t LTC3589_set_buckboost_mode(uint8_t i2c_address, uint8_t mode)
Sets the switching mode for the buck-boost regulator.
Definition: LTC3589.cpp:313
float LTC3589_buck_vout_max(uint8_t buck_number)
Calculates the maximum output voltage of any buck in mV based on the feedback resistors.
Definition: LTC3589.cpp:229
int8_t LTC3589_set_ldo4_voltage(uint8_t i2c_address, uint8_t ldo4_output_voltage_code)
Sets LDO4 output voltage on the LTC3589.
Definition: LTC3589.cpp:347
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).
Definition: LTC3589.cpp:294
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.
Definition: LTC3589.cpp:380
int8_t LTC3589_select_ldo2_reference(uint8_t i2c_address, int8_t ref_char)
Selects the reference for LDO2.
Definition: LTC3589.cpp:263
float LTC3589_set_buck_output_voltage(uint8_t i2c_address, uint8_t register_address, float output_voltage)
Sets the output voltage of any buck.
Definition: LTC3589.cpp:164
int8_t LTC3589_set_startup_mode(uint8_t i2c_address, uint8_t startup_bit)
Sets the start-up mode for all regulators.
Definition: LTC3589.cpp:322
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.
Definition: LTC3589.cpp:84
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.
Definition: LTC3589.cpp:126
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...
Definition: LTC3589.cpp:92
float LTC3589_ldo2_vout_min()
Calculates the minimum output voltage of LDO2 mV based on the feedback resistors. ...
Definition: LTC3589.cpp:223