Forum: Mikrocontroller und Digitale Elektronik USB PD Dead Battery mit STM32G431


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Klaus L. (keyel80)


Lesenswert?

Hallo in die Runde,

ich experimentiere gerade mit dem STM32G431, insbesondere dessen 
UCPD-Einheit für USB-C Power Delivery, dabei ganz konkret mit dem Dead 
Battery Feature.

Ich nutze das WeAct STM32G431 Core Board und habe die Lötbrücken SB 8+9 
entfernt und die SB 3,5,6,7 gesetzt. Damit sollte gemäß Schaltplan und 
diverser Quellen das Board "fit für USB PD mit Dead Battery Support" 
sein.

Als Applikation habe ich unter PlatformIO unter Verwendung des Arduino 
Cores erstmal nur eine regelmäßige Ausgabe über die serielle 
Schnittstelle realisiert (UART4, PC10).

Die Applikation läuft problemlos, wenn ich das Board direkt mit 3,3V aus 
dem JTAG-Adapter versorge. Die Applikation läuft auch problemlos, wenn 
ich über die USB-C-Buchse mit einem "dummen" Netzteil speise.

Falls ich aber ein USB-C-Netzteil mit Power Delivery-Fähigkeiten 
anschließe, wird das Board nur für Bruchteile einer Sekunde versorgt und 
die Spannung bricht dann wohl ein. Wieder Bruchteile einer Sekunde 
später kommt die Spannung wieder zurück, um dann erneut einzubrechen. 
Das geht ständig so weiter.

Weiß jemand Rat?

Vielen Dank und liebe Grüße

Klaus

von Klaus L. (keyel80)


Lesenswert?

Hallo in die Runde,

ich konnte das Problem selbst lösen: Das Arduino-Framework deaktiviert 
in der Datei libraries/SrcWrapper/src/stm32/hw_config.c in der Funktion 
hw_config_init() (Zeile 50) durch "HAL_PWREx_DisableUCPDDeadBattery();" 
die Pull-Downs für den DeadBattery-Support.

https://github.com/stm32duino/Arduino_Core_STM32/pull/1374/commits/1f5cb30fe186836c6e7ef6708257f1a563e6df83

Vermutlich vertritt der Maintainer der Bib, dass das Default-Verhalten 
der Pins für den üblichen Arduino-Programmierer irritierend wäre. Leider 
wurde keine Möglichkeit geschaffen, diese Zeile per 
Präprozessor-Anweisung wegzudefinieren. Es bleibt das händische 
Auskommentieren...und siehe da, alles läuft.

Viele Grüße,

Klaus

Beitrag #7779019 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.