78 uint8_t
reg_read_list[15] = {0x07,0x010,0x12,0x20,0x23,0x24,0x25,0x26,0x27,0x29,0x2A,0x32,0x33,0x02,0x13};
79 uint8_t
reg_write_list[14] = {0x07,0x010,0x12,0x20,0x21,0x23,0x24,0x25,0x26,0x27,0x29,0x2A,0x32,0x33};
109 if (Serial.available())
112 if (user_command !=
'm')
113 Serial.println(user_command);
115 switch (user_command)
127 Serial.println(
"Incorrect Option");
132 Serial.print(F(
"Error: No Acknowledge. \n"));
148 uint8_t user_register;
153 Serial.print(F(
"\nRead/Write Registers\n\n"));
154 Serial.print(F(
" 1-Read All Registers\n"));
155 Serial.print(F(
" 2-Read Single Register\n"));
156 Serial.print(F(
" 3-Write Single Register\n"));
157 Serial.print(F(
" 4-Set Bit\n"));
158 Serial.print(F(
" 5-Clear Bit\n"));
159 Serial.print(F(
" 6-Clear IRQ\n"));
160 Serial.print(F(
" m-Main Menu\n"));
161 Serial.print(F(
"\nEnter a command: "));
164 if (user_command ==
'm')
166 Serial.print(F(
"m\n"));
169 Serial.println(user_command);
172 switch (user_command)
180 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register to read: "));
183 Serial.println(user_register, HEX);
186 Serial.println(F(
" Invalid input."));
190 Serial.print(
"Register data: 0x");
191 Serial.println(data, HEX);
195 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register to write: "));
198 Serial.println(user_register, HEX);
199 if (user_register == 0x21)
201 Serial.println(F(
" Clear IRQ command sent."));
207 Serial.println(F(
" Invalid input."));
210 Serial.print(F(
"Data (in hex with '0x' prefix) to write: "));
212 Serial.println(data, HEX);
215 Serial.print(data, HEX);
216 Serial.print(
" written to register 0x");
217 Serial.println(user_register, HEX);
221 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register: "));
224 Serial.println(user_register, HEX);
227 Serial.println(F(
" Invalid input."));
230 Serial.print(F(
"Bit position (0-7) to set: "));
232 if (data < 0 || data > 7)
234 Serial.println(F(
" Invalid input."));
237 Serial.println(data, DEC);
239 Serial.print(
"Bit set. Register data is now 0x");
241 Serial.println(data, HEX);
245 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register: "));
248 Serial.println(user_register, HEX);
251 Serial.println(F(
" Invalid input."));
254 Serial.print(F(
"Bit position (0-7) to clear: "));
256 if (data < 0 || data > 7)
258 Serial.println(F(
"Invalid input."));
261 Serial.println(data, DEC);
263 Serial.print(
"Bit cleared. Register data is now 0x");
265 Serial.println(data, HEX);
269 Serial.println(F(
"\n Clear IRQ command sent."));
273 if (user_command !=
'm')
274 Serial.println(
"Invalid Selection");
278 while ((user_command !=
'm') && (ack != 1));
289 uint8_t user_register;
297 Serial.print(F(
"\nRegulator Settings\n\n"));
298 Serial.print(F(
" 1-Enable/Disable Switchers\n"));
299 Serial.print(F(
" 2-Enable/Disable LDOs\n"));
300 Serial.print(F(
" 3-Set Buck Output Voltage\n"));
301 Serial.print(F(
" 4-Set Buck Feedback Reference\n"));
302 Serial.print(F(
" 5-Select Buck Reference\n"));
303 Serial.print(F(
" 6-Set LDO2 Output Voltage\n"));
304 Serial.print(F(
" 7-Set LDO2 Feedback Reference\n"));
305 Serial.print(F(
" 8-Select LDO2 Reference\n"));
306 Serial.print(F(
" 9-Set Buck Switching Mode\n"));
307 Serial.print(F(
" 10-Set Buck-Boost Switching Mode\n"));
308 Serial.print(F(
" 11-Set Start-Up Mode (300mV check)\n"));
309 Serial.print(F(
" 12-Set PGOOD Slewing Mask Bits\n"));
310 Serial.print(F(
" 13-Set LDO4 Voltage\n"));
311 Serial.print(F(
" 14-Set Switch DV/DT Control\n"));
312 Serial.print(F(
" 15-Set Regulator Slew Rate\n"));
313 Serial.print(F(
" 16-Exit Software Control Mode\n"));
314 Serial.print(F(
" m-Main Menu\n"));
315 Serial.print(F(
"\nEnter a command: "));
318 if (user_command ==
'm')
319 Serial.print(F(
"m\n"));
321 Serial.println(user_command);
324 switch (user_command)
330 Serial.print(F(
"\n********** Note: LTC3589 is now in Sofware Control Mode **********\n"));
331 Serial.print(F(
"***************Select Option 16 to resume Pin Control ************\n"));
335 Serial.print(F(
"\nSelect Regulator(1-3=Bucks, 4=Buck-boost, 5=All): "));
337 Serial.println(user_buck, DEC);
338 if (user_buck < 1 || user_buck > 5)
340 Serial.println(F(
" Invalid input."));
343 Serial.println(F(
"0=Disable, 1=Enable"));
344 Serial.print(F(
"Enter selection: "));
346 Serial.println(user_int, DEC);
349 Serial.println(F(
" Invalid input."));
361 Serial.println(F(
"Done."));
367 Serial.print(F(
"\n********** Note: LTC3589 is now in Sofware Control Mode **********\n"));
368 Serial.print(F(
"***************Select Option 16 to resume Pin Control ************\n"));
372 Serial.print(F(
"\nSelect LDO(2-4, 5=all): "));
374 Serial.println(user_ldo, DEC);
375 if (user_ldo < 2 || user_ldo > 5)
377 Serial.println(F(
" Invalid input."));
380 Serial.println(F(
"0=Disable, 1=Enable"));
381 Serial.print(F(
"Enter selection: "));
383 Serial.println(user_int, DEC);
386 Serial.println(F(
" Invalid input."));
396 Serial.println(F(
"Done."));
402 Serial.print(F(
"\nSelect Buck(1-3): "));
404 Serial.println(user_int, DEC);
405 if (user_int < 1 || user_int > 3)
407 Serial.println(F(
"Invalid input."));
412 else if (user_int == 2)
414 else if (user_int == 3)
416 Serial.print(F(
"Select Reference (1=B"));
417 Serial.print(user_int, DEC);
418 Serial.print(F(
"DTV1, 2=B"));
419 Serial.print(user_int, DEC);
420 Serial.print(F(
"DTV2): "));
422 Serial.write(user_char);
423 if (user_char < '1' || user_char >
'2')
425 Serial.println(F(
"\nInvalid input."));
428 else if (user_char ==
'2')
430 Serial.print(F(
"\nPotential output voltage range: "));
432 Serial.print(F(
"mV to "));
434 Serial.print(F(
"mV."));
435 Serial.print(F(
"\nNew output voltage in mV: "));
437 Serial.println(user_output, 0);
440 Serial.println(F(
"\nInvalid input."));
444 Serial.print(F(
"Output voltage set to "));
445 Serial.print(new_output, 0);
446 Serial.println(F(
"mV"));
447 Serial.print(F(
"New Feedback Reference Bits: 0x"));
449 Serial.println(data & 0x1F, HEX);
453 float user_reference;
455 Serial.print(F(
"\nSelect Buck(1-3): "));
457 Serial.println(user_int, DEC);
458 if (user_int < 1 || user_int > 3)
460 Serial.println(F(
"Invalid input."));
465 else if (user_int == 2)
467 else if (user_int == 3)
469 Serial.print(F(
"Select Reference (1=B"));
470 Serial.print(user_int);
471 Serial.print(F(
"DTV1, 2=B"));
472 Serial.print(user_int);
473 Serial.print(F(
"DTV2): "));
475 Serial.write(user_char);
476 if (user_char < '1' || user_char >
'2')
478 Serial.println(F(
"\nInvalid input."));
481 else if (user_char ==
'2')
483 Serial.print(F(
"\nNew feedback reference input in mV (362.5-750): "));
485 Serial.println(user_reference);
486 if (user_reference < 362.5 | user_reference > 750)
488 Serial.println(F(
"\nInvalid input."));
492 Serial.print(F(
"Feedback reference input set to "));
493 Serial.print(new_reference, 0);
494 Serial.println(F(
"mV"));
495 Serial.print(F(
"New Feedback Reference Bits: 0x"));
497 Serial.println(data & 0x1F, HEX);
501 Serial.print(F(
"\nSelect Buck(1-3, 4=all): "));
503 Serial.println(user_buck, DEC);
504 if (user_buck < 1 || user_buck > 4)
506 Serial.println(F(
" Invalid input."));
509 Serial.print(F(
"Select Reference 1 or 2): "));
511 Serial.write(user_char);
512 if (user_char ==
'1' || user_char ==
'2')
518 Serial.println(F(
"\nDone."));
521 Serial.println(F(
"\n Invalid input."));
526 Serial.print(F(
"Select Reference (1=L2DTV1, 2=L2DTV2): "));
528 Serial.write(user_char);
529 if (user_char < '1' || user_char >
'2')
531 Serial.println(F(
"\nInvalid input."));
534 else if (user_char ==
'2')
536 Serial.print(F(
"\nPotential output voltage range: "));
538 Serial.print(F(
"mV to "));
540 Serial.print(F(
"mV"));
541 Serial.print(F(
"\nNew output voltage in mV: "));
543 Serial.println(user_output, 0);
546 Serial.println(F(
"\nInvalid input."));
550 Serial.print(F(
"Output voltage set to "));
551 Serial.print(new_output, 0);
552 Serial.println(F(
"mV"));
553 Serial.print(F(
"New Feedback Reference Bits: 0x"));
555 Serial.println(data & 0x1F, HEX);
559 Serial.print(F(
"Select Reference (1=L2DTV1, 2=L2DTV2): "));
561 Serial.write(user_char);
562 if (user_char < '1' || user_char >
'2')
564 Serial.println(F(
"\nInvalid input."));
567 else if (user_char ==
'2')
569 Serial.print(F(
"\nNew feedback reference input in mV (362.5-750): "));
571 Serial.println(user_reference);
572 if (user_reference < 362.5 | user_reference > 750)
574 Serial.println(F(
"\nInvalid input."));
578 Serial.print(F(
"Feedback reference input set to "));
579 Serial.print(new_reference, 0);
580 Serial.println(F(
"mV"));
581 Serial.print(F(
"New Feedback Reference Bits: 0x"));
583 Serial.println(data & 0x1F, HEX);
587 Serial.print(F(
"Select Reference 1 or 2): "));
589 Serial.write(user_char);
590 if (user_char ==
'1' || user_char ==
'2')
593 Serial.println(F(
"\nDone."));
596 Serial.println(F(
"\n Invalid input."));
600 Serial.print(F(
"\nSelect Buck(1-3, 4=all): "));
602 Serial.println(user_register, DEC);
603 if (user_register < 1 || user_register > 4)
605 Serial.println(F(
" Invalid input."));
608 Serial.print(F(
"Select mode (0=Pulse Skipping, 1=Burst, 2=Forced Continuous): "));
610 Serial.println(user_int, DEC);
611 if (user_int < 0 || user_int > 2)
613 Serial.println(F(
" Invalid input."));
616 if (user_register == 4)
620 Serial.println(F(
"Switching mode(s) set."));
624 Serial.print(F(
"Select mode (0=Continuous, 1=Burst): "));
626 Serial.println(user_int, DEC);
627 if (user_int < 0 || user_int > 1)
629 Serial.println(F(
" Invalid input."));
633 Serial.println(F(
"Switching mode(s) set."));
637 Serial.println(F(
"0=Wait for output <300mV to enable, 1=Don't wait & disable discharge resistor"));
639 Serial.print(F(
"\nSelect start-up mode: "));
640 Serial.print(F(
"Enter selection: "));
642 Serial.println(user_int, DEC);
643 if (user_int < 0 || user_int > 1)
645 Serial.println(F(
" Invalid input."));
648 Serial.println(F(
"Start-up modes set."));
652 Serial.println(F(
"0=PGOOD low when slewing, 1=PGOOD not forced low when slewing"));
653 Serial.print(F(
"Enter selection: "));
655 Serial.println(user_int, DEC);
656 if (user_int < 0 || user_int > 1)
658 Serial.println(F(
" Invalid input."));
662 Serial.println(F(
"PGOOD Mask bits set."));
670 Serial.print(F(
"Select LDO4 Voltage (0=1.2V, 1=1.8V, 2=2.5V, 3=3.2V): "));
674 Serial.print(F(
"Select LDO4 Voltage (0=2.8V, 1=2.5V, 2=1.8V, 3=3.3V): "));
677 Serial.println(user_int, DEC);
680 Serial.println(F(
" Invalid input."));
684 Serial.println(F(
"LDO4 Voltage Set."));
691 Serial.print(F(
"Select DV/DT Control (0=1ns, 1=2ns, 2=4ns, 3=8ns): "));
693 Serial.println(user_int, DEC);
696 Serial.println(F(
" Invalid input."));
700 Serial.println(F(
"Switch DV/DT Set."));
704 Serial.print(F(
"\nSelect Regulator(1-3=Bucks, 4=LDO2, 5=All): "));
706 Serial.println(user_buck, DEC);
707 if (user_buck < 1 || user_buck > 5)
709 Serial.println(F(
" Invalid input."));
712 Serial.print(F(
"Select Slew Rate (0=0.88mV/us, 1=1.75mV/us, 2=3.5mV/us, 3=7mV/us): "));
714 Serial.println(user_int, DEC);
717 Serial.println(F(
" Invalid input."));
726 Serial.println(F(
"Done."));
731 Serial.println(F(
"\nDone."));
734 if (user_command !=
'm')
735 Serial.println(
" Invalid Selection");
739 while ((user_command !=
'm') && (ack != 1));
750 uint8_t user_sequence;
754 uint8_t reg_bit_position[7] = {0,1,2,3,4,5,6};
760 Serial.print(F(
"\n********** Note: LTC3589 is now in Sofware Control Mode **********\n"));
761 Serial.print(F(
"************** Select Option 5 to resume Pin Control *************\n"));
768 Serial.print(F(
"\nPowerup Sequencing\n\n"));
769 Serial.print(F(
" 1-Set Power-up Sequence\n"));
770 Serial.print(F(
" 2-Print Power-up Sequence\n"));
771 Serial.print(F(
" 3-Power-up Regulators\n"));
772 Serial.print(F(
" 4-Power-down Regulators\n"));
773 Serial.print(F(
" 5-Exit Software Control Mode\n"));
774 Serial.print(F(
" m-Main Menu\n"));
775 Serial.print(F(
"\nEnter a command: "));
778 if (user_command ==
'm')
779 Serial.print(F(
"m\n"));
781 Serial.println(user_command);
783 switch (user_command)
786 Serial.println(F(
"\nRegulators will power-up in 4 phases"));
787 Serial.println(F(
"Select a phase for each"));
788 Serial.println(F(
"1=First phase, 2=Second phase, 3=Third phase, 4=Fourth phase, 0=Don't enable"));
789 Serial.print(F(
"Buck1: "));
791 Serial.println(user_int, DEC);
793 reg_phase[0] = user_int;
794 Serial.print(F(
"Buck2: "));
796 Serial.println(user_int, DEC);
798 reg_phase[1] = user_int;
799 Serial.print(F(
"Buck3: "));
801 Serial.println(user_int, DEC);
803 reg_phase[2] = user_int;
804 Serial.print(F(
"BB: "));
806 Serial.println(user_int, DEC);
808 reg_phase[3] = user_int;
809 Serial.print(F(
"LDO2: "));
811 Serial.println(user_int, DEC);
813 reg_phase[4] = user_int;
814 Serial.print(F(
"LDO3: "));
816 Serial.println(user_int, DEC);
818 reg_phase[5] = user_int;
819 Serial.print(F(
"LDO4: "));
821 Serial.println(user_int, DEC);
823 reg_phase[6] = user_int;
824 Serial.print(F(
"Enter delay between phases in milliseconds: "));
829 Serial.println(F(
"Values less than 0 or greater than 10s not allowed."));
832 Serial.print(F(
"\nBuck1: "));
833 Serial.println(reg_phase[0]);
834 Serial.print(F(
"Buck2: "));
835 Serial.println(reg_phase[1]);
836 Serial.print(F(
"Buck3: "));
837 Serial.println(reg_phase[2]);
838 Serial.print(F(
"BB: "));
839 Serial.println(reg_phase[3]);
840 Serial.print(F(
"LDO2: "));
841 Serial.println(reg_phase[4]);
842 Serial.print(F(
"LDO3: "));
843 Serial.println(reg_phase[5]);
844 Serial.print(F(
"LDO4: "));
845 Serial.println(reg_phase[6]);
846 Serial.print(F(
"Delay: "));
848 Serial.println(F(
"ms"));
853 for (count=0; count<7; count++)
855 if (reg_phase[count] == 1)
857 reg_oven |= 0x01<<reg_bit_position[count];
864 for (count=0; count<7; count++)
866 if (reg_phase[count] == 2)
868 reg_oven |= 0x01<<reg_bit_position[count];
875 for (count=0; count<7; count++)
877 if (reg_phase[count] == 3)
879 reg_oven |= 0x01<<reg_bit_position[count];
886 for (count=0; count<7; count++)
888 if (reg_phase[count] == 4)
890 reg_oven |= 0x01<<reg_bit_position[count];
905 if (user_command !=
'm')
906 Serial.println(
" Invalid Selection");
910 while ((user_command !=
'm') && (ack != 1));
917 Serial.print(F(
"\n******************************************************************\n"));
918 Serial.print(F(
"* DC1558A Demonstration Program *\n"));
919 Serial.print(F(
"* *\n"));
920 Serial.print(F(
"* This program demonstrates how to send and receive data from *\n"));
921 Serial.print(F(
"* the LTC3589 8-Output Regulator with Sequencing and I2C. *\n"));
922 Serial.print(F(
"* *\n"));
923 Serial.print(F(
"* Setup: *\n"));
924 Serial.print(F(
"* Set the baud rate to 115200 and select the newline terminator. *\n"));
925 Serial.print(F(
"* Set all switches in SW1 to their default position. *\n"));
926 Serial.print(F(
"* Tie PWR_ON high by connecting it to VIN. *\n"));
927 Serial.print(F(
"* Power VIN from an external power supply. *\n"));
928 Serial.print(F(
"* *\n"));
929 Serial.print(F(
"* Note: *\n"));
930 Serial.print(F(
"* For proper IRQ LED behavior, move resistor R39 to the *\n"));
931 Serial.print(F(
"* optional R38 position on the DC2026B. *\n"));
932 Serial.print(F(
"******************************************************************\n"));
938 Serial.print(F(
"\n 1-Read/Write Registers\n"));
939 Serial.print(F(
" 2-Regulator Settings\n"));
940 Serial.print(F(
" 3-Sequencing\n"));
941 Serial.print(F(
"\nEnter a command:"));
947 Serial.println(F(
"\nWarning: Demo board not detected. Linduino will attempt to proceed."));
960 Serial.print(
"Register 0x");
962 Serial.print(
":\t0x");
963 Serial.println(data, HEX);
970 boolean valid_register(uint8_t user_register, uint8_t register_array[], uint8_t array_length)
973 for (i=0; i<array_length; i++)
975 if (register_array[i] == user_register)
994 else if (strcmp(
demo_board.
name, demo_name_2) == 0) connected = 1;
998 Serial.print(
"Demo Board Name: ");
1000 Serial.print(
"Product Name: ");
1004 Serial.print(
"Demo Board Option: ");
1010 Serial.print(
"Demo board not found, \nfound ");
1012 Serial.println(
" instead. \nConnect the correct demo board, then press the reset button.");
struct demo_board_type demo_board
Instantiate demo board structure.
#define LTC3589_BUCKBOOST_MODE
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.
static float delay_ms
Delay between power-up phases.
char option
Demo Circuit option (A)
static int8_t discover_demo_boards(char *demo_name_1, char *demo_name_2)
Read the ID string from the EEPROM to identify the connected demo board.
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.
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.
unsigned char user_command
static uint8_t i2c_address
I2C address set for all LTC3589 options.
static uint8_t demo_board_connected
Set to 1 if the board is connected.
char name[15]
Demo Circuit number (DC1678)
float LTC3589_ldo2_vout_min()
Calculates the minimum output voltage of LDO2 mV based on the feedback resistors. ...
int8_t LTC3589_select_ldo2_reference(uint8_t i2c_address, int8_t ref_char)
Selects the reference for LDO2.
#define LTC3589_REG_B2DTV1
Header File for Linduino Libraries and Demo Code.
LTC3589: 8-Output Regulator with Sequencing and I2C.
static void loop()
Repeats Linduino loop.
static int8_t menu_2_regulator_settings()
Prints the Regulator Settings menu and handles the user response.
float LTC3589_ldo2_vout_max()
Calculates the maximum output voltage of LDO2 in mV based on the feedback resistors.
boolean valid_register(uint8_t user_register, uint8_t register_array[], uint8_t array_length)
Checks to see if a register address is a valid address in this device.
#define LTC3589_I2C_ADDRESS
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.
static int8_t LTC3589_print_all_registers(uint8_t i2c_address)
Reads and prints the data in every register.
static int8_t menu_3_sequencing(uint8_t *reg_phase)
Prints the Powerup Sequencing menu and handles the user response.
static void print_title()
Prints the title block when program first starts.
char demo_name_1[]
Demo Board Name stored in QuikEval EEPROM.
union LT_union_int32_4bytes data
float LTC3589_buck_vout_max(uint8_t buck_number)
Calculates the maximum output voltage of any buck in mV based on the feedback resistors.
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...
char demo_name_2[]
Demo Board Name stored in QuikEval EEPROM.
float LTC3589_buck_vout_min(uint8_t buck_number)
Calculates the minimum output voltage of any buck in mV based on the feedback resistors.
static void print_prompt()
Prints main menu.
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).
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).
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.
#define LTC3589_SOFTWARE_CNTRL
static uint8_t reg_phase[7]
Power-up sequence phases for every regulator output.
LT_I2C: Routines to communicate with ATmega328P's hardware I2C port.
#define LTC3589_REG_B1DTV1
float LTC3589_set_buck_output_voltage(uint8_t i2c_address, uint8_t register_address, float output_voltage)
Sets the output voltage of any buck.
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.
#define LTC3589_REG_L2DTV1
#define LTC3589_REG_CLIRQ
char product_name[15]
LTC Product (LTC2654-L16)
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).
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.
void quikeval_I2C_init(void)
Initializes Linduino I2C port.
static char board_option
Demo board option of the attached demo board.
void quikeval_I2C_connect(void)
Switch MUX to connect I2C pins to QuikEval connector.
float LTC3589_set_ldo2_output_voltage(uint8_t i2c_address, uint8_t register_address, float output_voltage)
Sets the output voltage of LDO2.
int8_t LTC3589_set_pgood_mask(uint8_t i2c_address, uint8_t pgood_bit)
Sets the PGOOD mask bit for all bucks and LDO2.
static uint8_t reg_write_list[14]
static int8_t menu_1_read_write_registers()
Prints the Read/Write Registers menu and handles the user response.
int8_t LTC3589_set_ldo4_voltage(uint8_t i2c_address, uint8_t ldo4_output_voltage_code)
Sets LDO4 output voltage on the LTC3589.
static void print_warning_prompt()
Prints a warning that no demo board was not detected.
uint8_t read_quikeval_id_string(char *buffer)
Read the id string from the EEPROM, then parse the product name, demo board name, and demo board opti...
char ui_buffer[UI_BUFFER_SIZE]
#define LTC3589_REG_B3DTV1
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.
static uint8_t reg_read_list[15]