SNIU028D February 2016 – September 2020 UCD3138 , UCD3138064 , UCD3138064A , UCD3138128 , UCD3138A , UCD3138A64
The Boot ROM also initializes several trim registers in the UCD3138. This trim data comes from a special trim flash area. The trim data is programmed into the trim flash when the device is tested. This trim flash has its own checksum. It is very unlikely, but if the checksum is invalid, the Boot ROM will not write any trim data to the registers. In this case, the device will not perform to specification. The Boot ROM provides two forms of notification if the trim flash checksum is invalid:
The code below can be used in the flash code to detect if the trim flash is valid:
if(PMBusRegs.PMBCTRL1.bit.SLAVE_ADDR == 0x7f)
{
//here if trim is valid.
This way the power supply can start running if the trim is valid. If the trim is invalid, the power supply should not be started, as the device will not be in specification. If there is host communication, the host can be notified appropriately. The PMBus should still be functional. Note that one of the trim values is for the PMBus bias to the ADC pins, so resistor based PMBus addressing using internal pull ups on ADC 0 and 1 may not give the proper address.