We used LTC3887 on our product, VOUT1 is set as 3.3V by VOUT1_CFG pin, then we re-programed the output to 3.0V in our factory.
When we got the board, measure the VOUT1 voltage is 3.0V and read out the settings below:
0x26 -> 0x2d9a #Page 1 VOUT_MARGIN_LOW 2.85V
0x43 -> 0x2ca4 #Page 1 VOUT_UV_WARN_LIMIT 2.8V
0x44 -> 0x2b33 #Page 1 VOUT_UV_FAULT_LIMIT 2.7V
0x21 -> 0x3000 #Page 1 VOUT_COMMAND 3V
0x25 -> 0x3266 #Page 1 VOUT_MARGIN_HIGH 3.15V
0x42 -> 0x335c #Page 1 VOUT_OV_FAULT_LIMIT 3.3V
0x40 -> 0x34cd #Page 1 VOUT_OV_WARN_LIMIT 3.2V
Then we want to change the VOUT1 to 2.7V for some testing， but failed to program the settings to EEPROM by SMBus commands. Could you please help to check why the new VOUT1 settings can't be programed to EEPROM ? Thanks in advance.
a. After powerup, there's output on VOUT1, we change the settings as below by SMBus commands,
Set page register as page1
0x26 -> 0x290A #Page 1 VOUT_MARGIN_LOW 2.565V -5%
0x43 -> 0x2864 #Page 1 VOUT_UV_WARN_LIMIT 2.5245V -6.5%
0x44 -> 0x282D #Page 1 VOUT_UV_FAULT_LIMIT 2.511V -7%
0x21 -> 0x2B33 #Page 1 VOUT_COMMAND 2.7V
0x25 -> 0x2D5C #Page 1 VOUT_MARGIN_HIGH 2.835V 5%
0x42 -> 0x2E70 #Page 1 VOUT_OV_WARN_LIMIT 2.9V 7.5%
0x40 -> 0x2F85 #Page 1 VOUT_OV_FAULT_LIMIT 2.97V 10%
Measure the VOUT1, the voltage changed from 3.0V to 2.7V.
b. Write to 0x15 to save the settings to EEPROM
c. Perfrom a power cycle
d. Check the settings again with SMBus, the settings return back to the original values set in factory, see the details below. And measure the output, it become 3.0V again.
Set page register as page1 read the settings as below
0x26 -> 0x2d9a
0x43 -> 0x2ca4
0x44 -> 0x2b33
0x21 -> 0x3000
0x25 -> 0x3266
0x42 -> 0x335c
0x40 -> 0x34cd
If we don't change VOUT_COMMAND, for example, just change VOUT_MARGIN_LOW, VOUT_UV_WARN_LIMIT and VOUT_UV_FAULT_LIMIT values, repeat the above procedure, the values can be stored to EEPROM(the new values can be read out after power cycle).