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.

USB-TO-GPIO: Failed to program Xilinx ZC706 with USB-TO-GPIO tool

Part Number: USB-TO-GPIO

I tried to reprogram the VADJ voltage to 1.8 V. I followed the step-by-step instruction for using the digital power manufacturing tool and finally I got this error:



I googled the error, Xilinx guys are suggesting using Fusion Digital power designer instead. According to the Xilinx ZC706 user guide:




Setting Rail #4 to 1.8 and writing it to hardware does not solve the issue.

After trying the digital power manufacturing tool and Fusion Digital power designer, the VADJ voltage logged in the UART console is 1.2 Volts and I can't adjust and bring back the VADJ voltage to either 2.5 or 1.8 Volts!!



Any help is highly appreciated!

  • Hi

    Do you use UCD90120A here?

    If so, please provide the configuration file(.xml)

    UCD90120A is a sequencer, how do you adjust the VADJ voltage vis UCD90120A?

    Regards

    Yihe

  • After Fusion Digital power designer scan on the PMBus, while the USB-to-GPIO adapter is connected to the ZC706 and the board is powered on, it finds the UCD90120A Addr 101d(65h), please check it below:

    I bought the board recently so revision 2.0 is the PCB revision!

    I’ve tried all provided revisions but with no success (mine is r11)!

    Since I would like to set the VADJ voltage to 1.8 Volts I load the XML file from the 1v8_VADJ folder(please find it attached)

    <?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="1.0.3" Cancellable="true" Description="ZC706 CM Power System Program and Validate" Required_Num_Devices="1">
      <factoryDeviceScripts>
        <FactoryDeviceScript Part_ID="UCD90120A" Match_Any_Address="false" Address="101" Description="">
          <Task_Groups>
            <FactoryTaskGroup Name="Startup" Description="Program UCD90120A at Addr101">
              <Tasks>
                <FactoryTask Task_Attribute_Name="Configure_and_Validate" description="Configure all parameters on device based on project file from Fusion Power Design GUI." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Takes project file and identifies the set of parameters to take from a project file based on the config_value.  There is also the option to store to the device after the configuration is completed.&#xD;&#xA;            A parameter check is done to compare which parameters differ between the device and project file.  A write is then done on those select differences.  &#xD;&#xA;            However if you set &lt;b&gt;force_write_of_all to true&lt;/b&gt; then it will write every parameter from the project file to the device." TaskType="PMBUS">
                  <Parameters>
                    <FactoryTaskArgument Name="file_location">
                      <Value xsi:type="xsd:string">..\Inputs\ZC706_2_0_U48_Addr101_1V8vadj_0.6vscale_r12.xml</Value>
                      <Description>The project file that contains the device configuration desired.</Description>
                      <Arg_Type>System.String</Arg_Type>
                      <Input_Type>FILE</Input_Type>
                    </FactoryTaskArgument>
                    <FactoryTaskArgument Name="store_to_flash">
                      <Value xsi:type="xsd:boolean">true</Value>
                      <Description>Set to true to store the newly configured parameters to flash. [Default: True]</Description>
                      <Arg_Type>System.Boolean</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                    <FactoryTaskArgument Name="device_choice">
                      <Value xsi:type="ConfigValue">
                        <Specific_Address>101</Specific_Address>
                        <Config_Option>SPECIFIC</Config_Option>
                      </Value>
                      <Description>Choose which device setting you want to use to locate device in project file.</Description>
                      <Arg_Type>TIDP.Factory.CustomerTypes.ConfigValue</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                    <FactoryTaskArgument Name="force_write_of_all">
                      <Value xsi:type="xsd:boolean">true</Value>
                      <Description>Set to true if you want all project file parameters to be written to the device even if they are the same. [Default: False]</Description>
                      <Arg_Type>System.Boolean</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                  </Parameters>
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Clear_Faults" description="Clears faults on device." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Displays status in log before and after call to clear faults on device." TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Clear_Logged_Faults" description="Clears the logged faults on device as opposed to faults." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="" TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Set_Manufacturing_Date" description="Based on the string format will set the mfr_date accordingly." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Format examples:&lt;ol&gt;&lt;li&gt;yyMMdd would represent June 10 2008 as 080610&lt;/li&gt;&lt;li&gt;MMddyy would represent June 10 2008 as 061008&lt;/li&gt;&lt;li&gt;ddMMyy would represent June 10 2008 as 100608&lt;/li&gt;&lt;li&gt;yy_MM would represent June 10 2008 as 08_06&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;&lt;u&gt;many possiblities keep in mind that the mfr_date field has a limited number of characters if it is exceded then the task will fail.  For UCD9240 it is 6 characters.&lt;/u&gt;&lt;/b&gt;" TaskType="PMBUS">
                  <Parameters>
                    <FactoryTaskArgument Name="date_format">
                      <Value xsi:type="xsd:string">yyMMdd</Value>
                      <Description> [Default: yyMMdd]</Description>
                      <Arg_Type>System.String</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                  </Parameters>
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Set_Serial_Number" description="Sets serial number for the device(MFR_SERIAL).  This is either obtained from the user via a dailog &#xD;&#xA;            or is automatically obtained if &lt;b&gt;Automated&lt;/b&gt; is set to true.  Starting value and increment are used in both automation or manual.  If in manual it will &#xD;&#xA;            propose the next value to the user so they would only need to press enter as opposed to entering it." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="It should be noted that even though the serial number is incremented on subsequent runs it will start back from the starting_value set if the GUI is restarted." TaskType="PMBUS">
                  <Parameters>
                    <FactoryTaskArgument Name="Automated">
                      <Value xsi:type="xsd:boolean">false</Value>
                      <Description>If set to true will not prompt the user for a serial number [Default: False]</Description>
                      <Arg_Type>System.Boolean</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                    <FactoryTaskArgument Name="Starting_Value">
                      <Value xsi:type="xsd:int">5000</Value>
                      <Description>For the first board run with this script when the Manufacturing GUI starts will start with this number [Default: 5000]</Description>
                      <Arg_Type>System.Double</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                    <FactoryTaskArgument Name="Increment">
                      <Value xsi:type="xsd:int">1</Value>
                      <Description>This increment will be added to the Starting value and will either propose the number to the user if Automated is false or will add it automatically and write to MFR_SERIAL. [Default: 1]</Description>
                      <Arg_Type>System.Double</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                  </Parameters>
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Store_Default" description="Stores the values on the device to the non-voltile memory of the device." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Stores to flash." TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
              </Tasks>
            </FactoryTaskGroup>
            <FactoryTaskGroup Name="End">
              <Tasks>
                <FactoryTask Task_Attribute_Name="Clear_Faults" description="Clears faults on device." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Displays status in log before and after call to clear faults on device." TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Clear_Logged_Faults" description="Clears the logged faults on device as opposed to faults." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="" TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
              </Tasks>
            </FactoryTaskGroup>
            <FactoryTaskGroup Name="Reset_101">
              <Tasks>
                <FactoryTask Task_Attribute_Name="Device_Reset" description="Resets the device via PMBus and waits a default amount of time." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="" TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Pause" description="This task pauses the process by the number of milliseconds entered." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Basically a Thread.Sleep() with logging." TaskType="OTHER">
                  <Parameters>
                    <FactoryTaskArgument Name="pause_time_msec">
                      <Value xsi:type="xsd:int">150</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="Message_With_Image" description="This task causes a pop-up dialog with image.  This can be used to validate that a board looks like a golden image.  If the user clicks ok then it is considered a pass.&#xD;&#xA;            If the user clicks cancel then it is considered a fail." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Picture is stretched.  If no picture is desired use Message task." TaskType="OTHER">
                  <Parameters>
                    <FactoryTaskArgument Name="title">
                      <Value xsi:type="xsd:string">Cycle Board Power Now</Value>
                      <Description>Title for pop-up</Description>
                      <Arg_Type>System.String</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                    <FactoryTaskArgument Name="message">
                      <Value xsi:type="xsd:string">Cycle Board Power Now</Value>
                      <Description>Main contents of dialog that appears below the picture.</Description>
                      <Arg_Type>System.String</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                    <FactoryTaskArgument Name="image_location">
                      <Value xsi:type="xsd:string">..\Inputs\power_of_on.GIF</Value>
                      <Description>Location of file.</Description>
                      <Arg_Type>System.String</Arg_Type>
                      <Input_Type>FILE</Input_Type>
                    </FactoryTaskArgument>
                  </Parameters>
                </FactoryTask>            
              </Tasks>
            </FactoryTaskGroup>
            <FactoryTaskGroup Name="Validate_101">
              <Tasks>
                <FactoryTask Task_Attribute_Name="Validate_Vout_Device_All_Rails" description="Verify READ_VOUT on each output rail is within +-percent_pass% of VOUT_COMMAND on all configured rails." NameSpace="TIDP.Factory.TaskLibrary" classType="UCD9240" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="" TaskType="TEST">
                  <Parameters>
                    <FactoryTaskArgument Name="percent_pass">
                      <Value xsi:type="xsd:double">5</Value>
                      <Description>The allowed percentage variation. [Default: 5]</Description>
                      <Arg_Type>System.Double</Arg_Type>
                      <Input_Type>NORMAL</Input_Type>
                    </FactoryTaskArgument>
                  </Parameters>
                </FactoryTask>
              </Tasks>
            </FactoryTaskGroup>
            <FactoryTaskGroup Name="End">
              <Tasks>
                <FactoryTask Task_Attribute_Name="Clear_Faults" description="Clears faults on device." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="Displays status in log before and after call to clear faults on device." TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
                <FactoryTask Task_Attribute_Name="Clear_Logged_Faults" description="Clears the logged faults on device as opposed to faults." NameSpace="TIDP.Factory.TaskLibrary" classType="Manufacturing" Assembly="TIDP.Factory.TaskLibrary" dependencies="" Version="1.0.0" Reason_For_Last_Update="" Assembly_File_Version="1.2.15.0" Assembly_Version="1.2.15.0" Technical_Description="" TaskType="PMBUS">
                  <Parameters />
                </FactoryTask>
              </Tasks>
            </FactoryTaskGroup>
          </Task_Groups>
        </FactoryDeviceScript>
      </factoryDeviceScripts>
    </FactoryScript>

  • Hi

    UCD90120A is a sequencer and it can not change the output voltage of the monitoring rail. 

    What you can change the monitoring threshold in the GUI but these threshold will not be transferred to the power IC.

    Instead, the UCD90120A must be configured to match what the power IC can do. 

    The xml file can not be open, could you zip it and upload again?

    Regards

    Yihe

  • Hi

    The file was not generated from Fusion GUI.

    Please follow this video to export project file.

    https://training.ti.com/fusion-power-designer-import-and-export-project-files?context=1136655-1139495-1136588 

    Regards

    Yihe

  • Dear Yihe,

    Thank you for the reply.

    I already watched the video mentioned in the post here.

    Please find the project file from Fusion power designer in the attachment.

    As I import the project and try to write it to the device, I get this error message:

    UCD90120A @ PMBus Address 101d Project-1_8.zip

    Best regards

  • Hi

    As said early. UCD90120A is a sequencer. It is to control when to turn on or turn off the power, but it can not be used to adjust your output voltage. You have to find different way to adjust your output voltage.  

    It is not clearly what you want to do here.

    Please be specific. 

    Regards

    Yihe

  • Dear Yihe,

    I need to reprogramm the VADJ voltage on ZC706 EVB. According to this link,

      

    As you follow the link in the AD wiki page it will direct you to the Xilinx forum. I followed the instruction in ZC706_Power_Controllers_Reprogramming_Steps.pdf. It results in a failure.

    According to the post here. It not clear what needs to be done, to configure ZC706 evaluation board VADJ for 3.3V or 2.5V or 1.8V.

    Kind Regards

    Mihai

  • Hi

    The links was not right as you can see UCD90120A can not control the output voltage.

    The project file you shared has 1.8V at the VADJ. there must be something else in the hardware to adjust the output voltage of the VADJ power supply.t

    Have you contacted the Xilinx to get more clarification? 

    Regards

    Yihe 

  • The links was not right as you can see UCD90120A can not control the output voltage.

    So do you mean that the ADI is not suggesting the right way to reprogram the VADJ voltage?

    The project file you shared has 1.8V at the VADJ

    I set it manually myself to 1.8 V in rail#4 configuration, by default it was 2.5V on rail#4.


    Have you contacted the Xilinx to get more clarification? 

    No I didnt, should I ask them for help?

    Regards

    Mihai

  • Hi

    At least, UCD90120A is not the one to control the output. is there a switch on the board to adjust the output?

    UCD90120A is to monitor the output voltage and it shall be adjusted accordingly based on the real voltage of the power supply. 

    Manually adjusting the voltage from 2.5 to 1.8 in the configuration file does not change the output of the power supply. 

    I strongly recommend contacting the original designer or review their board user guide to see whether there is way to adjust the output.

    Regards

    Yihe