Skip to main content
Visitor II
December 6, 2019
Solved

VCONN_SUPPORT

  • December 6, 2019
  • 1 reply
  • 1833 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;
     }

    1 reply

    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

    Visitor 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.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;
     }