Hallo liebe Experten, ich möchte Logdaten, die eine Teensy-Applikation generiert, mit einem ESP32 weiterverarbeiten. Die Daten werden über die USB-Schnittstelle des Teensy ausgegeben. Was ist die einfachste Möglichkeit, da eine Kommunikation hinzukriegen? USB-Hub und auch den ESP über die USB-Schnittstelle anschließen? USB-UART-Adapter und eine serielle Schnittstelle des ESP verwenden? Ganz praktisches Problem bei letzterer Lösung: die Adapter haben in aller Regel USB Typ A-Stecker, genau wie das micro-USB Kabel, das im Teensy steckt. Brauche ich dann einen Hub? Der Adapter muss ja auch versorgt werden 🤔 Freu mich über jede Hilfe, Keith
Keith S. schrieb: > Was ist die einfachste Möglichkeit, da eine Kommunikation hinzukriegen? > USB-Hub und auch den ESP über die USB-Schnittstelle anschließen? > USB-UART-Adapter und eine serielle Schnittstelle des ESP verwenden? Ganz > praktisches Problem bei letzterer Lösung: die Adapter haben in aller > Regel USB Typ A-Stecker, genau wie das micro-USB Kabel, das im Teensy > steckt. Brauche ich dann einen Hub? Der Adapter muss ja auch versorgt > werden 🤔 Du brauchst einen USB-(CDC-)Host (bzw. OTG-Funktionalität) in einem der Controller. Also einen weiteren Controller, der diese Funktion zur Verfügung stellt, und dann die Daten an den ESP weiterleitet. Sowas zum Beispiel: https://www.hobbytronics.co.uk/usb-host-board-v24?search=USBHOST
Der Weg über USB ist sehr viel komplizierter, als UART Schnittstellen der beiden Mikrocontroller miteinander zu verbinden.
Danke für die Info! Meinst Du sowas könnte funktionieren, wenn ich direkt mit dem micro-USB Stecker in den ESP gehe? Wäre eine schöne Lösung, weil keine UART-Pins kontaktiert werden müssen. Nur: wer versorgt dann den Adapter? Rankie USB-OTG Adapter für Smartphones, Handy und Tablet, Micro USB Anschluss, 3 Stück, Schwarz https://smile.amazon.de/dp/B00YOX4JU6/ref=cm_sw_r_apan_glt_i_CHV5XFC80B9BSTR060N7
Stefan ⛄ F. schrieb: > Der Weg über USB ist sehr viel komplizierter, als UART Schnittstellen > der beiden Mikrocontroller miteinander zu verbinden. Ja, vermutlich hast Du Recht. Nur ist der Teensy für mich in diesem Projekt ne Blackbox, an die ich eigentlich nicht ran möchte.
Keith S. schrieb: > Meinst Du sowas könnte funktionieren, wenn ich > direkt mit dem micro-USB Stecker in den ESP gehe? Nein, das wird so nicht gehen. Einer der beiden Mikrocontroller braucht ein USB-Host interface. Das haben aber beide nicht. Und selbst wenn es so wäre, bräuchtest du dann auch noch auf dem Host einen Treiber der zur USB-Seriell Emulation des anderen Boardes passt.
Was für ein Teensy? Der 4.1 hat ein USB Host Interface auf einer separaten Stiftleiste. Genau da musst Du ran. Dies ist die passende Library für den Host-Port: https://github.com/PaulStoffregen/USBHost_t36 fchk
Frank K. schrieb: > Was für ein Teensy? Der 4.1 hat ein USB Host Interface auf einer > separaten Stiftleiste. Genau da musst Du ran. > > Dies ist die passende Library für den Host-Port: > > https://github.com/PaulStoffregen/USBHost_t36 > > fchk Ok, aber ich müsste dann die Applikation auf dem Teensy verändern, oder?
Keith S. schrieb: > Ok, aber ich müsste dann die Applikation auf dem Teensy verändern, oder? Ja. Vor allem brauchst du auf beiden Seiten neben den USB Treibern auch US-Seriell Emulationen die paarweise zusammen passen. Am PC brauchst du ja auch zusätzlich zum USB Treiber noch einen für die serielle Port Emulation. An deiner Stelle würde ich dieses Fass gar nicht auf machen, sondern anstelle des ESP32 einen Raspberry Pi (oder ähnlich) verwenden.
Stefan ⛄ F. schrieb: > Keith S. schrieb: >> Ok, aber ich müsste dann die Applikation auf dem Teensy verändern, oder? > > Ja. > > Vor allem brauchst du auf beiden Seiten neben den USB Treibern auch > US-Seriell Emulationen die paarweise zusammen passen. Am PC brauchst du > ja auch zusätzlich zum USB Treiber noch einen für die serielle Port > Emulation. > > An deiner Stelle würde ich dieses Fass gar nicht auf machen, sondern > anstelle des ESP32 einen Raspberry Pi (oder ähnlich) verwenden. Das würde ich auch gerne vermeiden... Komplizierter als gedacht, schön, dass einem das hier zumindest so schnell klar gemacht wird 😉 Andere Idee: die Daten, die der Teensy über die USB-Schnittstelle ausgibt, kann man die vielleicht "vorher" über ein Uart-Interface abgreifen? Ist nicht die USB-Schnittstelle über ein onboard UART/USB-Interface realisiert?
Keith S. schrieb: > die Daten, die der Teensy über die USB-Schnittstelle > ausgibt, kann man die vielleicht "vorher" über ein Uart-Interface > abgreifen? Wo denn? Willst den Chip aufsägen um den Inhalt eines Pufferbereiches im RAM mit Nadeln ab zu greifen? Ohne Softwareänderung wird das nichts. > Ist nicht die USB-Schnittstelle über ein onboard > UART/USB-Interface realisiert? Nein, nicht bei Teensy Boards. Informiere dich doch erstmal vorher über grundsätzlichen Eigenschaften der Produkte, bevor du Änderungen planst.
Wenn der Teensy nicht verändert werden soll bliebe die Möglichkeit über ein USB Host IC: https://www.hobbytronics.co.uk/usb-host-serial Das Host IC emuliert sozusagen den PC und gibt auf seiner UART den seriellen Datenstrom aus. Diesen kann man dann an den ESP32 weitergeben. Das USB-Host IC ist für dich auch eine Black-Box, mit der du nichts zu tun hast.
> Informiere dich doch erstmal vorher über grundsätzlichen Eigenschaften > der Produkte, bevor du Änderungen planst. Mache ich doch gerade 😉 Nix für ungut, hast ja Recht, ich danke Euch für die schnelle Hilfe! Ich gebe dem von "STK500-Besitzer" empfohlenen Adapter mal ein Chance, denke ich.
Hobbytronics ist closed-source und Du musst den Controller von denen kaufen, wenn Du Open-Source möchtest geht es auch über den CH559. Der hier hatte offensichtlich ein ähnliches Problem: https://www.hackster.io/news/add-usb-support-to-any-project-using-bitluni-s-cheap-usb-host-microcontroller-c23ad2ae9a0f
Harald schrieb: > https://www.hobbytronics.co.uk/usb-host-serial Offenbar sind da die von mir genannten notwendigen Treiber für einigeUSB-UART Wandler bereits enthalten. Allerdings hat der Teensy keinen davon. Bleibt als nur das CDC Protokoll. Nun die Gretchenfrage: Nutzt dein Teensy das CDC Protokoll?
Ah Entschuldgung, hatte den Beitrag von STK500 nicht gesehen, von mir doppelt verlinkt.
Keith S. schrieb: > Was ist die einfachste Möglichkeit, da eine Kommunikation hinzukriegen? Indem du USB USB sein lässt und die Daten über eine andere Schnittstelle des Teensies ausgibst. Um welchen Teensy handelt es sich und was ist das für eine "unanfassbare" Teensy-Applikation?
Stefan ⛄ F. schrieb: > Bleibt als nur das CDC Protokoll. Nun die Gretchenfrage: Nutzt dein > Teensy das CDC Protokoll? An einem Barcode-Reader funktionierte es z.B. leider nicht, ist immer etwas Glückssache, ob die CDC-Implementation funktioniert. In meinem konkreten Fall konnte ich den Umweg über HID-Keyboard nehmen, den auch jeder Barcode-Reader beherrscht.
Stefan ⛄ F. schrieb: > Bleibt als nur das CDC Protokoll. Nun die Gretchenfrage: Nutzt dein > Teensy das CDC Protokoll? Das sollte sich doch herausfinden lassen, wenn man es an einem PC anschließt. Das Adapter verwenden wir in der Firma um Netzteile anzusteuern, für die es zwar auch eine (optionale) RS232-Schnittstelle gibt, die im Gegensatz zu dem Hobbytronics-Adapter unverschämt teuer ist. Wenn ich wüsste, um welche Teensy-Applikation es sich handelt (Hardware + Software), könnte ich den Aufbau auch mal testen (wobei ich dazu erst mal ein Teensy bräuchte...).
Harald schrieb: > An einem Barcode-Reader funktionierte es z.B. leider nicht, ist immer > etwas Glückssache, ob die CDC-Implementation funktioniert. In meinem > konkreten Fall konnte ich den Umweg über HID-Keyboard nehmen, den auch > jeder Barcode-Reader beherrscht. Barcodereader treten ja auch eher als HID auf. Die seriellen sind doch so gut wie ausgestorben. Harald schrieb: > Hobbytronics ist closed-source und Du musst den Controller von denen > kaufen Der Schaltplan liegt offen: https://www.hobbytronics.co.uk/datasheets/ht/usb%20host%20v2_3.pdf Es ist ein PIC24FJ64GB002 mit Hühnerfutter. Unser Steuercontroller hat zwar schon zwei USB-OTG-Kanäle, aber wir brauchten mehr. Deswegen der externe UART-USB-CDC-Konverter. Man könnte natürlich auch den Weg über einen MAX3421E (am ESP) gehen: https://www.arduino.cc/reference/en/libraries/usb-host-shield-library-2.0/ Ob das mit dem ESP funktioniert, weiß ich nicht. Ich habe es nur mit einem Arduino UNO (oder sowas) und einem Gamecontroller erfolgreich getestet.
STK500-Besitzer schrieb: > Barcodereader treten ja auch eher als HID auf. > Die seriellen sind doch so gut wie ausgestorben. Das kann man so nicht sagen, es gibt verschiedene Anwendungsszenarien in der Industrie. Und weil es die gibt, kann man jeden handelsüblichen professionellen Reader mittels Barcodes aus dem Handbuch sehr einfach auf den Bedarf parametrieren. Baudraten oder Codetables bei Keyboard etc.
Harald schrieb: > Das kann man so nicht sagen, es gibt verschiedene Anwendungsszenarien in > der Industrie. Und weil es die gibt, kann man jeden handelsüblichen > professionellen Reader mittels Barcodes aus dem Handbuch sehr einfach > auf den Bedarf parametrieren. Baudraten oder Codetables bei Keyboard > etc. Da gebe ich dir Recht. Unsere waren standardmäßig HIDs. Dass man USB-Geräte auch "umprogrammieren" kann, sollte selbstverständlich sein. Im Falle des Teensy sollte sich die USB-KLasse per Windows Geräte-Manager oder per lsusb etc. feststellen lassen.
STK500-Besitzer schrieb: > Im Falle des Teensy sollte sich die USB-KLasse per Windows > Geräte-Manager oder per lsusb etc. feststellen lassen. Wenn er partout nicht ran kann oder will muss er halt auf die CDC Implementation hoffen (Hobbytronics) oder den etwas steinigeren Weg über den CH559 gehen. Der MAX3421 mag auch funktionieren, dazu kann ich aber nichts sagen.
> Im Falle des Teensy sollte sich die USB-KLasse per Windows > Geräte-Manager oder per lsusb etc. feststellen lassen. Lese ich gleich mal aus, bin gerade unterwegs.
Könnte CDC sein, ob es kompatibel ist, muss man trotzdem ausprobieren https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-driver-installation-based-on-compatible-ids
Bei HobbyTronics bin ich leider nicht erfolgreich gewesen, momentan nicht verfügbar das Board. Habe mir einen Host Controller mit MAX3421E bestellt, mal sehen, ob das klappt. Nochmal: danke! I`ll keep you posted...
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.