USB EZ-PD™ Type-C Forum Discussions
I am currently working on developing a USB-C based adapter to USB2 that can charge a mobile phone as well as provide USB2 communication. The goal is to be able to connect a USB keyboard to a mobile phone (smart phone) and be able to charge the phone at the same time.
I have worked out the firmware for the most part using CYPD 2122-24LXQIT found in the CY4521 EZ-PD™ CCG2 Evaluation Kit to always do a DR_SWAP to ensure the data direction is correct, and do a PD_SWAP based on a GPIO pin. I have been using this evaluation kit, but, as known, it is not tailored to this specific task. I must provide power to the USB device among other small things.
I am considering the CCG3 because of the fast PD_SWAP feature available and would prefer a completed hardware design platform to soon begin software development.
The following reference design is very close to what I would like to produce for a final solution, and would like ti purchase it from Cypress if there is any stock of the kit available. It is difficult to make and parts are difficult to source in small quantity.
EZ-PD™ CCG3 USB Type-C Charge-Through Dongle
http://www.cypress.com/documentation/reference-designs/ez-pd-ccg3-usb-type-c-charge-through-dongle
Has this PCB been made assembled internally? If there is any stock available it would immensely help with some design.
Can an engineer or sales representative confirm if there is any stock possibly available for purchase of this reference design? I am looking to acquire 2-5 PCBs. I would honestly prefer purchasing a confirmed working hardware platform versus having the PCB fabricated in such small quantity.
Show LessHi,
we using we are using CYPD2122-24LQXI_notebook example code, we have Type C Adapter with output 5v-3A,12V-3A,15V-3A,20V-3A, if device is attached in sink mode how this different voltage and current set internally by CCG2 Device.
Thanks,
nagaraj
Show LessHi,
How to get current active PDO profile used by ccg2 device either in source or sink mode through HPI interface, we added Sink pdo 5V@3A, 9V@3A, 12V@3A, 15V@3A, 20V@3A and Source 5V@3A ,12V@3A , we tried to read 0x24 and 0x25 registers respond with values 0x1F and 0x01 respectively.
we tired to read CURRENT_PDO from ccg2 in sink mode responds with value 0x1003C12C, what this value represents.
Thanks,
Nagaraj
Show LessHi,
We are using CCG2 power delivery controller CYPD2122. This will be used for voltage negotiation as per USB 3.0 protocol using CC1 and CC2.
I have one question regarding the layout of CC1 and CC2 lines:
Do we need to length match CC1 and CC2 traces in the PCB layout?
Thanks & Regards,
Sunny Watts
Show LessHI,
Need some guide line on why I2C device read/write is not success. Iam using PSOC creator to creat MUX_CTRL I2C master component. REad/Write routine looks like below. All I2C driver calls return success but returned value is not matching with what expected.
Thank you,
uint8_t I2CDeviceReadReg(uint8_t reg)
{
uint8_t writebuf[1]={0x0};
uint8_t readbuf[1]={0};
writebuf[0]=reg;
.......
MUX_CTRL_I2CMasterWriteBuf(ADDR,(uint8_t*)writebuf,1,MUX_CTRL_I2C_MODE_NO_STOP);
while((MUX_CTRL_I2CMasterStatus() & MUX_CTRL_I2C_MSTAT_WR_CMPLT)==0){};
MUX_CTRL_I2CMasterReadBuf(ADDR,(uint8_t*)readbuf,1,MUX_CTRL_I2C_MODE_REPEAT_START);
while((MUX_CTRL_I2CMasterStatus() & MUX_CTRL_I2C_MSTAT_RD_CMPLT)==0){};
................
return 0;
}
void I2CDeviceWriteReg(uint8_t reg,uint8_t value)
{
uint8_t writebuf[2]={0};
writebuf[0]=reg;
writebuf[1]=value;
MUX_CTRL_I2CMasterWriteBuf(ADDR,writebuf,2,MUX_CTRL_I2C_MODE_COMPLETE_XFER);
while((MUX_CTRL_I2CMasterStatus() & MUX_CTRL_I2C_MSTAT_WR_CMPLT)==0){};
return;
}
Show LessFor a sink to renegotiate the voltage I want to use these steps
- Change the sink capabilities runtime with dpm_update_snk_max_min
- dpm_pd_command (0, DPM_CMD_GET_SRC_CAP,NULL, pd_command_cb);
- dpm_pd_command (0,DPM_CMD_SNK_CAP_CHNG,NULL, pd_command_cb);
For this procedure the function dpm_update_snk_max_min requires a "max_min" array as parameter but in the SDK the structure of this array is not specified.
Is this anywhere specified and/or is there example code available for this?
Facing issue in using I2C line between PSOC CYPD-3125 and Cross Bar I2C device. Using PSOc creator to create I2C master component and followed some of the sample with developement kit but I2C read write is not success. API return success but written value is not reflected on device register. Can you provide any suggestion to overcome the issue.
Build version shows 3.10 . Within I2C Driver code its observed there are some piece of code specific to version #if (MUX_CTRL_CY_SCBIP_V0) so do i need to look any Psoc creator specific CYPD-3125 SDK to overcome the issue.
Thank you,
uint8_t I2CDeviceReadReg(uint8_t reg)
{
uint8_t writebuf[1]={0x0};
uint8_t readbuf[1]={0};
writebuf[0]=reg;
.......
MUX_CTRL_I2CMasterWriteBuf(ADDR,(uint8_t*)writebuf,1,MUX_CTRL_I2C_MODE_NO_STOP);
while((MUX_CTRL_I2CMasterStatus() & MUX_CTRL_I2C_MSTAT_WR_CMPLT)==0){};
MUX_CTRL_I2CMasterReadBuf(ADDR,(uint8_t*)readbuf,1,MUX_CTRL_I2C_MODE_REPEAT_START);
while((MUX_CTRL_I2CMasterStatus() & MUX_CTRL_I2C_MSTAT_RD_CMPLT)==0){};
................
return 0;
}
void I2CDeviceWriteReg(uint8_t reg,uint8_t value)
{
uint8_t writebuf[2]={0};
writebuf[0]=reg;
writebuf[1]=value;
MUX_CTRL_I2CMasterWriteBuf(ADDR,writebuf,2,MUX_CTRL_I2C_MODE_COMPLETE_XFER);
while((MUX_CTRL_I2CMasterStatus() & MUX_CTRL_I2C_MSTAT_WR_CMPLT)==0){};
return;
}
Show LessHello,
I am working with CY4541 CCG4 EVK and I would like to know if I can upgrade it to PD3.0 feature and mainly use the FW Update over CC lines.
Thanks for your support
Yohann
Show LessHello, I have set up the config tool to have BC 1.2 charging and Aple 2.4A support.
When I test the device, the current is limited to less than 1.5A.
The circuit can handle 30W and the system is set up to report 5V/3A. 9V/3A, 15V/1.95A.
We can see Type-C USB devices pulling 3A, so why does the Apple product get limited to less than 1.5A?
Show LessWorking with the CYPD3125 and SDK Version 3.0.2 (build 905), just implemented a I2C slave which will be used with an external controller. Can somebody explain where the active PD voltage can be found with the API. Tried dpm_status_t and app_status_t structs but seem to find the correct info?
Any help would be appreciated
Show Less