- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear,
I encountered some problems when making HUB project using CYPD4236 of CCG4.
After my PR_SWAP, a soft reset message appeared.
Compared with the commercially available HUB, the message is as shown below.
When I encounter this problem, how can I modify it?
Thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
1. From the CC log, it cannot be identified. The way to identify it which is add a debug into the CCGx firmware to confirm whether CCGx have been sent soft reset or not.
2. Kindly refer below contents for add cable discovery function:
a. Add VCONN circuits into CCGx design.
b. Enable cable discovery with EZ-PD configuration and update config.c in the firmware project.
c. Add VCONN control functions into the project and register them into Application callback functions for the DPM.
(1)Add two pins named VCONN_CC1 and VCONN_CC2 into TopDesign.cysch for VCONN support.
(2)VCONN control functions are as follows:
#define VCONN_SUPPORT_ENABLE (1)
#if VCONN_SUPPORT_ENABLE
#define VCONN_SWITCH_ON_VALUE (0)
#define VCONN_SWITCH_OFF_VALUE (1)
void pb_vconn_enable(uint8_t port, uint8_t channel)
{
if (channel == CC_CHANNEL_1)
{
VCONN_CC1_Write(VCONN_SWITCH_ON_VALUE);
}
else
{
VCONN_CC2_Write(VCONN_SWITCH_ON_VALUE);
}
/* Reset RX Protocol for cable */
dpm_prot_reset_rx(port, SOP_PRIME);
dpm_prot_reset_rx(port, SOP_DPRIME);
}
void pb_vconn_disable(uint8_t port, uint8_t channel)
{
if (channel == CC_CHANNEL_1)
{
VCONN_CC1_Write(VCONN_SWITCH_OFF_VALUE);
}
else
{
VCONN_CC2_Write(VCONN_SWITCH_OFF_VALUE);
}
}
bool pb_vconn_is_present(uint8_t port)
{
bool state;
if (dpm_get_info(port)->rev_pol == 0)
{
state = VCONN_CC1_Read();
}
else
{
state = VCONN_CC2_Read();
}
if (state == VCONN_SWITCH_ON_VALUE)
{
return true;
}
return false;
}
#endif /* VCONN_SUPPORT_ENABLE */
(3). Register the updated functions into Application callback functions for the DPM.
Best Regards,
Lisa
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
The soft reset is SOP_PRIME, which is for cable negotiation. It is no problem to have this message on CC line, it shall not block any negotiation between DFP and UFP.
If you need to clean those, please kindly add cable discovery and enable VCONN in your design.
Best Regards,
Lisa
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Lisa,
I have two questions:
1. Is this soft reset message sent by DFP or UFP?
2. In which paragraph in the example can I know that this message is sent and customize the behavior?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
1. From the CC log, it cannot be identified. The way to identify it which is add a debug into the CCGx firmware to confirm whether CCGx have been sent soft reset or not.
2. Kindly refer below contents for add cable discovery function:
a. Add VCONN circuits into CCGx design.
b. Enable cable discovery with EZ-PD configuration and update config.c in the firmware project.
c. Add VCONN control functions into the project and register them into Application callback functions for the DPM.
(1)Add two pins named VCONN_CC1 and VCONN_CC2 into TopDesign.cysch for VCONN support.
(2)VCONN control functions are as follows:
#define VCONN_SUPPORT_ENABLE (1)
#if VCONN_SUPPORT_ENABLE
#define VCONN_SWITCH_ON_VALUE (0)
#define VCONN_SWITCH_OFF_VALUE (1)
void pb_vconn_enable(uint8_t port, uint8_t channel)
{
if (channel == CC_CHANNEL_1)
{
VCONN_CC1_Write(VCONN_SWITCH_ON_VALUE);
}
else
{
VCONN_CC2_Write(VCONN_SWITCH_ON_VALUE);
}
/* Reset RX Protocol for cable */
dpm_prot_reset_rx(port, SOP_PRIME);
dpm_prot_reset_rx(port, SOP_DPRIME);
}
void pb_vconn_disable(uint8_t port, uint8_t channel)
{
if (channel == CC_CHANNEL_1)
{
VCONN_CC1_Write(VCONN_SWITCH_OFF_VALUE);
}
else
{
VCONN_CC2_Write(VCONN_SWITCH_OFF_VALUE);
}
}
bool pb_vconn_is_present(uint8_t port)
{
bool state;
if (dpm_get_info(port)->rev_pol == 0)
{
state = VCONN_CC1_Read();
}
else
{
state = VCONN_CC2_Read();
}
if (state == VCONN_SWITCH_ON_VALUE)
{
return true;
}
return false;
}
#endif /* VCONN_SUPPORT_ENABLE */
(3). Register the updated functions into Application callback functions for the DPM.
Best Regards,
Lisa