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.

TPS53681: TPS53681 - NVM checksum failure after programming

Part Number: TPS53681
Other Parts Discussed in Thread: USB-TO-GPIO2,

Hi team,

We have a 6+0 phase design based on the TPS53681.  We can program the board fine using the Fusion designer software and USB-TO-GPIO2 adapter.  We've exported the factory programming scripts from the software, and are trying to program the device in our manufacturing environment using our own I2C programmer.

Our I2C programmer can do the block writes and reads successfully, ie when doing a block read we get the data expected back so all looks OK.  (Same applies to byte/word writes/reads etc).  However after issuing the STORE_DEFAULT_ALL command (and waiting 1s), when we read back the MFR_SERIAL checksum, the bytes are different.  The script expects 0x480125B9 and the device returns 0x484D2979.  This is repeatable across multiple attempts on multiple blank devices.. If we run a board through NVM programming process on the GUI, and then transfer to our mfr test setup, the script executes successfully but that doesn't help us...

I've attached the Fusion design project file, and also the "factory script" the software exports, both in XML and CSV formats.  Any advice on how to proceed would be great appreciated.

Regards, Peter

TPS53681 0.0 Address 88 Project File.xml

<?xml version="1.0" encoding="utf-8"?>
<FactoryScript xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" FactoryScriptVersion="7.1.0" Cancellable="true" PEC="false" Required_Num_Devices="1">
  <factoryDeviceScripts>
    <FactoryDeviceScript Part_ID="TPS53681" Match_Any_Address="false" Address="88" Description="">
      <Task_Groups>
        <FactoryTaskGroup Name="Import USER_DATA">
          <Tasks>
            <FactoryTask Task_Attribute_Name="Read_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.1" Reason_For_Last_Update="If program mode is false, meaning ROM mode you have the option to skip if the task is run and the device was in Program mode" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">173</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="expected_hex_value">
                  <Value xsi:type="xsd:string">0x81</Value>
                  <Description>expected block in hex: Supported formats include "0F - DE", "0FDE", "0F DE", "0x0fDE", and "Fh". Partial bytes are supported. For example, 0xa (0A) or A0F (0A0F).</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="skip_if_device_not_in_rom_mode">
                  <Value xsi:type="xsd:boolean">false</Value>
                  <Description>if this "read" is for ROM mode and the device is Program mode the task will be skipped</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Byte" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="writes a byte" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">0</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="data">
                  <Value xsi:type="xsd:unsignedByte">0</Value>
                  <Description>byte data to be sent</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">176</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">CC0002002012</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">177</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">000000000040</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">178</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">760F00000010</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">179</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">0400110300C0</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">180</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">8F8FC777C73F</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">181</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">6488067F33FF</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">182</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">254A1414E87F</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">183</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">806D00002BFF</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">184</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">0002000000B3</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">185</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">000160808080</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">186</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">00662E40408C</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">187</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">0060200020E1</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a block" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">188</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">40D00F00FF01</Value>
                  <Description>bytes data to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Byte" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="writes a byte" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">0</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="data">
                  <Value xsi:type="xsd:unsignedByte">0</Value>
                  <Description>byte data to be sent</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Word" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a word" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">36</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">0x008D</Value>
                  <Description>word data (for example 0x0A0F) to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Byte" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="writes a byte" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">0</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="data">
                  <Value xsi:type="xsd:unsignedByte">1</Value>
                  <Description>byte data to be sent</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Word" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="Assumes SAA Adapter." Version="1.0.0" Reason_For_Last_Update="writes a word" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">36</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="hex_data">
                  <Value xsi:type="xsd:string">0x00FF</Value>
                  <Description>word data (for example 0x0A0F) to be sent in hex format</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Byte" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="writes a byte" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">0</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="data">
                  <Value xsi:type="xsd:unsignedByte">0</Value>
                  <Description>byte data to be sent</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Write_Byte" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="writes a byte" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">216</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="data">
                  <Value xsi:type="xsd:unsignedByte">1</Value>
                  <Description>byte data to be sent</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Send_Byte" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="sends command byte" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">17</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Pause" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="OTHER">
              <Parameters>
                <FactoryTaskArgument Name="pause_time_msec">
                  <Value xsi:type="xsd:int">1000</Value>
                  <Description>number of milliseconds to pause for</Description>
                  <Arg_Type>System.Int32</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Send_Byte" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="sends command byte" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">17</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Pause" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="OTHER">
              <Parameters>
                <FactoryTaskArgument Name="pause_time_msec">
                  <Value xsi:type="xsd:int">1000</Value>
                  <Description>number of milliseconds to pause for</Description>
                  <Arg_Type>System.Int32</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
            <FactoryTask Task_Attribute_Name="Read_Block" description="" NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.1" Reason_For_Last_Update="If program mode is false, meaning ROM mode you have the option to skip if the task is run and the device was in Program mode" Assembly_File_Version="7.0.0.3" Assembly_Version="7.0.0.3" Technical_Description="" Obsolete="false" TaskType="PMBUS">
              <Parameters>
                <FactoryTaskArgument Name="cmd_byte">
                  <Value xsi:type="xsd:unsignedByte">158</Value>
                  <Description>command byte</Description>
                  <Arg_Type>System.Byte</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="expected_hex_value">
                  <Value xsi:type="xsd:string">0x480125B9</Value>
                  <Description>expected block in hex: Supported formats include "0F - DE", "0FDE", "0F DE", "0x0fDE", and "Fh". Partial bytes are supported. For example, 0xa (0A) or A0F (0A0F).</Description>
                  <Arg_Type>System.String</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="program_mode">
                  <Value xsi:type="xsd:boolean">true</Value>
                  <Description>if rom mode set to false [Default: True]</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
                <FactoryTaskArgument Name="skip_if_device_not_in_rom_mode">
                  <Value xsi:type="xsd:boolean">false</Value>
                  <Description>if this "read" is for ROM mode and the device is Program mode the task will be skipped</Description>
                  <Arg_Type>System.Boolean</Arg_Type>
                  <Input_Type>NORMAL</Input_Type>
                </FactoryTaskArgument>
              </Parameters>
            </FactoryTask>
          </Tasks>
        </FactoryTaskGroup>
      </Task_Groups>
    </FactoryDeviceScript>
  </factoryDeviceScripts>
  <Devices_Info_List>
    <ab>
      <a>TPS53681</a>
      <b>88</b>
    </ab>
  </Devices_Info_List>
</FactoryScript>
TPS53681 0.0 Address 88 PMBus Programmer Script.csv

  • Hi Peter, 

    Our team member will reach out to you shortly about this. 

    Thank you, 

    Dhanya Prem

  • Hi Peter,

    After issuing STORE_DEFAULT_ALL command, controller should be power cycled to get the new check sum value. Can you confirm if you are doing power cycling.

    Best Regards,

    Chanakya

  • Hi Chanakya,

    We're just following the sequence provided in the exports from the GUI, and no, there's no power cycle in this file between the STORE_DEFAULT_ALL and verifying the MFR_SERIAL.  A snippet of the CSV I attached earlier:

    ...

    Comment,Store configuration to non-volatile memory
    Comment,Execute STORE_DEFAULT_ALL
    SendByte,0x11
    Pause,1000,"Pausing 1,000.00 ms for STORE_DEFAULT_ALL hold time"
    Comment,"Verifying MFR_SERIAL matches expected [""0x480125B9""]"
    BlockRead,0x9E,0x04480125B9
    Comment,Resetting the device
    Comment,Reset power to the device
    Reset
    Pause,10,Wait 10.00 ms for device I2C interface to become available
    Comment,Validate configuration through read back

    ...

    I've tried doing a power cycle anyway and the chip didn't boot up with our settings...

    Regards, Peter

  • Hi 

    Please explain more about " If we run a board through NVM programming process on the GUI, and then transfer to our mfr test setup, the script executes successfully but that doesn't help us..."

    TPS53681 only support NVM programming. the script shall be NVM programming based. 

    Regards

    Yihe

  • Hi Yihe,

    Sorry for the confusion.  What I mean is if we:
     * Program a PCB in the GUI, and save a copy of the programming script

     * Move that PCB to our programmer and program using the script saved in the step above

    Then everything works fine.

    However, if we take a blank board and try and program it in our programmer using the same script, then it does not work (VOUT does turn on to our expected value, and the MFR_SERIAL is a mismatch).

    It feels like the GUI is issuing other commands not listed in the programming script...

    Regards, Peter

  • Hi Yihe,

    Please accept my apologies, you can close this ticket.  We've found a bug in our smbus block write implementation, I thought this had been checked but it seems this was not the case.  NVM writes are working successfully now.

    Regards, Peter