Hallo, vor einiger Zeit bin ich über die Möglichkeit gestolpert praktisch ohne weitere Hardware mit einem AVR ein USB Client-Device zu bauen (à la Obdev.at, IgorPlug oder AppNote309). Mein Problem ist folgendes: Ich würde soetwas gerne nachbauen, traue mir allerdings nicht zu das ganze selber zu entwickeln (also USB Spezifikation, etc.). Das Konzept von Igor bzw. das abgeleitete AppNote von Atmel sind leider Assemblercode, den ich kaum in C Projekte integrieren kann (oder?). Obdevs AVRUSB sieht geradezu prädestiniert aus. Allerdings würde mich die Lizenz verpflichten, jedes noch so kleine Projekt zu veröffentlichen, mindestens 12 Monate vorzuhalten und Obdev ein unbegrenztes Nutzungsrecht einräumen, was ich ziemlich lächerlich finde. Gibt es ein ähnliches Projekt mit einer "normalen" Bastlerlizenz? Mit besten Grüßen, Bartl P.S.: Klar, interessiert wohl keinen ob ich die Lizenz verletze, aber ehrlich währt am längsten.
hallo Bartholomäus, so spontan kenne ich auch kein lizenzfreies C-Beispiel, aber: Ich persönlich finde Assembler sehr einfach zu programieren. Natürlich würde ich nicht bei Null anfangen sondern ein funktionierenden Code abändern. Um das Studium der USB-Spezifikation kommst Du auf keinen Fall drumrum aber man braucht auch nicht alles zu wissen. Wahrscheinlich haste mal in ein Buch gesehen und dann ist Dir schwindelig geworden, jedenfalls ging mir das anfangs so... Meine Empfehlung - Jan Axelson, USB für Entwickler (=deutsch!) oder USB complete (=englisch) - Versuche unbedingt Dein Client als HID zu implementieren, ich kann mir kaum ein Gerät vorstellen mit dem das nicht geht. Das halbiert benötigte das USB-Wissen. Martin -
Hi, suche mal mit google nach USB Joystick und avr. da gab es ein Projekt als HID Device soweit ich weiss. (cz-seite glaube ich) Oder unter http://www.mictronics.de da war auch alles verlinkt... Gruß Sven
Kleine Ergänzung: Da das Timing sehr kritisch ist, wurde zu den oben genannten Lösungen zu assembler gegriffen. Da in diesen Fällen ja das USB-Protokoll in Software gelöst werden muss !!!
@Sven: Den USB Joystick kenn ich (falls du den meinst: http://www.mindaugas.com/projects/MJoy/ ), ist aber auch in ASM. Ohne Assembler gehts wohl auch nicht (hat Obdev ja auch verwendet) und ist auch kein Problem, solange es inline asm in C ist. Nur das ganze Projekte in Assembler zu machen wäre nicht so mein Ding. @Martin: Danke für die Buchtipps, werde ich mir zu Gemüte führen. Lizenzfrei müsste der Code ja garnicht sein, nur den Zwang das Projekt zu veröffentlichen (vor allem mit einem Jahr Vorhaltezeit) und die Tatsache, dass ich was ich bau faktisch an Obdev abtrete finde ich nicht in Ordnung. GPL wäre garkein Problem. Bleibt mir wohl nur, den AppNote Code auf C mit inline assembler umzubiegen. Ich werd's mal versuchen :) Wegen dem HID-Gerät: Wenn man auf der PC-Seite einen generischen USB-Treiber hat (z.B. libusb-win32) dürfte es doch keinen großen Unterschied machen, was für ein Gerät der AVR ist, oder irre ich mich da? Ich wollte das ganze unter anderem aber eh für einen Gamecontroller verwenden, also ist HID eh erste Wahl. Beste Grüße, Bartl
Hallo Bartholomäus, natürlich spart Dir ein vorhandener Treiber das Selberschreiben was aus Sicht eines ökonomisch denkenden Menschen eh Wahnsinn ist. Ob Du die HID-Schnittstelle nutzt oder nicht hängt mehr davon ab was genau Du vorhast: Wird das Gerät nur insg. 1 bis 3 mal installiert und noch dazu von Dir selbst dann kannsu auch irgendwelche schrägen Treiber benutzen. Sobald aber "Fremde" Dein Gerät nutzen dann kannsu sicher sein, dass die die Treiberinstallation vermasseln. Echtes Plug&Play funzt m.E. nur mit HID. Außerdem ist das PC-seitig easy zu programmieren: Mit DeviceIOControl für die Control-Requests und ReadFile für die Daten über die "schnelle" Pipe. Dann gibt's noch ein paar Enumerationsroutinen, das war's. Außerdem: Das Entwickeln ist einfacher weil es jede Menge Tools gibt die HIDs testen (usbview, HidTest...) Martin
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.