USB EZ-PD™ Type-C Forum Discussions
I've run into an issue when working with a project from the CCG3 SDK (v3.0.2).
Specifically I've been working with the CYPD3120-40LQXI_dp_dongle project. I copied the project to my working firmware directory, modified the code, and now I'm looking to rename the project to better reflect the changes I've made (going from dp_dongle to monitor).
Renaming the workspace was no problem, but renaming the project is proving troublesome. Any attempts to rename the project from PSoC Creator (3.3) results in an "Access Denied" error:
This isn't a problem with any other projects in this firmware directory, so there should be no problem with PSoC Creator having permissions from the OS to move/rename files. Attempting to copy the project results in build errors on the copied project, and attempting to rename the copied project throws the same Access Denied message.
What's special about these projects that I'm unable to rename them?
Is there a way to work around this?
Show LessHello,
Connect to the USB 2.0 Port 500mA, but the dcp callback function launch (bc_fsm_sink_dcp_connected)
It seems abnormal, because the dcp will set the charging current to 1.5A.
Please advise
Thanks
Show LessHello everyone
Why is the CYPD3120 no more available in SDK v3.4 ? Is there somewhere a firmware example available ?
I would like to program the CYPD3120 with the MiniProg3 and i can't find any example...
I have also tried to install the old SDK v3.0.1 (where the CYPD3120 was available) but here is the problem that for the installation it requires the Cypress Document Manager and it isn't available any more.
Thank you for the support.
Regards
Show Lessit is possible update CYPD3175-24LQXQ FW via TYPE C connector ?
Q: if yes what type of project need to be prepare ?
no boot project ?
bootable project ?
Show LessFWでSHV Regulatorをdisableにした場合でも、電源投入後しばらくはSHVはenableでしょうか。
もしそうであれば、いつdisableになりますでしょうか。
-------------------------
If SHV Regulator is disabled by FW, is it enabled for a while after the power is turned on? If it is yes, When will it be disabled?
Show LessHi all,
This is a followup to a previous thread: CCG3 - Receptacle Pinout for a USB-C (DP Alt Mode E) Monitor?
From the info put together in that thread, we determined we do not actually want a Type-E pinout, but a Type-D, as we are only using 2 DisplayPort lanes. We also determined we must have a USB-C Mux for our monitor design.
Today we received our new prototypes for the redesign to accommodate these changes, and are having issues getting the firmware to behave correctly. I want to make sure everything we are doing makes sense, because we are still having no luck getting our PC to recognize the device as a monitor.
Our source is a Windows PC connected to a CCG4 Eval Kit, which converts to USB-C. The CCG4 Eval Kit is confirmed working with this PC and an off-the-shelf USB-C Monitor.
Anyway, onto the show:
Here is how our USB-C receptacle is connected:
And here is how our USB-C mux (TI TUSB564) is connected:
Note that we have R160 and R161 depopulated, as we are looking to have the CYPD be in control of the SBU/AUX lines. SBU1, SBU2, AUX_P. and AUX_N are routed only to the CYPD3120.
The CYPD3120 is connected as follows:
As far as I can tell, our hardware connections should be OK for DP Mode-D operation.
Also note that DP_AUX+ and DP_AUX- are pulled up/down by 1M resistors external to the CYPD3120 per DisplayPort spec (this is not shown in the schematics above)
Our starting point was the default CYPD3120 Dongle firmware. I have made the following adjustments to the firmware for Recepticle/Monitor operation:
1) mux_ctrl_set_cfg() has been adjusted to account for controlling the mux via the 3 GPIO pins, CTL1,CTL0, and FLIP. It should now match the TUSB564 control table:
bool mux_ctrl_set_cfg( uint8_t port, mux_select_t cfg, uint8_t polarity)
{
/* Configure SBU-AUX switch based on CC polarity. */
switch (cfg)
{
case MUX_CONFIG_ISOLATE:
/* Ensure that SBU-AUX switch is open. */
sbu_switch_configure(SBU_NOT_CONNECTED, SBU_NOT_CONNECTED);
/* Ensure that AUX1/2 don't have any resistor pull up/down. */
aux_resistor_configure (AUX_NO_RESISTOR, AUX_NO_RESISTOR);
break;
case MUX_CONFIG_SS_ONLY:
MUX_CTL1_Write(0);
MUX_CTL0_Write(1);
if (polarity == 0)
{
MUX_FLIP_Write(0);
}
else
{
MUX_FLIP_Write(1);
}
sbu_switch_configure(SBU_NOT_CONNECTED, SBU_NOT_CONNECTED);
/* Ensure that AUX1/2 don't have any resistor pull up/down. */
aux_resistor_configure (AUX_NO_RESISTOR, AUX_NO_RESISTOR);
break;
case MUX_CONFIG_DP_2_LANE:
MUX_CTL1_Write(1);
MUX_CTL0_Write(1);
if (polarity == 0)
{
/* CC1 is active. */
sbu_switch_configure(SBU_CONNECT_AUX1, SBU_CONNECT_AUX2);
MUX_FLIP_Write(0);
}
else
{
/* CC2 is active. */
sbu_switch_configure(SBU_CONNECT_AUX2, SBU_CONNECT_AUX1);
MUX_FLIP_Write(1);
}
/*We are using external PU/PD on AUX1/2, set NO INTERNAL RESISTORS*/
aux_resistor_configure (AUX_NO_RESISTOR, AUX_NO_RESISTOR);
break;
case MUX_CONFIG_DP_4_LANE:
MUX_CTL1_Write(1);
MUX_CTL0_Write(0);
if (polarity == 0)
{
/* CC1 is active. */
sbu_switch_configure(SBU_CONNECT_AUX1, SBU_CONNECT_AUX2);
MUX_FLIP_Write(0);
}
else
{
/* CC2 is active. */
sbu_switch_configure(SBU_CONNECT_AUX2, SBU_CONNECT_AUX1);
MUX_FLIP_Write(1);
}
/*We are using external PU/PD on AUX1/2, set NO INTERNAL RESISTORS*/
aux_resistor_configure (AUX_NO_RESISTOR, AUX_NO_RESISTOR);
break;
default:
break;
}
return true;
}
2) In config.h, DP_UFP_DONGLE has been removed, and DP_UFP_MONITOR has been defined:
//#define DP_UFP_DONGLE (1u)
#define DP_UFP_MONITOR (1u)
3) In config.h, DP_GPIO_CONFIG_SELECT has been set to 0, as we want to determine our supported pinout (Type-D) from our configuration rather than GPIO:
//#define DP_GPIO_CONFIG_SELECT (1u)
#define DP_GPIO_CONFIG_SELECT (0u)
With this modified, and our configuration loaded (config is attached) we get nothing. The PC connected does not see anything on the other end. I have also attached the logs from the EZ-PD Analyzer utility. One transmission in particular stands out, SL#51 from our sink:
Looks like we are maybe still missing a few necessary changes to get this working properly? UFP_D pin assignments are showing not supported, and Receptacle indication appears to still be configured as a plug. It also calls out Pin E supported (which, in the configuration for the CCG3, is explicitly NOT supported) How would these be changed?
Would anyone have any suggestions as to what we could try from here? If I'm recalling correctly, the only difference in the CCG3 products is the firmware/included bootloader. Would we be better off starting with a different firmware as a base?
Any help is much appreciated! Thanks!
Show LessHello there I have a question if I implemente 45W car charger using Southchip SC8815 and it works fine and i'm thinking about using CYPD3171 instead of CYPD3175 to make it a powerbank dual role is there a change that should be done in hardware side ?
Or only in the firmware ?
I appreciate all your answer
Show LessHello
They are currently evaluating 100W power supply and charging. They are using CY4532 as Power source, and using CY4533 as Power sink.
In particular, there is an issue on the power receiving side(BCR side: CY4533) below..
Q)
Although it is a BCR, even if the rotary SW is turned during power supply, the PDO changes and the output also changes, but when it is changed to 20V, it becomes very hot.The actual inflow current will be about 20mA when normally started at 20V, but it will be about 60mA if changed on the way.Is this a BCR specification?
Best Regards
Arai
Show LessHello,
1. In main.c
----
timer_start (0, VBUS_MONITOR_TIMER_ID, VBUS_MONITOR_TIMER_PERIOD, vbus_monitor_timer_cb);
while (1)
{
...
}
----
2. soft timer callback below in main.c as well
----
void vbus_monitor_timer_cb (
uint8_t port,
timer_id_t id)
{
(void)port;
(void)id;
I2CM_I2CMasterWriteBuf(....)
timer_start (0, VBUS_MONITOR_TIMER_ID, VBUS_MONITOR_TIMER_PERIOD, vbus_monitor_timer_cb);
}
--
add I2C write in soft timer callback, but occurring reboot.
My question is can not use the I2C master write in soft timer callback?
Thanks
Show Less