Hello,
we have designed a board using TUSB422 for usb-c power delivery and following your schematic.
We are using a microcontroller to run your reference firmware code, but unfortunately we are not able to go through the whole sequence in order to get usb-c interface correctly detected by the host (PC).
The main phases of your Finite State Machine are the following ones on startup:
alert register 0, value 0x03
current_state, pe_snk_startup
current_state, pe_snk_discovery
current_state, PE_SNK_WAIT_FOR_CAPS
alert register 0, value 0x82
current_state, PE_SNK_HARD_RESET
After that we will never receive any interrupt from host and the main loop will run forever waiting for any event (but no other event arrives).
It looks like there is an issue related with the high current, however when measured the current is below 100mA.
We only provide power from the usb-c cable.
I can write down a block diagram of our configuration, in order to make thing more clear:
PC -> usb-c cable -> CUSTOM_BOARD with TUSB422
CUSTOM_BOARD has a microcontroller where your reference firmware code runs and the TUSB422 chip, no external power on it
This configuration should be enough for the usb-c PD protocol, but since it times out waiting for capabilities, and then there is a hard reset, our board looses power and resets.
Can you give me few advise on how to solve this issue?
Is this behavior expected?
We have tried with different ufp configurations, either the one in the reference software and the attached one, none of them works and they system timeouts after waiting for capabilities.