• Resolved

Command sequence to adjust rail voltage on UCD92xx

Using my own embedded design I am generally able to communicate on the PMBus with the UCD9240 and UCD9248 controllers and have successfully used many of the commands including VOUT_COMMAND to adjust the output voltage of a rail.


I recently had the requirement to be able to set a rail to 1.8v, 2.5v and 3.3v based on information determined from a peripheral card plugged to the main board. It was easy to do this using the VOUT_COMMAND but only by programming the default values of VOUT_MAX, VOUT_OV_FAULT_LIMIT, VOUT_UV_FAULT_LIMIT, VOUT_OV_WARN_LIMIT, VOUT_UV_WARN_LIMIT, VOUT_MARGIN_HIGH, VOUT_MARGIN_LOW, POWER_GOOD_ON and POWER_GOOD_OFF to cover the entire range.


Allowing for 15% below the 1.8v and 15% above 3.3v this meant that values ranged between 1.563v and 3.795v. It worked but clearly this compromises the safety that features like VOUT_MAX exist for. So the plan was to adjust all the parameters to values related closely to each nominal voltage. So now I turn the rail off (SEQ3 input is being used as an on/off control), I write the set of 10 new values and then turn the rail back on again. Unfortunately it now appears that the value of VOUT_COMMAND register is not changing from its initial 2.5v default.


So to my questions….


Do I need to write the set of values in a particular order? Even though the output is turned off, is there something still preventing values being written? For example I know that it would normally stop me writing a value to VOUT_COMMAND that is higher that VOUT_MAX but what happens if I set VOUT_MAX to a value less than the current value of VOUT_COMMAND? Could that be locking VOUT_COMMAND so it cannot be written even if when the new value being written is lower? Am I missing a step before making such a lot of changes? May be I need to write something to OPERATION first?


Because the UCD92xx controls 3 other rails that must remain active on the board I cannot turn the whole thing off to make changes. I learnt previously that having any outputs active prevented RESTORE_DEFAULT_ALL from working so I’m just wondering if it is also impossible to change so many parameters on a single rail even if that rail it is off. Of course, I’m always willing to believe I’m doing something silly in my own code but I’d like to rule anything else out!


Thanks in advance for any advice or additional knowledge.   



  • I am going to admit that I did do something silly in my code but it does look like it is sensible (and possibly required) to use the ‘ON_OFF_CONFIG’ and ‘OPERATION’ commands when changing so many parameters.  


    Setting the ‘ON_OFF_CONFIG’ register for the appropriate page to 1A hex enables OPERATION to control the rail. Then writing 00 hex to OPERATION of the same page turns the rail OFF and writing 80 hex turns the rail ON.


  • Hi,

    I am newbie and am able to modify the voltage output on a certain rail using Set_Vout_Command. But the voltage can be increased up to 2.8V. I would like to work at 3.3V. As suggested, the parameters VOUT_MAX, VOUT_OV_FAULT_LIMIT, VOUT_UV_FAULT_LIMIT, VOUT_OV_WARN_LIMIT, VOUT_UV_WARN_LIMIT, VOUT_MARGIN_HIGH, VOUT_MARGIN_LOW, POWER_GOOD_ON and POWER_GOOD_OFF need to be modified. 

    However these parameters are not found in the Set_Vout_Command of the tool Fusion Digital Power Manufacturing (GUI v 1.2..89). As I understand I need to issue a PAGE command. This command is not found in the list of tasks (TIDP.Factory.TaskLibrary.dll).

    Any help would be appreciate.


  • In reply to Erik Coenders:

    Just discovered that there are 2 software tools: Fusion Digital Power Design and Fusion Digital Power Manufactuering tool. I was using the latest which is not the proper one.

    With the Design tool, I am able to modify only the Vout value on rail4 of device 52dec to 3.3V for the Xilinx KC705 board, all other parameters are automatically adapted. Next step was to press the buttons in a sequence: Write to Hardware, Store RAM to Flash. That's all.

    It holds also for the Xilinx ZC702 but the device address is 53dec and its rail 1 is connected to the VADJ.