2021-06-29 08:46 PM
Hi,
I am using an STM32G071CBU6, and using the USB-PD stack as a sink only. I can successfully negotiate PD contracts from a source etc, this all work fine.
However, I have an issue when powering up using the Dead Battery lines. They seem to work OK in that when the uC is off, the CC lines cause the source to provide 5V on Vbus, which is great. However, if I am relying on this Vbus line to power the uC, there is an issue on startup when a Hard Reset is requested by the stack and so Vbus drops out - I am not sure why this occurs? I want the Dead Battery mode to regular Sink mode to be seamless, so that I don't lose Vbus (causing the uC to turn off, Dead Battery mode to kick back in, then the whole loop starts again indefinitely).
Please see my trace logs below:
... 900ms later ...
As you can see, when the uC is up and running, it detects there is a Type C cable plugged in, which is great. But, it seems to timeout waiting to receive capabilities, and then issue a hard reset to the source. Then there's a wait of around 900ms until Vbus reaches 0V before restarting the PE and negotiating everything fine after that point.
My question is, why does the PE have to issue the hard reset? In this particular case, I am running the uC from an external 3v3 supply, but in the real application it is dependent on Vbus and so will die when Vbus drops 0V.
Is there any way that this transition between Dead Battery mode and full PD (or simple Rd-based Sink) can be made "seamless"? What am I missing?
Thanks.
2021-06-29 08:49 PM
Sorry, images didn't attach for some reason, see them here.