Hi,
I'm trying to automate the programming of TPS6594 with Python, but it seems not working. These are the findings when I compared my automated programming with the programming by Scalable PMICs GUI.
1. All the NVM values are stored in a bin file. After I programmed with Python, I was able to use Scalable PMICs GUI to validate that the NVM settings matched the values specified in the bin file.
2. This the definition of the PFSM with Scalable PMICs GUI:
3. When I programmed with my Python script, I checked the register map with the GUI, and I found that LDO2 is not enabled as required in the ACTIVE state, and the LDO2 CTRL register (at 0x001e) has value of 0x02, which, according to the datasheet , means the LDO2 regulator is disabled. So I checked the .bin file, and I found the register value at address is defined to be 0x02, which matches the value in the register map.
4. When I programmed it with PMIC GUI with the same .bin file, everything works. However, the LDO2 CTRO register has the value of 0x13, which means the regulator is enabled. Although the chip works, the register value at LDO2 CTRL doesn't match the definition in my bin file. Why is that? Was it because there was state transition that happened after the programming?
5. I also found the PMICs GUI would write to all the CRC Registers (CRC_1 ~ CRC_16), while my Python script wouldn't program all of them but only CRC_15 and CRC_16, as shown in the figure below. Are the CRC registers CRC1~CRC_14 are necessary to be programmed for the chip to work properly?
So my additional questions are below:
1. Why does my script seem to have programmed the correct values to the NVM, but TPS6594 is not working/active?
2. Do I need to issue any other commands to make it start?
3. Do you have any sample python script that could program it?
Thank you very much!