Can you check the voltage level on VBUS_P_CTRL to see if the MOSFET has been turned on?
The voltage is practically 0V on both VBUS_P_CTRL pins.
So your MOSFET hasn't been turned on at all. Then you can use a sniffer to catch the CC communication log to see why PD contract couldn't been established.
I have but there is absolutely nothing logged at all.
Could you capture your CC waveform when nothing is attached?
Hi Eddie and Jakob, joining in here to add a bit more input to Jakobs question.
When running the CCG3 in dual power role, the CC-line toggles nicely up and down as it should. When a device is connected, the connecting cc-line get's pulled down to around 0.7V and it looks like that doesn't trigger the CCG3 to recognize that there is a device connected a turn on the FETs and provide 5V.
Not sure, but it look like maybe it gets not pulled down enough for CCG3 to recognize that a device has been connected. It is very strange that it doesn't get pull-downed all the way. Have tested with multiple USB-C devices, same result.
We even tried to ground CC manually to 0 but it still didn't trigger so we guess the problem is somewhere else.
1 of 1 people found this helpful
May I know whether you have been changed default firmware as per your hardware or not? Since the VBUS_MON is not follow Cypress CY4531.
Two ways to fix this issue (You can choose one of them as you want to):
1. Cut off VBUS from +5V and wire to VBUS as below.
2. Firmware change:
a. At file config.h:
/* Enable Internal UVP Comparator to be used as VBUS divider. */
#define VBUS_MON_INTERNAL (0u) >> Lisa: change 1>0;
b. Enable VBUS_MON_P1 on TopDesign.cysch
c. pin assignment to pin#23 of CCG3 as per your hardware schematic.
d. Rebuild the firmware project and test it again.
Thanks Lisa, it seems the problem was related to the difference you spotted.
I realized that the notebook firmware example was not suited for our application so I went ahead and took the power adapter firmware for CYPD3135 and rebuilt for CYPD3125. Now it seems that I get some power from the controller but only for a short while (about 700 ms). Then there is a rapid drop to around about 2V and some slow discharge to less than 1V. After about 400 ms the 5V comes back on but is interrupted after 700 ms again, and so on.
So I guess the CYPD3125 detects some kind of fault and shuts off VBUS power?
I tried analyzing and got this log:
It seems you have send multiple PDOs to the sink and the sink choose the PDO it wants. However, your board can only provide 5V. So please delete the PDOs that your board not capable of in the configuration.
Now it seems to work fine! Thank you very much for your help!
Actually, I thought I had everything solved now. I managed to deliver power to a device connected to my PCB.
Then I went ahead and created 2 additional firmware HEX files with slightly different max current. Then I started programming all my PCBs (I have 4) but none of them worked. Now I have been trying for 4 hours to repeat the same steps I did but still cannot get power again.
It is very odd as I am pretty sure I saved a copy of the working firmware HEX. Now even that one does not work!
Trying the notebook example firmware does work however (toggling CC pins and blinking LED). But I just cannot get it back to work with power adapter firmware.
There seems to be multiple issues.
I switched USB cable and then it works but only for 1 out of 3 PCBs!
It seems I had multiple issues:
1) the USB cable I used has died somehow (I tested it on a laptop + smartphone)
2) the other PCB's had a damaged ESD protection device that short-circuited the CC2 signal
3) the other PCB's had an incorrect 5V supply which produced around 7.5V (which was probably the cause of no. 2)
So now I think I have everything in order.
Thank you everyone for excellent support!