Hallo, kennt jemand eine Bibliothek für STM32F4 die Host-CDC unterstützt? Die Bibliothek von Keil die ich normalerweise benutze kann zwar Host und auch Device-CDC aber eben kein Host-CDC (Habe damit bereits einen Massenspeicher und einen HID-Host zustande gebracht). Ziel ist es ein UMTS-Modul mit dem µC zu verbinden, welches sowohl USB-CDC als auch UART unterstützt. Im Moment ist es über UART verbunden, was natürlich die Geschwindigkeit des Moduls in keinster Weise ausnutzt. Zukünftig soll es also an den USB-Port des STM angeschlossen werden um die Geschwindigkeit zu erhöhen. Ich bin seit Montag am googlen aber jedesmal wenn ich etwas gefunden habe wo jemand davon berichtet dass er es geschafft hat, linkt er auf irgend eine Bibliothek deren Seite nicht mehr verfügbar ist. Außerdem habe ich mir mal die Enumerationsphase des Massenspeichers mit einem Saleae Logic16 angesehen, aber so ganz passen die Übertragenen Werte nicht zu meinem Verständniss des Protokolls. Ideal wäre natürlich eine kostenlose Bibliothek die Open Scource ist, damit man auch mal in den Code reinschauen kann, aber eine proprietäre/kostenpflichtige Bibliothek wäre auch in Ordnung, solange der Preis nicht ZU hoch ist und sie auch funktioniert und konfigurierbar ist. Gruß, Frank
Die USB CDC (Communication Device Class) ist äußerst umfangreich, und es wird sicherlich keinen Treiber geben, der sämtliche Betriebsarten unterstützt. Dies macht im Allgemeinen ja auch keinen Sinn, denn jemand, der einen USB-Ethernet-Schniepel verwenden will, benötigt keine UART/Modem-Emulation. Das, was Du wahrscheinlich meinst, ist das CDC ACM (Abstract Control Model), welches das standardkonforme Gegenstück zu den ganzen USB/EIA232-Wandlern darstellt (, die aus historischen Gründen meist nicht CDC ACM-kompatibel sind). Solche Treiber gibt es z.B. von Thesycon: http://www.thesycon.de/eng/embusbhost.shtml Wir haben auch schon erfolgreich mit der anstandslos funktionierenden Bibliothek USBIO für Windows gearbeitet, aber noch nicht mit den Embedded Hosts. Auf der diesjährigen Embedded World hatte ich mit Hr. Hildebrandt (Geschäftsführer von Thesycon) über Host-Treiber für STM32 philosophiert, und er hatte aus Performance-Gründen davon abgeraten, hierfür STM32 zu verwenden, da deren Host-Blöcke wohl recht "dumm" seien. Thesycon hat wohl entsprechende Treiber geschrieben, aber sie sind wohl nur auf Anfrage erhältlich.
Danke für die Info. Leider ist USB auf Entwicklungsseite völliges Neuland für mich. Ich wusste nicht, dass es bei CDC so viele Unterschiede gibt, aber das CDC-ACM scheint zu sein was ich suche. Ich werde mal versuchen in die Richtung etwas zu finden. Ein Kollege teilte mir heute mit, dass von Thesycon schon mal ein Angebot erstellt worden ist, jedoch lag der Preis in einem Bereich, der bei unseren Stückzahlen weit außerhalb des Bezahlbaren ist.
Also zu USB Host CDC-ACM kann ich auch nichts finden was mir weiter hilft. Kennt jemand irgend ein Beispielprojekt für STM32(F4) das IRGENDEINE Host-Funktionalität hat UND im Quelltext vorliegt? Vllt kann man das ja irgendwie so umbiegen, dass es CDC kann.
Mittlerweile gibt es ja eine Library von ST für CDC-Host. Diese ist teil des CubeF4 Downloades. Ich verssuche grade sie umzusetzen, leider finde ich weder eine Dokumentation noch irgendwelche Beispiele. Hat jemand schon einmal etwas in die Richtung gesehen?
Frank Freihube schrieb: > Also zu USB Host CDC-ACM kann ich auch nichts finden was mir weiter > hilft. > Kennt jemand irgend ein Beispielprojekt für STM32(F4) das IRGENDEINE > Host-Funktionalität hat UND im Quelltext vorliegt? Vllt kann man das ja > irgendwie so umbiegen, dass es CDC kann. Hast Du Dir libopencm3 und als Anwendung die Blackmagic Debug Probe angeschaut?
Uwe Bonnes schrieb: > Hast Du Dir libopencm3 und als Anwendung die Blackmagic Debug Probe > angeschaut? Habs mir mal angeschaut. Da ist zwar in beidem USB-CDC-ACM mit dabei, aber nur als Device Class. Ich benötige es als Host Class(ich will also mit einem virtuellen COM-Port kommunizieren und nicht selber einer sein). Das ist ja um einiges komplexer weil ich(bzw der µC) ja das ganze Bushandling übernehmen muss, auch wenn dann nur ein Gerät dran hängt. Das einzige was ich bis jetzt mit Host hin bekommen habe war ein HID-Host, aber das war eine closed source lib, die hilf mir also bei dem Problem auch nicht weiter.
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.