2026-02-06 6:12 AM
I am trying to set up a USBPD sink (9V PDO) but I am failing to get a successful PD-contract with a PD-source.
Following components should be used in my project:
- STM32G0B1 MCU
- TCPP03-M20 (I just need the sink features)
- X-CUBE-TCPP 4.2.0
I have tried to use these examples as a basis:
https://github.com/STMicroelectronics/x-cube-tcpp/tree/main/Projects/NUCLEO-G0B1RE/Applications/USB_PD/DRP1M1_DRP_DRD
With debugging I can see that DPM_Params[_port].PE_IsConnected is set to USBPD_TRUE.
In USBPD_DPM_Notification at default case I get a USBPD_NOTIFY_POWER_STATE_CHANGE event and after that USBPD_NOTIFY_HARDRESET_TX event. Afterwards my MCU reboots and the whole loop starts again.
I noticed that I do not receive a message in PORTx_IRQHandler. I do not jump into:
if (UCPD_SR_RXMSGEND == (_interrupt & UCPD_SR_RXMSGEND))
{
...
}
Do you have any hints for me what I am missing?
Feel free to ask for more information, I know that my provided information might not be enough.
Thanks for your help in advance.