Gast
#3394056
Hey, ich beschäftige mich derzeit mit der USB-Programmierung auf Basis eines STM32Fxx Controllers. Der µC soll als reines Device dienen und vorzugsweise mit dem isochronen Transfer Daten zum PC (Windows) schicken und von diesem Empfangen. Auf PC-Seite soll ein VCP eingerichtet werden. Da ich das Rad nicht neu erfinden möchte, habe ich nach einer relativ kurzen Recherche herausgefunden, dass ST zwei Bibiliotheken für ihre Prozessoren anbietet. Da ich mich mit einem 2xxer Proz. beschäftige "muss" ich demnach die USB OTB Host and Device Library 2.1.0 nutzen. Das Manual 1021 beschreibt diese auch einigermaßen. Ich habe mir das VCP Device Beispiel auf Doku- und Code-Seite angeschaut. Mir sind jedoch noch einige Punkte unklar und ich hoffe einfach mal das Ihr mir bei diesen Fragen weiter helfen könnt: Hier das User Manual: http://www.element14.com/community/docs/DOC-44847/ - Laut den Abb. 1, 3 und 7 besteht keine zwangsmäßige Verknüpfung der OTG-Treiber- und der USB-Device-Bibiliothek. Im Code finde ich jedoch an vielen Stellen Zugriffe von Seitens des Devices auf die OTG-Treiber. Ist die Verwendung der OTG-Treiber-Bibiliothek demnach "Pflicht"? Aus den Grafiken lese ich das eben nicht raus - Ich habe den "Datentransfer" noch nicht so ganz verstanden. Ich weiß, dass beim USB das Device erstmal kein "Initiatorrecht" hat. Soll heißen, es darf nur Daten nach Aufforderung des Hosts versenden oder entgegen nehmen. Ich hätte dennoch Read- und Write-Routinen erwartet um z. B. das entsprechende FIFO eines Endpunktes mit Daten zu befüllen oder von einem beschriebenen FIFO eines Endpunktes Daten zu entnehmen. Wie ist der Datentransfer Bibliothek zur Applikation und vice versa implementiert? Evtl. sogar über ISRs oder Callback Funktionen? - Habt ihr evtl. ein eingängieres Beispiel für den Datentransfer von einem µC zum VPC Port eines PCs? Ich danke Euch schon mal im vorraus! :-) Gruss Khean