How to program the non-volatile memory (NVM) in TPS25990 with a revised configuration file?
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.
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.
The steps above do not consider the external EEPROM connected.
A template of the configuration file is attached below.
/** 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.
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.