Skip to main content
TSaku.2135
Associate II
December 6, 2019
Solved

VCONN_SUPPORT

  • December 6, 2019
  • 4 replies
  • 1943 views

I would like to enable VCONN based on STM32CubeExpansion_USBPD_F0_V2.1.0.

I found CMACRO "_VCONN_SUPPORT", but I encountered complile errors below if I used _VCONN_SUPPORT.

compiling usbpd_dpm_core.c...

../../../../../../Middlewares/ST/STM32_USBPD_Library/Core/src/usbpd_dpm_core.c(191): error: #20: identifier "USBPD_DPM_EvaluateVconnSwap" is undefined

   USBPD_DPM_EvaluateVconnSwap,

../../../../../../Middlewares/ST/STM32_USBPD_Library/Core/src/usbpd_dpm_core.c(192): error: #20: identifier "USBPD_DPM_PE_VconnPwr" is undefined

   USBPD_DPM_PE_VconnPwr,

../../../../../../Middlewares/ST/STM32_USBPD_Library/Core/src/usbpd_dpm_core.c: 0 warnings, 2 errors

I think I should write these functions in my user code, but I would like to see sample code of these functions.

Please advice.

This topic has been closed for replies.
Best answer by Yohann M.

Hello

Please find an update of the project in enabling switch '_VCONN_SUPPORT'.

Thanks to this application, you should see communications with cable.

On my EVAL_FUSB307 board, I changed the jumper JP2 to connect VCONN directly to 5.0V.

For your information, on this FW package, cable information will transit to application thanks to callback 'USBPD_DPM_SetDataInfo' with DataID=USBPD_CORE_IDENTITIY_SOP1:

/**
 * @brief DPM callback to allow PE to update information in DPM/PWR_IF.
 * @param PortNum Port number
 * @param DataId Type of data to be updated in DPM based on @ref USBPD_CORE_DataInfoType_TypeDef
 * @param Size Nb of bytes to be updated in DPM
 * @retval None
 */
void USBPD_DPM_SetDataInfo(uint8_t PortNum, USBPD_CORE_DataInfoType_TypeDef DataId, uint32_t *Ptr, uint32_t Size)
{
 uint32_t index;
 
 /* Check type of information targeted by request */
 switch (DataId)
 {
(...)
 case USBPD_CORE_IDENTITIY_SOP1 :
 {
 uint8_t* disco_ident;
 disco_ident = (uint8_t*)&DPM_Ports[PortNum].VDM_DiscoCableIdentify;
 memcpy(disco_ident, (uint8_t*)Ptr, sizeof(USBPD_DiscoveryIdentity_TypeDef));
 break;
 }

4 replies

Yohann M.
ST Employee
December 6, 2019

Dear @TSaku.2135​  ;)

We did not deliver VCONN applications on X-CUBE AFE solution. This solution is no more supported for P-NUCLEO-USB001.

In addition to this solution, we have introduced traditional STM32 MCUs with native hardware interface (called UCPD) to support USB-C and Power Delivery Technology.

This solution �?� described below, is available in STM32G0, STM32G4 and STM32L5 product families.

It comes with a complete ecosystem (such as a discovery kit and a debugging tool) that simplifies UCPD configuration and use.

USB PD middleware stack is now part of STM32Cube (so X-CUBE-USB-PD expansion pack is not needed anymore when this solution is selected)

To make this new solution even more attractive a companion Type-C Port Protection (TCPP01-M12) is available to protect the CC lines against ESD and short to VBus.

0690X00000AtNJLQA3.jpg

Further information on that new offer are available here after.

  • STM32G0 USB-C marketing presentation : link
  • Getting started video with USB type-C and STM32G0 ecosystem : link
  • Create a USB Power Delivery sink application in less than 10’ : link
  • STM32G0 series : link
  • STM32G071B-Disco data brief : link
  • STM32G071B-Disco User manual : link
  • STM32CubemonUCPD (USB PD Software debugging tool): link
  • STM32G0 Online Training : link and a specific training on STM32G0 UCPD interface here
  • Specific Application Note AN5225.

Anyway, you will find in EVAL-G0 demonstrations code ('.\Projects\STM32G081B-EVAL\Demonstrations\DemoUCPD\') the way to manage VCONN in the FW package.

Regards,

Yohann

TSaku.2135
Associate II
December 7, 2019

Dear Yohann M,

Thank you for prompt answers.

I am using TCPM/TCPC configuration with ON-FUSB3-STM32 board. Is that possible to enable VCONN ?

Yohann M.
Yohann M.Best answer
ST Employee
December 9, 2019

Hello

Please find an update of the project in enabling switch '_VCONN_SUPPORT'.

Thanks to this application, you should see communications with cable.

On my EVAL_FUSB307 board, I changed the jumper JP2 to connect VCONN directly to 5.0V.

For your information, on this FW package, cable information will transit to application thanks to callback 'USBPD_DPM_SetDataInfo' with DataID=USBPD_CORE_IDENTITIY_SOP1:

/**
 * @brief DPM callback to allow PE to update information in DPM/PWR_IF.
 * @param PortNum Port number
 * @param DataId Type of data to be updated in DPM based on @ref USBPD_CORE_DataInfoType_TypeDef
 * @param Size Nb of bytes to be updated in DPM
 * @retval None
 */
void USBPD_DPM_SetDataInfo(uint8_t PortNum, USBPD_CORE_DataInfoType_TypeDef DataId, uint32_t *Ptr, uint32_t Size)
{
 uint32_t index;
 
 /* Check type of information targeted by request */
 switch (DataId)
 {
(...)
 case USBPD_CORE_IDENTITIY_SOP1 :
 {
 uint8_t* disco_ident;
 disco_ident = (uint8_t*)&DPM_Ports[PortNum].VDM_DiscoCableIdentify;
 memcpy(disco_ident, (uint8_t*)Ptr, sizeof(USBPD_DiscoveryIdentity_TypeDef));
 break;
 }