2026-01-30 11:47 PM - edited 2026-01-30 11:49 PM
Hi, I'm trying to implement USBPD EPR Source with DisplayPort Alt Mode on a STM32G071.
I use the latest https://github.com/STMicroelectronics/stm32-mw-usbpd-core, which seems to support EPR, but I couldn't find any complete examples with a working EPR source.
Now I successfully enter EPR mode, and Sink receives EPR PDOs, but can't negotiate any PDO except the 1st. Even SPR PDOs
The stack sends REJECT after PE_SRC_NEGOTIATE_CAPABILITY.
It works perfectly in SPR mode and can switch between PDOs, but fails the same PDO in EPR mode
1st PDO in EPR mode ACCEPT:
2nd PDO REJECT:
How can I debug these things inside the stack? What am I missing?
uint32_t PORT0_PDO_ListSRC[USBPD_MAX_NB_PDO] =
{
/* PDO 1 */
(
USBPD_PDO_TYPE_FIXED | /* Fixed supply PDO */
USBPD_PDO_SRC_FIXED_SET_VOLTAGE(5000U) | /* Voltage in mV */
USBPD_PDO_SRC_FIXED_SET_MAX_CURRENT(1000U) | /* Max current in mA */
USBPD_PDO_SRC_FIXED_PEAKCURRENT_EQUAL | /* Peak Current info */
/* Common definitions applicable to all PDOs, defined only in PDO 1 */
USBPD_PDO_SRC_FIXED_EPR_SUPPORTED | /* EPR Mode Capable */
USBPD_PDO_SRC_FIXED_UNCHUNK_SUPPORTED | /* Unchunked Extended Messages */
USBPD_PDO_SRC_FIXED_DRD_SUPPORTED | /* Dual-Role Data */
USBPD_PDO_SRC_FIXED_USBCOMM_NOT_SUPPORTED | /* USB Communications */
USBPD_PDO_SRC_FIXED_EXT_POWER_NOT_AVAILABLE | /* External Power */
USBPD_PDO_SRC_FIXED_USBSUSPEND_NOT_SUPPORTED | /* USB Suspend Supported */
USBPD_PDO_SRC_FIXED_DRP_SUPPORTED /* Dual-Role Power */
),
/* PDO 2 */
(
USBPD_PDO_TYPE_FIXED | /* Fixed supply */
USBPD_PDO_SRC_FIXED_SET_VOLTAGE(9000U) | /* Voltage in mV */
USBPD_PDO_SRC_FIXED_SET_MAX_CURRENT(3000U) | /* Max current in mA */
USBPD_PDO_SRC_FIXED_PEAKCURRENT_EQUAL /* Peak Current info */
),
Solved! Go to Solution.
2026-01-31 12:28 AM
After creating a topic, I found my bad in USBPD_PWR_IF_SearchRequestedPDO while in EPR mode.
Would be nice to have an EPR Source example from ST.
2026-01-31 12:28 AM
After creating a topic, I found my bad in USBPD_PWR_IF_SearchRequestedPDO while in EPR mode.
Would be nice to have an EPR Source example from ST.