Hallo habe mal eine Anfänger frage zu USB. Wenn ich unter XP ein USB gerät ansprechen möchte, verstehe ich es richtig das ein Herrsteller für sein Gerät einen Treiber zu verfügung stellt bzw. es in Windows Standarttreiber gibt die ich ansprechen kann. Allerdings müßte ich dann auch eine Dokumentation besitzen.
Das verstehst du richtig. Wenn du ein USB Gerät gekauft hast, müsste im Handbuch oder den Unterlagen oder nur auf der Packung stehen, wie es unter z.B. Windows XP zu installieren und zu betreiben ist. Da kann stehen "Zuerst x von der beiliegenden CD ausführen" oder "Funktioniert direkt mit Windows XP" Wenn du ein USB Gerät selbst per Programm ansprechen möchtest, sieht es etwas anders aus. Entweder stellt der Hersteller dazu technische Unterlagen bereit, oder er tut's aus irgendwelchen Gründen nicht. Bei manchen Geräten ohne Entwicklersupport vom Hersteller kann man sich erschliessen, wie sie angebunden sind. Insbesondere wenn Standardtreiber von Windows benutzt werden. Dann kann man auch nachsehen, ob Micro$oft technische Unterlagen zu den Standardtreibern bereitstellt. Micro$oft hat für solche Infos verschiedene Kanäle u.a. Hilfedateien bei den Entwicklungswerkzeugen, SDKs, DDKs, Online-Hilfe, das Developer-Network MSDN, das MSDN-TV....
Habe mich jetzt ein wenig eingelesen und möchte gleich eine zweite Frage hinterher schiessen. Es gibt von FTDI diverse CHips die ich direkt an meinen AVR anschliessen kann. Dann sende ich einfach, wie immer seriell Daten. JEtzt habe ich aber gelesen das immer der Host die kommunikation aufnimmt, d.h wenn ich etwas Sende woher weiß der Host das ? Oder fragt der einfach so oft ab ( Polling ) das ich unter windows den Com eingangs buffer nur auslesen muß.
Du hast richtig vermutet. Der USB-Host pollt zyklisch alle angeschlossenen Geräte. Das geschieht im 1ms-Takt.
Dann werd ich mir wohl einen FTDI besorgen. Habt ihr nen Tip scheint ja jede Menge zu geben . Es gibt mitlerweile doch Atmel 's die haben doch auch einen USB anschluss. Ist dieser FTDI dann quasi integriert ? Oder ist das ein "echter" usb anschluss der nicht als "Com" sondern über Treiber angesteuert wird.
Du meinst diese Controller? http://www.atmel.com/products/AVR/usb/ Das können als "echte" USB Clients in verschiendenen Modi (HID, Mass Storage, ...) betrieben werden und werden dafür nicht über eine virtuelle COM angesteuert.
D.h Atmel liefert aber die notwendigen Treiber die ich dann einbinden kann um mein USB device ( den Mikrocontroller ) anzusteuern.???
Nein, das tut Atmel nicht. Warum auch? Für die Standardgeräteklassen (HID, Audio, Mass Storage Device, Communication Device etc.) gehören die Treiber zum Betriebssystem. Treiber für andere Dinge musst Du sowieso selber schreiben, weil nur Du selber weißt, welche Daten auf welche Art und Weise Dein µC von Dir erwartet.
Hat den jemmand zufällig eine Seite mit einer Dokumentation der HID ? Ich meine Treiber selbst zu schreiben ist ja wohl nicht so leicht !?
Hallo Michael, ich habe hier mal einen ps2 zu USB Wandler geschrieben. Im Betriebssystem arbeitet immer der Standard HID Treiber. Funktioniert unter Linux und Windows. http://www.ixbat.de/index.php?page_id=98 Gruss Bene
@Rufus:
>>Du hast richtig vermutet. Der USB-Host pollt zyklisch alle
angeschlossenen Geräte. Das geschieht im 1ms-Takt.
Das ist falsch. Es sind nicht immer 1ms.
Ich empfehle als Lektüre die USB Specs.
Hallo! Richtige Treiber selber schreiben ist nicht so einfach. Es gibt aber den Weg mit libusb, die die Standard-USB-Funktionen wieder so aufbereitet, dass man sie über eine Bibliothek direkt aufrufen kann (d.h. Lesen Endpoint, schreiben Endpoint, Endpoint0 Operationen, Geräte am USB-Bus suchen). Hat man am Mikrocontroller die Kommunikation implementiert, macht man dann auf der PC-Seite dann ganz einfach das selbe und muss nicht über einen eigenen Treiber und die writedevice usw. Funktionen das Gerät ansprechen. libusb funktioniert so, dass ein universaltreiber verwendet wird und die standard-USB Funktionen wieder zur Verfügung stellt. Genau dies will ja MS mit den Treibern eigentlich verhindern. VT dieser Variante: WIN32 und LINUX sind auf einen Schlag unter eine Haube gebracht. mfg W.K.
Ahoi, vielleicht für den geneigten Einsteiger ein paar Links: http://www.sprut.de/electronic/interfaces/usb/usb.htm http://de.wikipedia.org/wiki/Usb Sowie die Specs auf usb.org. Wenn du mit den Atmel AVRs arbeiten willst, kriegste da nach einer Registrierung auch die USB Firmware (mikrocontrollerseitig) als Source Code zur Verfügung gestellt. Damit lässt sich zB ne HID-Maus implementieren, was für den Anfang ganz sinnvoll ist.
Jay, hat der Registrierzwang was mit der Erzeugung/Benutzung von eindeutigen GUIDs für den jeweiligen (Weiter-)Entwickler zu tun?
Ich muss für ein Projekt ein USB-MIDI Gerät programmieren. Die Descriptoren liest er richtig aus, im Gerätemanager wird es auch als Verbund-Audiogerät erkannt. Es kommt sogar die Meldung, dass es erfolgreich installiert wurde. Aber deshalb kann ich trotzdem nicht in einem MIDI-Player zugreifen. In der Spezifikation habe ich gelesen, dass ich keine AUDIO und MIDI EP0 Requests ausprogrammieren muss, was ich auch nicht getan habe. Könnte das an dem Windowstreiber liegen? Besten Dank Alexander
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.