cancel
Showing results for 
Search instead for 
Did you mean: 

USB PD (UCPD) on STM32H562

AWack
Senior

Hi,

I´ve problems getting UCPD running on a STM32H563. With STM32G0 I´ve alraedy realized a lot of such projects with UCPD. Hence I suggest, that it maybe is a problem of the DMA which is much more complicated to configure on the H5. Is there any information about how to configure UCPD on H5?

Best,

Achim

12 REPLIES 12
FBL
ST Employee

Hi @AWack 

Here you can find example firmware of UCPD on H563. If still having issues linked to UCPD and DMA configuration, provide more details to help you further.

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.




Best regards,
FBL

Hi FBL,

unfortunately I still don´t get 20V. Also checked the measured USB voltage in usbpd_pwr_user.c

Please find attached a USB PD log. it infinitely request the source capabilities...

 

FBL
ST Employee

Hi @AWack 

EPR should be supported using our stack. However, as of now we don't have an example firmware to reach 20V and hardware setup to test this. Based on your screenshot, it seems EPR mode, is still not configured! 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.




Best regards,
FBL

Hi AWack

Please find attached an .ioc for an USB PD DRP on a STM32H573 as example for the DMA configuration on H5.

Feel free to share your .ioc 

-----------------

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi,

after some time I´ve tried again to get UCPD running with 20V.

I compared my ioc file (see attached) with the one you attached and think all configurations are correct. But unfortunately it still doesn´t work...

 

Best,

Achim

PPAIL.1
ST Employee

Hi AWack,

You are using ADC1-IN5 for USB-PD.

Could you try again changing the ADC1 "overrun behaviour" configuration to : "Overrun data overwritten".

Also, there is no need to enable "DMA continuous requests" or for GPDMA configuration for the ADC1.

The rest of your configuration looks fine.

 

Hi,

 

I´m still struggling... also changing the ADC configuration didn´t help....

I also tried it with the Nucleo H563 board (after desoldering R60). Same result...

Best regards,

Achim

Hi AWack

For the Nucleo-H653 board, you will find a working .ioc file attached to generate the project. It includes a 20V 100mA PDO.

By connecting a 20V capable USB-Type C charger, the software negociates a 20V. You can verify with STM32CubeMonitor-UCPD.

But, on this hardware, the TCPP01 OVP is set to 6V (R56 = 2.4kOhms), then when Vbus=20V it opens the Vbus path.

Capture d’écran 2026-03-02 154419.jpg

So you can replace R56 by a 620 Ohms resistor to increase the OVP to 22V.

TCPP01_R_OVP.jpg
Warning: It is now possible to have 20V on the board, NEVER place the "PWR SEL" jumper in the "USB USER" position, as this may damage the board and/or your computer. 

I have experimentally validated this solution on my end, please let me know.

Best regards

Hi PPAIL.1,

 

thanks a lot for the detailed response!!!

Now it works on the Nucleo board :) I think my mistake was, the DMA address incrementation. I increased for RX and TX address at memory side.

But trying to get it run on our own board, it doesn´t work. I´ve compared all ioc settings and the only difference I can figure out is, that I´m using FreeRTOS instead of ThreadX. Could this be the cause?

Best regards,

 

Achim