85 char eeprom_string[50];
116 if (Serial.available())
119 if (user_command !=
'm')
120 Serial.println(user_command);
122 switch (user_command)
137 Serial.println(
"Incorrect Option");
142 Serial.print(F(
"Error: No Acknowledge. \n"));
154 Serial.print(F(
"\n*****************************************************************\n"));
155 Serial.print(F(
"* DC1976A Demonstration Program *\n"));
156 Serial.print(F(
"* *\n"));
157 Serial.print(F(
"* This program demonstrates how to send and receive data from *\n"));
158 Serial.print(F(
"* the LTC3676 Power Management Solution for *\n"));
159 Serial.print(F(
"* Application Processors. *\n"));
160 Serial.print(F(
"* *\n"));
161 Serial.print(F(
"* Set the baud rate to 115200 and select the newline terminator.*\n"));
162 Serial.print(F(
"* *\n"));
163 Serial.print(F(
"*****************************************************************\n"));
169 Serial.print(F(
"\n 1-Read/Write Registers\n"));
170 Serial.print(F(
" 2-Regulator Settings\n"));
171 Serial.print(F(
" 3-Control Settings\n"));
172 Serial.print(F(
" 4-Sequencing\n"));
173 Serial.print(F(
"\nEnter a command:"));
179 Serial.println(F(
"\nWarning: Demo board not detected. Linduino will attempt to proceed."));
185 uint8_t user_register = 0x01;
190 Serial.print(
"Register 0x");
191 Serial.print(user_register, HEX);
192 Serial.print(
":\t0x");
193 Serial.println(data, HEX);
196 while ((user_register <= 0x17) && (ack != 1));
204 for (i=0; i < strlen(eeprom_string); i++)
206 if (eeprom_string[i] ==
'A' && option ==
'0')
207 option = eeprom_string[i+2];
217 uint8_t user_register;
222 Serial.print(F(
"\nRead/Write Registers\n\n"));
223 Serial.print(F(
" 1-Read All Registers\n"));
224 Serial.print(F(
" 2-Read Single Register\n"));
225 Serial.print(F(
" 3-Write Single Register\n"));
226 Serial.print(F(
" 4-Set Bit\n"));
227 Serial.print(F(
" 5-Clear Bit\n"));
228 Serial.print(F(
" 6-Clear IRQ\n"));
229 Serial.print(F(
" 7-Send Hard Reset Command\n"));
230 Serial.print(F(
" m-Main Menu\n"));
231 Serial.print(F(
"\nEnter a command: "));
234 if (user_command ==
'm')
236 Serial.print(F(
"m\n"));
239 Serial.println(user_command);
242 switch (user_command)
250 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register to read: "));
253 Serial.println(user_register, HEX);
254 if (user_register < 0x01 || user_register > 0x17)
256 Serial.println(F(
" Invalid input."));
260 Serial.print(
"Register data: 0x");
261 Serial.println(data, HEX);
265 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register to write: "));
268 Serial.println(user_register, HEX);
269 if (user_register == 0x1E)
271 Serial.println(F(
" Hard Reset command sent."));
275 else if (user_register == 0x1F)
277 Serial.println(F(
" Clear IRQ command sent."));
281 else if (user_register < 0x01 || user_register > 0x17)
283 Serial.println(F(
" Invalid input."));
286 Serial.print(F(
"Data (in hex with '0x' prefix) to write: "));
288 Serial.println(data, HEX);
291 Serial.print(data, HEX);
292 Serial.print(
" written to register 0x");
293 Serial.println(user_register, HEX);
297 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register: "));
300 Serial.println(user_register, HEX);
301 if (user_register < 0x01 || user_register > 0x17)
303 Serial.println(F(
" Invalid input."));
306 Serial.print(F(
"Bit position (0-7) to set: "));
308 if (data < 0 || data > 7)
310 Serial.println(F(
" Invalid input."));
313 Serial.println(data, DEC);
315 Serial.print(
"Bit set. Register data is now 0x");
317 Serial.println(data, HEX);
321 Serial.print(F(
"\nAddress (in hex with '0x' prefix) of register: "));
324 Serial.println(user_register, HEX);
325 if (user_register < 0x01 || user_register > 0x17)
327 Serial.println(F(
" Invalid input."));
330 Serial.print(F(
"Bit position (0-7) to clear: "));
332 if (data < 0 || data > 7)
334 Serial.println(F(
"Invalid input."));
337 Serial.println(data, DEC);
339 Serial.print(
"Bit cleared. Register data is now 0x");
341 Serial.println(data, HEX);
345 Serial.println(F(
"\n Clear IRQ command sent."));
350 Serial.println(F(
"\n Hard Reset command sent."));
354 if (user_command !=
'm')
355 Serial.println(
"Invalid Selection");
359 while ((user_command !=
'm') && (ack != 1));
368 uint8_t user_register;
376 Serial.print(F(
"\nRegulator Settings\n\n"));
377 Serial.print(F(
" 1-Enable/Disable Bucks\n"));
378 Serial.print(F(
" 2-Enable/Disable LDOs\n"));
379 Serial.print(F(
" 3-Set Buck Output Voltage\n"));
380 Serial.print(F(
" 4-Set Buck Feedback Reference\n"));
381 Serial.print(F(
" 5-Select Buck Reference\n"));
382 Serial.print(F(
" 6-Set Buck Switching Mode\n"));
383 Serial.print(F(
" 7-Set Start-Up Mode (300mV check)\n"));
384 Serial.print(F(
" 8-Set PGOOD Slewing Mask\n"));
385 Serial.print(F(
" 9-Exit Software Control Mode\n"));
387 Serial.print(F(
" 10-Set LDO4 Output Voltage\n"));
388 Serial.print(F(
" m-Main Menu\n"));
389 Serial.print(F(
"\nEnter a command: "));
392 if (user_command ==
'm')
393 Serial.print(F(
"m\n"));
395 Serial.println(user_command);
398 switch (user_command)
404 Serial.print(F(
"\n********** Note: LTC3676 is now in Sofware Control Mode **********\n"));
405 Serial.print(F(
"***************Select Option 9 to resume Pin Control *************\n"));
409 Serial.print(F(
"\nSelect Buck(1-4, 5=all): "));
411 Serial.println(user_buck, DEC);
412 if (user_buck < 1 || user_buck > 5)
414 Serial.println(F(
" Invalid input."));
417 Serial.println(F(
"0=Disable, 1=Enable"));
418 Serial.print(F(
"Enter selection: "));
420 Serial.println(user_int, DEC);
423 Serial.println(F(
" Invalid input."));
437 Serial.println(F(
"Done."));
443 Serial.print(F(
"\n********** Note: LTC3676 is now in Sofware Control Mode **********\n"));
444 Serial.print(F(
"***************Select Option 8 to resume Pin Control *************\n"));
448 Serial.print(F(
"\nSelect LDO(2-4, 5=all): "));
450 Serial.println(user_ldo, DEC);
451 if (user_ldo < 2 || user_ldo > 5)
453 Serial.println(F(
" Invalid input."));
456 Serial.println(F(
"0=Disable, 1=Enable"));
457 Serial.print(F(
"Enter selection: "));
459 Serial.println(user_int, DEC);
462 Serial.println(F(
" Invalid input."));
473 else if (user_ldo == 2)
475 else if (user_ldo == 3)
477 else if (user_ldo == 4)
479 Serial.println(F(
"Done."));
485 Serial.print(F(
"\nSelect Buck(1-4): "));
487 Serial.println(user_int, DEC);
488 if (user_int < 1 || user_int > 4)
490 Serial.println(F(
"Invalid input."));
493 Serial.print(F(
"Select Reference (A=DVB"));
494 Serial.print(user_int, DEC);
495 Serial.print(F(
"A, B=DVB"));
496 Serial.print(user_int, DEC);
497 Serial.print(F(
"B): "));
499 Serial.write(user_char);
500 if (user_char ==
'A' || user_char ==
'a')
501 user_register = (user_int*2) + 8;
502 else if (user_char ==
'B' || user_char ==
'b')
503 user_register = (user_int*2) + 9;
506 Serial.println(F(
"\nInvalid input."));
509 Serial.print(F(
"\nPotential output voltage range: "));
511 Serial.print(F(
"mV to "));
513 Serial.print(F(
"mV."));
514 Serial.print(F(
"\nNew output voltage in mV: "));
516 Serial.println(user_output, 0);
519 Serial.println(F(
"\nInvalid input."));
523 Serial.print(F(
"Output voltage set to "));
524 Serial.print(new_output, 0);
525 Serial.println(F(
"mV."));
526 Serial.print(F(
"New Feedback Reference Bits: 0x"));
528 Serial.println(data & 0x1F, HEX);
532 float user_reference;
534 Serial.print(F(
"\nSelect Buck(1-4): "));
536 Serial.println(user_int, DEC);
537 if (user_int < 1 || user_int > 4)
539 Serial.println(F(
"Invalid input."));
542 Serial.print(F(
"Select Reference (A=DVB"));
543 Serial.print(user_int);
544 Serial.print(F(
"A, B=DVB"));
545 Serial.print(user_int);
546 Serial.print(F(
"B): "));
548 Serial.write(user_char);
549 if (user_char ==
'A' || user_char ==
'a')
550 user_register = (user_int*2) + 8;
551 else if (user_char ==
'B' || user_char ==
'b')
552 user_register = (user_int*2) + 9;
555 Serial.println(F(
"\nInvalid input."));
558 Serial.print(F(
"\nNew feedback reference input in mV (412.5-800): "));
560 Serial.println(user_reference);
561 if (user_reference < 412.5 | user_reference > 800)
563 Serial.println(F(
"\nInvalid input."));
567 Serial.print(F(
"Feedback reference input set to "));
568 Serial.print(new_reference, 0);
569 Serial.println(F(
"mV"));
570 Serial.print(F(
"New Feedback Reference Bits: 0x"));
572 Serial.println(data & 0x1F, HEX);
576 Serial.print(F(
"\nSelect Buck(1-4, 5=all): "));
578 Serial.println(user_buck, DEC);
579 if (user_buck < 1 || user_buck > 5)
581 Serial.println(F(
" Invalid input."));
584 Serial.print(F(
"Select Reference (A or B): "));
586 Serial.write(user_char);
587 if (user_char ==
'A' || user_char ==
'a' || user_char ==
'B' || user_char ==
'b')
593 Serial.println(F(
"\nDone."));
596 Serial.println(F(
"\n Invalid input."));
600 Serial.print(F(
"\nSelect Buck(1-4, 5=all): "));
602 Serial.println(user_register, DEC);
603 if (user_register < 1 || user_register > 5)
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 == 5)
620 Serial.println(F(
"Switching mode(s) set."));
624 Serial.print(F(
"\nSelect Buck(1-4, 5=all): "));
626 Serial.println(user_buck, DEC);
627 if (user_buck < 1 || user_buck > 5)
629 Serial.println(F(
" Invalid input."));
632 Serial.println(F(
"0=Enable at any output voltage, 1=Enable only if output <300mV"));
633 Serial.print(F(
"Enter selection: "));
635 Serial.println(user_int, DEC);
636 if (user_int < 0 || user_int > 1)
638 Serial.println(F(
" Invalid input."));
645 Serial.println(F(
"Start-up mode(s) set."));
649 Serial.print(F(
"\nSelect Buck(1-4, 5=all): "));
651 Serial.println(user_buck, DEC);
652 if (user_buck < 1 || user_buck > 5)
654 Serial.println(F(
" Invalid input."));
657 Serial.println(F(
"0=PGOOD low when slewing, 1=PGOOD not forced low when slewing"));
658 Serial.print(F(
"Enter selection: "));
660 Serial.println(user_int, DEC);
661 if (user_int < 0 || user_int > 1)
663 Serial.println(F(
" Invalid input."));
670 Serial.println(F(
"PGOOD Mask bit(s) set."));
680 Serial.print(F(
"Select LDO4 Voltage (0=1.2V, 1=2.5V, 2=2.8V, 3=3.0V): "));
682 Serial.println(user_int, DEC);
685 Serial.println(F(
" Invalid input."));
689 Serial.println(F(
"LDO4 Voltage Set."));
692 Serial.println(
" Invalid Selection");
695 if (user_command !=
'm')
696 Serial.println(
" Invalid Selection");
700 while ((user_command !=
'm') && (ack != 1));
709 uint8_t user_register;
715 Serial.print(F(
"\nControl Settings\n\n"));
716 Serial.print(F(
" 1-Set UV Warning Threshold\n"));
717 Serial.print(F(
" 2-Set Over-Temperature Warning Level\n"));
718 Serial.print(F(
" m-Main Menu\n"));
719 Serial.print(F(
"\nEnter a command: "));
722 if (user_command ==
'm')
723 Serial.print(F(
"m\n"));
725 Serial.println(user_command);
728 switch (user_command)
732 float user_threshold;
733 Serial.print(F(
"\nEnter new UV warning threshold in Volts (2.7 - 3.4): "));
735 Serial.println(user_threshold, 1);
736 if (user_threshold < 2.7 | user_threshold > 3.4)
738 Serial.println(F(
"Invalid input."));
742 Serial.print(F(
"UV warning threshold set to "));
743 Serial.print(user_threshold,1);
744 Serial.println(F(
"V"));
748 Serial.print(F(
"Enter warning level in deg C below over-temperature shutdown(10,20,30,40): "));
750 Serial.println(user_int, DEC);
751 if (user_int < 10 | user_int > 40)
753 Serial.println(F(
"Invalid input."));
757 Serial.print(F(
"Warning level set to "));
758 Serial.print(((uint8_t)((user_int + 5)/10))*10);
759 Serial.println(F(
"C below Over-temperature"));
762 if (user_command !=
'm')
763 Serial.println(
" Invalid Selection");
767 while ((user_command !=
'm') && (ack != 1));
777 uint8_t user_sequence;
780 uint8_t reg_address[7] = {1,2,3,4,5,5,6};
781 uint8_t reg_bit_position[7] = {7,7,7,7,2,5,2};
787 Serial.print(F(
"\n********** Note: LTC3676 is now in Sofware Control Mode **********\n"));
788 Serial.print(F(
"************** Select Option 8 to resume Pin Control *************\n"));
795 Serial.print(F(
"\nPowerup Sequencing\n\n"));
796 Serial.print(F(
" 1-Set Power-up Sequence\n"));
797 Serial.print(F(
" 2-Print Power-up Sequence\n"));
798 Serial.print(F(
" 3-Set Buck Power-down Sequence\n"));
799 Serial.print(F(
" 4-Set LDO Power-down Sequence\n"));
800 Serial.print(F(
" 5-Print Power-down Sequence\n"));
801 Serial.print(F(
" 6-Power-up Regulators\n"));
802 Serial.print(F(
" 7-Power-down Regulators\n"));
803 Serial.print(F(
" 8-Exit Software Control Mode\n"));
804 Serial.print(F(
" m-Main Menu\n"));
805 Serial.print(F(
"\nEnter a command: "));
808 if (user_command ==
'm')
809 Serial.print(F(
"m\n"));
811 Serial.println(user_command);
813 switch (user_command)
816 Serial.println(F(
"\nRegulators will power-up in 4 phases"));
817 Serial.println(F(
"Select a phase for each"));
818 Serial.println(F(
"1=First phase, 2=Second phase, 3=Third phase, 4=Fourth phase, 0=Don't enable"));
819 Serial.print(F(
"Buck1: "));
821 Serial.println(user_int, DEC);
823 reg_phase[0] = user_int;
824 Serial.print(F(
"Buck2: "));
826 Serial.println(user_int, DEC);
828 reg_phase[1] = user_int;
829 Serial.print(F(
"Buck3: "));
831 Serial.println(user_int, DEC);
833 reg_phase[2] = user_int;
834 Serial.print(F(
"Buck4: "));
836 Serial.println(user_int, DEC);
838 reg_phase[3] = user_int;
839 Serial.print(F(
"LDO2: "));
841 Serial.println(user_int, DEC);
843 reg_phase[4] = user_int;
844 Serial.print(F(
"LDO3: "));
846 Serial.println(user_int, DEC);
848 reg_phase[5] = user_int;
849 Serial.print(F(
"LDO4: "));
851 Serial.println(user_int, DEC);
853 reg_phase[6] = user_int;
854 Serial.print(F(
"Enter delay between phases in milliseconds: "));
859 Serial.println(F(
"Values less than 0 or greater than 10s not allowed."));
862 Serial.print(F(
"\nBuck1: "));
863 Serial.println(reg_phase[0]);
864 Serial.print(F(
"Buck2: "));
865 Serial.println(reg_phase[1]);
866 Serial.print(F(
"Buck3: "));
867 Serial.println(reg_phase[2]);
868 Serial.print(F(
"Buck4: "));
869 Serial.println(reg_phase[3]);
870 Serial.print(F(
"LDO2: "));
871 Serial.println(reg_phase[4]);
872 Serial.print(F(
"LDO3: "));
873 Serial.println(reg_phase[5]);
874 Serial.print(F(
"LDO4: "));
875 Serial.println(reg_phase[6]);
876 Serial.print(F(
"Delay: "));
878 Serial.println(F(
"ms"));
882 Serial.print(F(
"\nSelect Buck(1-4): "));
884 Serial.println(user_int, DEC);
885 if (user_int < 1 || user_int > 4)
887 Serial.println(F(
"Invalid input."));
890 Serial.println(F(
"0=with WAKE, 1=WAKE+100ms, 2=WAKE+200ms, 3=WAKE+300ms"));
891 Serial.print(F(
"Enter selection: "));
893 Serial.println(user_sequence, DEC);
894 if (user_sequence > 3)
896 Serial.println(F(
"Invalid input."));
900 Serial.print(F(
"Sequence down set for Buck"));
901 Serial.println(user_int, DEC);
905 Serial.print(F(
"\nSelect LDO(2-4): "));
907 Serial.println(user_int, DEC);
908 if (user_int < 2 || user_int > 4)
910 Serial.println(F(
"Invalid input."));
913 Serial.println(F(
"0=with WAKE, 1=WAKE+100ms, 2=WAKE+200ms, 3=WAKE+300ms"));
914 Serial.print(F(
"Enter selection: "));
916 Serial.println(user_sequence, DEC);
917 if (user_sequence > 3)
919 Serial.println(F(
"Invalid input."));
923 Serial.print(F(
"Sequence down set for LDO"));
924 Serial.println(user_int, DEC);
929 Serial.print(F(
"\nBuck1: "));
931 Serial.print(F(
"Buck2: "));
933 Serial.print(F(
"Buck3: "));
935 Serial.print(F(
"Buck4: "));
938 Serial.print(F(
"LDO2: "));
940 Serial.print(F(
"LDO3: "));
942 Serial.print(F(
"LDO4: "));
944 Serial.print(F(
"Delay between phases(fixed): 100ms\n"));
953 for (count=0; count<7; count++)
955 if (reg_phase[count] == 1)
964 for (count=0; count<7; count++)
966 if (reg_phase[count] == 2)
976 for (count=0; count<7; count++)
978 if (reg_phase[count] == 3)
987 for (count=0; count<7; count++)
989 if (reg_phase[count] == 4)
996 Serial.print(F(
"\n******** Note: On DC1976, set SW2 for uC control of PWR_ON *******\n"));
997 Serial.print(F(
"*** Otherwise, PWR_ON bit may not initiate power-down sequence ***\n\n"));
1005 if (user_command !=
'm')
1006 Serial.println(
" Invalid Selection");
1010 while ((user_command !=
'm') && (ack != 1));
1020 for (count=0; count<6; count++)
1023 reg_map_array[count] =
data;
int8_t LTC3676_set_buck_mode(uint8_t i2c_address, uint8_t buck_number, uint8_t mode)
Sets the switching mode for the specified Buck regulator.
#define LTC3676_REG_CLIRQ
uint8_t LTC3676_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 LTC3676.
int8_t LTC3676_set_startup_mode(uint8_t i2c_address, uint8_t buck_number, uint8_t startup_bit)
Sets the start-up mode for all bucks.
#define LTC3676_REG_BUCK1
static void read_reg_map(uint8_t *reg_map_array)
Reads the first 6 registers and stores them in an array.
#define LTC3676_REG_BUCK2
unsigned char user_command
#define LTC3676_I2C_ADDRESS
#define LTC3676_BUCK1_SEQ_MASK
static void print_warning_prompt()
Prints a warning if the demo board is not detected.
#define LTC3676_LDO2_SEQ_MASK
int8_t LTC3676_register_write(uint8_t i2c_address, uint8_t register_address, uint8_t register_data)
Writes to an 8-bit register inside the LTC3676 using the standard I2C repeated start format...
int8_t LTC3676_set_ldo_sequence_down(uint8_t i2c_address, uint8_t ldo_number, uint8_t sequence_phase)
Sets the Sequence Down bits for any buck in the SQD1 register.
#define LTC3676_LDO4_SEQ_MASK
float LTC3676_buck_vout_max(uint8_t buck_number)
Calculates the maximum output voltage of any buck in mV based on the feedback resistors.
Header File for Linduino Libraries and Demo Code.
float LTC3676_set_buck_fb_ref(uint8_t i2c_address, uint8_t register_address, float fb_ref_voltage)
Writes the Feedback Reference Voltage of any buck.
char demo_board_option(char *eeprom_string)
int8_t LTC3676_select_buck_reference(uint8_t i2c_address, uint8_t buck_number, int8_t ref_char)
Selects the reference for the specified buck regulator(s).
char demo_name[]
Demo Board Name stored in QuikEval EEPROM.
int8_t LTC3676_set_buck_sequence_down(uint8_t i2c_address, uint8_t buck_number, uint8_t sequence_phase)
Sets the Sequence Down bits for any buck in the SQD1 register.
float LTC3676_buck_vout_min(uint8_t buck_number)
Calculates the minimum output voltage of any buck in mV based on the feedback resistors.
#define LTC3676_REG_CNTRL
int8_t LTC3676_bit_write(uint8_t i2c_address, uint8_t register_address, uint8_t bit_number, uint8_t bit_data)
Writes any bit inside the LTC3676 using the standard I2C repeated start format.
static char board_option
Demo board option of the attached demo board.
int8_t LTC3676_bit_clear(uint8_t i2c_address, uint8_t register_address, uint8_t bit_number)
Clears any bit inside the LTC3676 using the standard I2C repeated start format.
union LT_union_int32_4bytes data
int8_t LTC3676_register_read(uint8_t i2c_address, uint8_t register_address, uint8_t *register_data)
Reads an 8-bit register from the LTC3676 using the standard repeated start format.
static uint8_t reg_phase[7]
Power-up sequence phases for every regulator output.
static void loop()
Repeats Linduino loop.
LTC3676: Power management solution for application processors.
#define LTC3676_1_I2C_ADDRESS
int8_t LTC3676_set_uv_warning_threshold(uint8_t i2c_address, float uv_warning_threshold)
Writes a new UV warning threshold voltage in the CTRL register.
int8_t discover_demo_board(char *demo_name)
Read the ID string from the EEPROM and determine if the correct board is connected.
static void print_prompt()
Prints main menu.
static void setup()
Initialize Linduino.
#define LTC3676_BUCK4_SEQ_MASK
int8_t LTC3676_bit_set(uint8_t i2c_address, uint8_t register_address, uint8_t bit_number)
Sets any bit inside the LTC3676 using the standard I2C repeated start format.
#define LTC3676_REG_BUCK3
float LTC3676_set_buck_output_voltage(uint8_t i2c_address, uint8_t register_address, float output_voltage)
Sets the output voltage of any buck.
int8_t LTC3676_set_buck_pgood_mask(uint8_t i2c_address, uint8_t buck_number, uint8_t pgood_bit)
Sets the PGOOD mask bit in the DVBxB register for all bucks.
static int8_t menu_4_sequencing(uint8_t *reg_phase)
static uint8_t i2c_address
I2C address set for either -A or -B demo board.
LT_I2C: Routines to communicate with ATmega328P's hardware I2C port.
static int8_t menu_1_read_write_registers()
Linear Technology DC1976A Demonstration Board LTC3676: Power Management Solution for Application Proc...
#define LTC3676_BUCK2_SEQ_MASK
#define LTC3676_BUCK3_SEQ_MASK
#define LTC3676_LDO3_SEQ_MASK
static int8_t menu_2_regulator_settings()
void quikeval_I2C_init(void)
Initializes Linduino I2C port.
void quikeval_I2C_connect(void)
Switch MUX to connect I2C pins to QuikEval connector.
static float delay_ms
Delay between power-up phases.
static uint8_t demo_board_connected
Set to 1 if the board is connected.
int8_t LTC3676_1_set_ldo4_voltage(uint8_t i2c_address, uint8_t ldo4_output_voltage_code)
Sets LDO4 output voltage on the LTC3676-1.
#define LTC3676_REG_BUCK4
static int8_t menu_3_control_settings()
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...
int8_t LTC3676_set_overtemp_warning_level(uint8_t i2c_address, uint8_t ot_warning_level)
Writes the UV warning threshold of any buck.
static int8_t LTC3676_print_all_registers(uint8_t i2c_address)
static void print_title()
Prints the title block when program first starts.
#define LTC3676_SOFTWARE_CNTRL