Hi! Sorry, ich weiß nicht, wonach ich noch suchen soll. Mag an mir liegen, aber ich finde nichts. Also ich würde für ein Device mit integriertem Akku gerne einen USB-C Anschluss vorsehen, über den ich sowohl den Akku laden, als auch mit dem µC Board sprechen kann, zum programmieren oder für eine serielle Schnittstelle. Gibt es da Lösungen auf Breakout-Board, die beides ermöglichen? Wenn ich google, dann finde ich nur Stromversorgung des µC über USB oder "Programm laden" oder was auch immer. Danke! - Michael
Wo liegt denn das Problem? Wenn dein USB-Gerät zur Kommunikation oder Firmware-Upload verbunden ist, stellt der Host auch Strom bereit, mit dem du z.B. deinen Akku laden könntest. d.H., das was du dir wünscht und nicht finden kannst, ist eine elementare Grundfunktion die gefühlt jedes µC/USB-"Breakout-Board" mitbringt. Es wäre sehr aufwändig, das wegzubekommen. Vermutlich findest du deshalb nichts im Internet.
Michael Z. schrieb: > einen USB-C > Anschluss vorsehen, über den ich sowohl den Akku laden, als auch mit dem > µC Board sprechen kann Dann nimmst Du am besten ein moderneres µC-Board, das den USB-C Anschluss und auch einen Ladecontroller für den Akku schon On-Board hat. Mögliche Kandidaten wären z.B. einige der Seeed XIAO-Boards, z.B. der hier: https://www.seeedstudio.com/Seeed-XIAO-RA4M1-p-5943.html
Εrnst B. schrieb: > Wo liegt denn das Problem? > Danke für die Rückmeldung! Das „Problem“, wenn man es so nennen will, liegt weniger an der grundsätzlichen Funktion, sondern eher an der praktischen Umsetzung: Viele der gängigen USB-zu-Seriell-Chips auf Breakout-Boards melden gegenüber dem Host keine höhere Stromaufnahme an (z. B. für USB-C >500 mA). Dadurch wird das Board zwar versorgt, aber ein angeschlossener Akku lässt sich nur sehr langsam laden, weil einfach nicht genug Strom zur Verfügung steht — selbst wenn die Stromquelle eigentlich mehr liefern könnte. Mir geht es darum, beides sauber zu kombinieren: schnelle Ladefunktion und Datenverbindung über einen gemeinsamen USB-C-Port, idealerweise ohne gleich eine eigene USB-PD-Lösung oder Lade-IC-Schaltung aufbauen zu müssen.
Chris V. schrieb: > Michael Z. schrieb: >> einen USB-C >> Anschluss vorsehen, über den ich sowohl den Akku laden, als auch mit dem >> µC Board sprechen kann > > Dann nimmst Du am besten ein moderneres µC-Board, das den USB-C > Anschluss und auch einen Ladecontroller für den Akku schon On-Board hat. > Mögliche Kandidaten wären z.B. einige der Seeed XIAO-Boards, z.B. der > hier: > > https://www.seeedstudio.com/Seeed-XIAO-RA4M1-p-5943.html Danke! Den schaue ich mir an! Aber es gibt ja auch noch andere Gründe sich für das eine oder andere Board zu entscheiden. Da wäre eine allgemeinere Lösung natürlich ganz nett.
Michael Z. schrieb: > Mir geht es darum, beides sauber zu kombinieren: schnelle Ladefunktion > und Datenverbindung über einen gemeinsamen USB-C-Port, idealerweise ohne > gleich eine eigene USB-PD-Lösung oder Lade-IC-Schaltung aufbauen zu > müssen. Naja, einen Laderegler wird Du je nach Akku ohnehin brauchen, und wenn Du mehr Strom oder höhere Spannungen haben willst, wirst Du auch um PD nicht drumrum kommen. Aber da gibts Lösungen: https://ftdichip.com/products/ft232hp/ Der kann nicht nur einen UART bereitstellen, sondern auch über die CC-Leitungen mehr Leistung aushandeln. fchk
Chris V. schrieb: > Michael Z. schrieb: >> einen USB-C >> Anschluss vorsehen, über den ich sowohl den Akku laden, als auch mit dem >> µC Board sprechen kann > > Dann nimmst Du am besten ein moderneres µC-Board, das den USB-C > Anschluss und auch einen Ladecontroller für den Akku schon On-Board hat. > Mögliche Kandidaten wären z.B. einige der Seeed XIAO-Boards, z.B. der > hier: > > https://www.seeedstudio.com/Seeed-XIAO-RA4M1-p-5943.html Das ist aber ein schlechtes Beispiel. Hast Du Dir den Schaltplan angesehen? Die CC-Pins sind nur mit den üblichen 5.1k gegen Gnd beschaltet. Mehr nicht. Das Board ist schon von der Hardware her nicht in der Lage, mehr Strom oder höhere Spannungen auszuhandeln, und mehr wie 500mA kann man im USB-Deskriptor bei USB 2.0 eben nicht angeben. Es gibt STM32-Bausteine, die die CC-Pins direkt ansteuern können: https://www.st.com/content/st_com/en/ecosystems/stm32-usb-c.html fchk
Frank K. schrieb: > Naja, einen Laderegler wird Du je nach Akku ohnehin brauchen, und wenn > Du mehr Strom oder höhere Spannungen haben willst, wirst Du auch um PD > nicht drumrum kommen. Aber da gibts Lösungen: > > https://ftdichip.com/products/ft232hp/ Perfekt! Ja, den Laderegler brauche ich natürlich. Aber mit zwei Anschlüssen, einen zum Laden und einen zum Flashen, find ich unschön. Schaue ich mir an!
Frank K. schrieb: > Chris V. schrieb: >> Michael Z. schrieb: >>> einen USB-C >>> Anschluss vorsehen, über den ich sowohl den Akku laden, als auch mit dem >>> µC Board sprechen kann >> >> Dann nimmst Du (...) z.B. der hier: >> https://www.seeedstudio.com/Seeed-XIAO-RA4M1-p-5943.html > > Das ist aber ein schlechtes Beispiel. Hast Du Dir den Schaltplan > angesehen? Die CC-Pins sind nur mit den üblichen 5.1k gegen Gnd > beschaltet. Mehr nicht. Das Board ist schon von der Hardware her nicht > in der Lage, mehr Strom oder höhere Spannungen auszuhandeln, und mehr > wie 500mA kann man im USB-Deskriptor bei USB 2.0 eben nicht angeben. Ja. Zum Zeitpunkt meines Posts hatte Michael noch nicht mit der Information herausgerückt, dass er für sein Gerät offenbar sehr viel Leistung braucht und daher USB-PD erforderlich ist. USB-C kann man sich ja auch noch aus einigen anderen Gründen wünschen.
Ich brauche jetzt auch gar kein PD im Moment, aber das wäre ja ein Anwendungsfall. Mehr als 500mA bei 5V würde ich aber schon gerne verwenden können, wenn die Quelle das bereitstellen kann.
Michael Z. schrieb: > Ich brauche jetzt auch gar kein PD im Moment, aber das wäre ja ein > Anwendungsfall. Mehr als 500mA bei 5V würde ich aber schon gerne > verwenden können, wenn die Quelle das bereitstellen kann. Früher(tm) wurde der Strombedarf des Geräts mittels des Device Descriptors angemeldet, und zwar in 2 mA-Schritten bis maximal 500 mA. Das war ein ganz normaler Bestandteil des USB-Datenprotokolls. Neuerdings, d.h. seit dem Steckertyp USB C, laufen das Aushandeln der Stromversorgung und der Datenverkehr jedoch völlig separat. Im einfachsten Fall sieht man einfach die 5,1 kOhm-Widerständen an den beiden CC-Pins vor, beim Wunsch nach mehr Spannung oder noch mehr Strom hängt man eben einen PD-Controller an die CC-Leitungen. Dieser Controller kann, aber muss nicht separat vom normalen USB-Controller laufen. Hierfür sehr zu empfehlen ist z.B. ein STM32G0, für den es von ST auch die entsprechenden PD-Bibliotheken gibt. (Tipp: nicht die veraltete und verkorkste Version verwenden, die STM32CubeMX generiert, sondern die jeweils neueste direkt vom Github-Repository verwenden!) Ich habe erst kürzlich ein Gerät entwickelt, bei dem zuerst ein G0 das USB PD aushandelt und nach erfolgreichem Aushandeln von mindestens 12V/3A die Spannungsregler für die anderen Schaltungsteile aktiviert, so auch den STM32H7 für die Hauptfunktionalität, der an den USB-Dateileitungen hängt. Früher(tm) hatte man ja immer das Problem, dass der "dicke" Prozessor mit den maximal 5 V/100 mA auskommen musste, die während der USB-Enumeration zur Verfügung standen. Das ist seit PD-Zeiten somit viel besser gelöst. Viele Geräte halten sich aber auch nicht an die 100 mA-Grenze, sondern saugen von Anfang an schon deutlich mehr, in der Hoffnung, die z.B. 500 mA auch wirklich zugeteilt zu bekommen.
Möglicherweise lassen sich zwei Fliegen mit einer Klatsche erschlagen, wenn man als µC den CH32X035 einsetzt. Der enthält einen USB-Device-Controller und weiß mit USB PD umzugehen. Softwareunterstützung für den gibt es mit ch32fun von cnlohr. https://github.com/cnlohr/ch32fun Zwei (allerdings nur auf USB PD bezogene) Beispiele für die Anwendung gibt es vom wagiminator: https://github.com/wagiminator/CH32X035-USB-PD-Tester https://github.com/wagiminator/CH32X035-USB-PD-Adapter Kaufen kann man den Chip von WCH selbst, die betreiben bei aliexpress einen eigenen "Store" (der allerdings immer zum Wochenende hin ausverkauft ist). Von "weact studio" gibt es eine fertige Platine damit https://github.com/WeActStudio/WeActStudio.CH32X035CoreBoard
USB-PD-Controller: FUSB302 , FUSB303, FUSB307.. Lässt sich mit βC relaiv einfach konfigurieren und die entsprechende Ladespannung(5V,9V,12V,15V,20V) und Stromstärke anfordern.(bis 3A) Auch eine Umschaltung der Stromrichtung ist möglich.
:
Bearbeitet durch User
Super! Danke, das sind erstmal ausreichend Infos! Auf einen spezifischen µC zu schwenken, "nur" um die Stromversorgung auszuhandeln, mag in Einzelfällen ok sein, aber wie ich schon schrieb hängen die Entscheidungen an anderen Eigenschaften. Die CC Leitungen durch eine separaten Controller zu bedienen, das ist genau, was mir nicht klar war. Danke - Michael
Michael Z. schrieb: > Super! Danke, das sind erstmal ausreichend Infos! Auf einen spezifischen > µC zu schwenken, "nur" um die Stromversorgung auszuhandeln, mag in > Einzelfällen ok sein, aber wie ich schon schrieb hängen die > Entscheidungen an anderen Eigenschaften. Die CC Leitungen durch eine > separaten Controller zu bedienen, das ist genau, was mir nicht klar war. Das ist heutzutage kein Einzelfall. Viele Geräte enthalten heutzutage eigenen Power-Management-Controller, die nur für das zeitlich korrekte Aktivieren der Versorgungsspannungen zuständig sind. Und dementsprechend ist es SEHR ratsam, auch das USB PD darüber laufen zu lassen. Und der Hauptprozessor startet erst dann, wenn der PMC festgestellt hat, dass der Ladezustand des Akkus ausreicht, diese oder jene externe Spanungsversorgung hinreichend stabil anliegt und/oder der nötige Saft per USB PD ausgehandelt wurde und tatsächlich als Vbus auch anliegt. Und den separaten Resetgenerator spart man sich ggf. auch. Neben dem Hochfahren geht es ja auch noch ums kontrollierte Ausschalten und ggf. um die Akkuüberwachung und -ladung in ausgeschaltetem Zustand. Wenn man versucht, das alles auf dem Hauptprozessor zu erledigen, muss man schlechte Kompromisse eingehen oder einen Bauteilemehraufwand eingehen, der deutlich über dem für einen winzigen Zusatzcontroller liegt. Mittlerweile gibt es ja auch schon einige dedizierte Spannungswandler, die solch einen programmierbaren Controllerkern integriert haben.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.