Showing results for 
Search instead for 
Did you mean: 

Hi ST Team, We are planning to use the STUSB4500 in one of our projects. We are facing some difficulty understanding PDO,s Register bits, and saving PDO parameters in the NVM register.


Hi ST Team,

We are planning to use the STUSB4500 in one of our projects. For testing we are using the EVAL board, We are facing some difficulty understanding PDO,s Register bits while programming to the controller and we have few more questions listed below.

  • What is the role of the PDO Register bits from B23-B31 (as mentioned below attached image)? Need full description and how it works on PDO power negotiation
    • B31:30 - Fixed supply
    • B29 - Dual-role power
    • B28 - Higher capability
    • B27 - Unconstrained power
    • B26 - USB communication capable
    • B25 - Dual-role data 
    • B24:B23 - Fast role swap required USB-Type-C current 0693W00000BcTVdQAN.png
  • What are the procedures to save the value in the NVM register after configuration?
  • How to Program between flexible current values and predefined values, is there any flag r register to set, and how the current selection happened by the controller between flexible current values and Predefined values?

ST Employee


The field you are pointed out are USBPD normalised field.

As you are using our Eval board, may I suggest you to use at first our GUI, with Nucleo STM32F072:

We are also proposing some drivers STSW-STUSB004 in order to update the NVM

Best regards

Associate II


I am reading the document UM2650 as I intend to use the STUSB4500.

Is not there a full description of the registers?

It is no help to refer to the links of the above post.

Thanks in advance.

Best regards,



Associate II


On page 3 of document UM2650, it is stated that the bits B22...20 of DPM_SNK_PDO1_1 are reserved and set to zero. Why is the reset value 001b and not 000b. I assume DPM_SNK_PDO1_1 register contains B23....B16, right?

Best regards,


Hello Peter,

DPM_SNK_PDO is a 32 bits stored in 8bits register.

DPM_SNK_PDO1_0 stores bits [7:0]

DPM_SNK_PDO1_1 stores bits [15:8]

DPM_SNK_PDO1_2 stores bits [23:16]

DPM_SNK_PDO1_3 stores bits [31:24]
Thus bits [23:16] can be found in DPM_SNK_PDO1_2 and not in DPM_SNK_PDO1_1

Best regards