Part of ADP1046 GUI is captured and pasted below.
I would like to know about difference betweeen A and B function.
You are correct, board settings aren't required. They are there only for readbacks.
You can save the board settings like resistive divider, current sense resistor etc. in any order you want on page 4 to page 15 of the eeprom in any order you like e.g. knowing the sense resistor and the voltage across CS2 pins using the ADC you can calculate the current for real time readback. Since the calculation is done in your uC, you can select any order you want. I believe the GUI stores them in page 3.
Lt Comm Data.
The icon on the left stores the *register* settings into EEPROM. The icon on the right stores the *board* settings to EEPROM. Please see the image below for additional info about the icons.
The ADP1046A does not know what the external world components like output filter inductor, resistor divider, current sense resistor etc. are. These values are entered in the GUI so that in the monitor window you can read the actual load currents, output voltage etc. Output LC filter values are used for setting the compensation in the filter window. All these values have no bearing to the normal operation of the part and are used for reporting only. So if you connect the GUI to an unknown part without storing the board settings then the reporting of the values will be incorrect. The store board settings icon helps in storing these values so that all the settings of the part and power config are available in the EEPROM.
Lt Comm Data
In my understanding, ADP1046A works fine on my own board only with register saved in EEPROM.
Whether to store boarding setting to EEPROM or not does not affect ADP1046A operation. If I am wrong, please correct me.
And where in EEPROM is boarding settings stored? When I save register settings and board settings using MCU not using GUI, I would like to know what is the location and order of data to be saved.
I have one more question.
As I konw of, on power-up, ADP1046A automatically loads register settings to somewhere from EEPROM. I guess there seems be a rule required to save register values to EEPROM like start address and order.
If there is, can you let me know?
Below is the answer to your question.
Follow the steps given below to program the register settings into the EEPROM of the part.
Step 1: Read the register settings from the “.46r” or “hex” file and write the following register values to the corresponding registers of the part, via I2C
• Write to Reg 0x08 to 0x0F
• Write to Reg 0x22
• Write to Reg 0x26 to 0x2A
• Write to Reg 0x2C to 0x37
• Write to Reg 0x3B
• Write to Reg 0x3F to 0x5D
• Write to Reg 0x5F to 0x7D
Step 2: Read back the values written and compare them to the register settings in the “.46r” file to make sure the write operation was done correctly.
Step 3: Write 0xFF to Register 0x88 twice, to unlock the EEPROM.
Step 4: Execute a SEND command to Register 0x82, to upload
the contents in the registers to the EEPROM.
Step 5: Wait for 50ms for the upload to complete.
Step 6: Write 0x01 to Register 0x88, to lock the EEPROM
Follow the steps given below to program the board settings into the EEPROM of the part.
Step 1: Write 0xFF to Register 0x88 twice, to unlock the EEPROM.
Step 2: Write 0x02 to Register 0x87 to erase EEPROM Page 2.
Wait for 30ms to complete.
Step 3: Write 0x0000 to Register 0x85 to set address offset to zero.
Step 4: Do a Block-Write to Register 0x8D with the board data from the “hex” file, to write to EEPOM Page 2
Step 5: Write 0x01 to Register 0x88, to lock the EEPROM.
Board Settings Hex file
7B – Byte Count
008D – Address
00 – Record Type
01020336…….00000000 ‐ Data
81 – Checksum
Format for storing board settings in EEPROM
The data which is written to the EEPROM for board settings starts with 0x010203, it is used by the GUI to detect if
valid board settings data is present in Page 2 of EEPROM. Each board settings is represented as 3 byte data in the
HEX file. The first two bytes represent the mantissa and the 3rd byte represent the exponent. Example: The first
board settings, input voltage of 48V, is represented as 0x6000F7.
Mantissa High Bits 0x60
Mantissa Low Bits 0x00
Converting hex data to board settings:
Mantissa = 0x6000, Mantissa in Decimal = 24576
Exponent = 0xF7, Exponent after 2’s complement = ‐9
Input Voltage = 24576x2‐9 = 48 V
It's very kind of you.
Retrieving data ...