USB Grundsätzliche Frage

Gast #422675
Lesenswert?

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.
Gast #422736
Lesenswert?

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....
Gast #422743
Lesenswert?

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ß.
Gast #422774
Lesenswert?

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.
Gast #423903
Lesenswert?

@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.
Gast #423910
Lesenswert?

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.
Gast #423916
Lesenswert?

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.
Gast #424643
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren