Through I2C interface, when host power off , we use BMC to do erase operation to clear the status register by writing the code 0x74 in “Register 0x39” after we inject the error with R04:0x40(GLOBAL_ERROR_LOG_BUCK_OV_OR_UV). After that we can see the value of the register R04,R05,R06 are cleared. The value of R04 is changed to 0x00.
But after AC cycle(VIN_Mgmt cycle), we see the error status is resumed, the value of R04 is resumed to 0x40 again. It seem that MTP memory for R04 Register has not been erased.
May i ask what is the condition to run erase operation to clear the status register by writing the code 0x74 in “Register 0x39”? Need host power on and 12V VIN_BULK?
R39 Codes:
Host Region Codes:
0x74: Clear Registers R04 to R07, Erase MTP memory for R04 Register.
Need help from MPS.
Thank you.
Hello Jen, welcome to the MPS Forums.
Just wanted to make sure that this issue didn’t slip through the cracks.
To get straight into two possible causes for this behavior:
- Erase didn’t actually hit the MTP or OTP area. This means that some devices differentiate between volatile and non-volatile writes. So, confirming whether this is volatile or non-volatile by writing 0x74 to 0x39 and immediately power cycling. If 0x40 is returned, then the MTP erase didn’t happen.
- Check if the required voltage conditions are met for a proper MTP erase. Checking VIN_BULK or VIN_MGMT and seeing if these voltages are stable (meaning at or above the recommendations by the datasheet) would be a good initial step before performing the MTP erase. Wait a couple seconds before power cycling.
Have there been any updates on this issue? I know it has been some time since you have asked about this issue. Please let me know.
Best,
Krishan