This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] TPS25990: How to program the non-volatile memory (NVM) in TPS25990 with a revised configuration file?

Part Number: TPS25990

How to program the non-volatile memory (NVM) in TPS25990 with a revised configuration file?

  • The TPS25990 eFuse has a non-volatile memory (NVM) consisting of three One-Time Programmable (OTP) banks. One of them is factory-programmed with default values in a set of configuration registers. If the user wants to program the other two banks with revised values in the configuration registers, the below steps should be followed.

    1) Apply a power supply in the range of 10 V to 13 V to VDD. If VIN and VDD are connected through a RC filter, the power supply needs to be connected to VIN.   

    2) Make sure the data (SDA) and clock (SCL) lines are pulled up to a voltage in the range of 1.8 V to 5 V with proper pull-up resistors.

    3) Disable MFR_WRITE_PROTECT by writing 0xA2 to the F8h register.

    4) Import the user defined configuration file into the configuration registers of the particular device intended to program by selecting its address.

    5) To check if at least one bank of internal NVM is available to be programmed, read the CONFIG_NVM_STAT (BIT[0]) in the STATUS_MFR_SPECIFIC_2 (F3h) register.

              1 ⇒ No bank is available in the NVM for programming.

              0 ⇒ At least one bank is available in the NVM for programming.

    6) Send the STORE_USER_ALL (15h) command to program the NVM with the revised configuration registers.

    7) Enable WRITE_PROTECT by writing 0x00 to the F8h register.

    8) To check whether the STORE_USER_ALL command was successful or not, read the MEMORY_FLT (BIT[4]) in the STATUS_CML (7Eh) register.

              1 ⇒ STORE_USER_ALL command was unsuccessful.

              0 ⇒ STORE_USER_ALL command was successful.

    9) Do input power recycling (both VDD and VIN) and read all the registers. The user should see the revised values in the configuration registers.

    • TPS25990 only supports two (2) times of programming the NVM. If you are sending STORE_USER_ALL (15h), be sure.
    • The steps above do not consider the external EEPROM connected. 

    A template of the configuration file is attached below. 

    TPS25990x_06-Jun-2023_18-33-09.txt
    /** WARNING: The exported file should not be edited. When uploading a file, the contents are not validated by the GUI. It is the responsibility of the user to ensure that the content is valid. **/
    58h = 0x0095
    59h = 0x008D
    57h = 0x00A5
    55h = 0x000E
    43h = 0x0095
    5Fh = 0x008D
    51h = 0x007E
    4Fh = 0x0085
    6Bh = 0x00FF
    5Dh = 0x00FF
    E0h = 0x32
    E1h = 0x00
    E2h = 0x00
    DBh = 0x0100
    E3h = 0x0000
    E4h = 0x1400
    E5h = 0x00
    E6h = 0x14
    E7h = 0x84
    E8h = 0x00
    E9h = 0x00
    EAh = 0x00
    EBh = 0xFF
    ECh = 0x9D
    EDh = 0xFF
    F0h = 0x00
    F1h = 0x00
    F9h = 0x00
    CHECKSUM = 149
    RIMON = 1100000Ohm

    Note that values of only the following configuration registers can be stored in the NVM.

    • PMBUS_ADDR (FBh)
    • VIN_UV_FLT (59h)
    • VIN_OV_FLT (55h)
    • VOUT_PGTH (5Fh)
    • OT_FLT (4Fh)
    • VIREF (E0h)
    • GPIO_CONFIG_12 (E1h)
    • GPIO_CONFIG_34 (E2h)
    • FAULT_MASK (E3h)
    • DEVICE_CONFIG (E4h)
    • BB_CONFIG (E5h)
    • RETRY_CONFIG (E7h)
    • VCMPxREF (EBh)
    • GPDAC1 (F0h)
    • GPDAC2 (F1h)
    • INS_DLY (F9h)

    During input power recycling at VDD pin or enable recycling at EN/UVLO pin, the values in the other configuration registers reset to their factory defaults.