STORE_USER_ALL is a standard PMBus® command that writes the contents of the certain Configuration RAM registers to their respective non-volatile configuration memory (NVM) or EEPROM locations. The TPS1689 has six (6) one-time programmable banks in the NVM which are available to the users to store their custom configurations. This command will try to write to NVM Bank-1 first if it’s not programmed yet. If NVM Bank-1 is already programmed, it will attempt to write to NVM Bank-2 if it’s not programmed and so on until all the 6 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 a single 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 should 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 needs to 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 those 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 was 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 should ensure 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.