Servus, es geht um ein Projekt, dass ich für mein Studium noch fertig machen muss. Bei der Hardware handelt es sich um den XL_Star von Farnell. Es geht um Daten eines Beschleunigungssensors (via IIC), die auf einen Rechner übertragen werden sollen (über USB). Dazu gibt es auf dem Board einen USB-Anschluss, der mit den USB-Pins des Controllers verbunden ist. Soweit, bekomme ich die Daten des Sensors schon mal in den Controller und auch schön auf die LEDs angezeigt. Aber der USB macht mir irgendwie sehr zu schaffen (nie vorher als "Programmierer" damit zu tun gehabt), ich versuche bereits seit knapp einer Woche dahinter zu kommen, wie das funktioniert, bis jetzt ohne Erfolg. Das habe ich inzwischen verstanden: USB ist in Full-Speed auf dem Controller als Device verfügbar. Die Adresse wird vom Host in der Konfigurationsphase gesetzt (anfangs 0). Es gibt J- und K-States, die verschiedene Potenziale der beiden Datenleitungen beschreiben, das übernimmt der Controller bereits. Es gibt mehrere Endpunkte (dort 7), davon ist nur der 0te bidirektional. Der Controller besitzt Deskriptoren, die das Device, Endpunkte, Strings und Puffer beschreiben. Freescale setzt voraus, dass bei Verwendung von USB mit dem µC die Taktrate von 48 MHz, Bus-Teiler 2 und Takt-Quelle der PLL ist. Also die Takt-Frequenzen so zu drehen, wie Freescale es will ist kein Problem. Aber weiter komme ich im Thema USB schon gar nicht. Es gibt im USB-Teil eine "Buffer-Descriptor-Table" die natürlich zum beschreiben von der Puffer der 7 Endpunkte ist. Wie das aber genau funktioniert verstehe ich nicht. Wo kommen also die Daten vom Host rein und wo muss ich die Daten speichern, die ich senden will? Das Projekt soll in C gelöst werden, aber ich will das eher verstehen und probieren bevor ich von irgendwo oder irgendwem etwas kopiere. Es gibt in der Farnell-Community eine "Maus" die über die Lage des Sensors gesteuert wird, die bringt mich aber auch nicht weiter, da dort nur Deskriptoren definiert werden und ich bis jetzt kein einziges Zeichen gefunden habe, dass irgendwas mit der Kommunikation selbst zu tun hat. Grüße Michi
Hallo, kannst Dir ja mal bei Freescale den Madical USB Stack ansehen. da ist alles drin. Hier findest Du ganze auch als Prozessor Expert Komponente http://mcuoneclipse.wordpress.com/2012/05/04/usb-cdc-goes-medical/ Eckhard
Vielen Dank. Das sieht hilfreich aus (muss ich mir aber später noch zu Gemüte führen). Ich sag dann Bescheid (für alle die vielleicht in Zukunft vor dem gleichen Problem stehen). Grüße Michi
Michael W. schrieb: > Vielen Dank. Das sieht hilfreich aus (muss ich mir aber später noch zu > Gemüte führen). Hab ich jetzt mal im Detail angesehen: Es bringt mich nicht ernsthaft weiter. Wenn ich das richtig verstanden habe, ist es eine Art Code-Generator für Eclipse (CodeWarrior 10). Habe aber auch vergessen zu schreiben, dass ich leider nur den CodeWarrior 6.3 (mitgeliefert nutzen kann). Wenigstens weiß ich jetzt Bescheid, dass ich ein CDC-Device brauche, aber weiter komme ich grade auch nicht. Irgendwie scheinen viele Links in dem Blog nicht auf das gedachte Ziel zu führen. Mal sehen vielleicht kann ich selbst irgendetwas basteln oder hat jemand noch andere Tipps? Wieso kann das nicht so "einfach" wie beim IIC sein.... LG Michi
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.