STORE_USER_ALL is a standard PMBus command that
writes the contents of the certain Configuration RAM registers to the respective nonvolatile
configuration memory (NVM) or EEPROM locations. The TPS1689 has six one-time programmable
banks in the NVM which are available to the users to store the custom configurations. This
command tries to write to NVM Bank-1 first if it is not programmed yet. If NVM Bank-1 is
already programmed, it tries to write to NVM Bank-2 if it is not programmed and so on until
all the six banks are programmed.
If an external EEPROM is available and configured, the STORE_USER_ALL command
must be issued seven (7) consecutive times to successfully store the configuration register
values into Page-2 of the external the EEPROM during initial setup. After the initial setup,
subsequent writes into the external EEPROM require only one issuance of the STORE_USER_ALL
command to store the data reliably.
This command uses the PMBus send byte protocol. There is no data byte for this
command. This command is write only.
Note: - This command must be preceded by the MFR_WRITE_PROTECT command to unlock the device first to prevent
accidental/spurious writes. If the WP# pin is pulled low, the write access
is completely disabled in hardware and MFR_WRITE_PROTECT command has no
effect.
- The external EEPROM must be enabled by setting the EXT_EEPROM bit in the
DEVICE_CONFIG register. In addition, it is done by configuring two (2) of the
four (4) GPIOs as EECLK and EEDATA appropriately in the
and
registers. Make sure the two (2) selected GPIO pins are physically connected to the
EEPROM clock and data pins respectively on the board.
- The MEMORY_FLT bit in the Section 7.3.14.7.1.18 register
gets set if the STORE_USER_ALL command is unsuccessful. TI recommends
reading the STATUS_CML
register after sending the STORE_USER_ALL command to verify whether it is
successful or not.
- The TPS16890 eFuse provides six (6) one-time programmable (OTP) NVM banks
for user programming, while the TPS16890A eFuse provides five (5) OTP NVM banks. If an
external EEPROM is not used, before sending the STORE_USER_ALL command the user must
establish that at least one bank of internal NVM is available for programming by reading
the CONFIG_NVM_STAT bit in the STATUS_MFR_SPECIFIC_2
register.