Autor Beitrag
gmgler
Hält's aus hier
Beiträge: 24



BeitragVerfasst: Fr 09.12.05 12:31 
Hi,

als erstes muss ich sagen, ich bin vom Delphi-Forum und den aktiven Mitglieder begeistert!
Bei all meinen Probleme mit Delphi konnte ich mich auf eure Hilfe verlassen, so ist bissher jedes Problem gelöst worden. Danke!

Also, ich steh vor folgendem Problem:

Ich möchte eine USB-Steuerung für verschiedene Geräte entwickeln, als erstes möchte ich simpel anfangen (Ich hoffe,diese schematische Darstellung ist verständlich ^^):
_______
|_ _ _ _|
Wenn das der Querschnitt durch einen USB-Port ist, dann ist jeder _ ein Pin.
Der ganz linke ist Pin 4, rechts davon 3, und so weiter.
Port 4 ist die 0V-Erde, Port 3 ist Data +, 2 ist Data - und Port 1 ist +5V.


    Soweit weiss ich Bescheid, aber
  • wie kann ich den USB-Port ansteuern?
  • in welchem Format werden die Daten (+/- invers) versendet / wie kommen sie am USB-Port an?
  • könnte mir jemand etwas Code posten, wie ich z.B. einen Motor an-, aus- und die Richtung umschalten kann? Ich erwarte keine komplette Lösung des Problems, das wäre unverschämt, ich hoffe lediglich auf etwas Hilfe.

Danke schon im Voraus,
gmgler
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Fr 09.12.05 13:07 
Das ist bei USB leider nicht ganz so einfach. Weil an einem USB-Port mehrere Geräte hängen können, wird ein Protokoll verwendet, dass ein USB-Gerät verstehen muss. Dafür braucht man normalerweise einen Microcontroller.
Ein Basisprodukt für eigene Basteleien, das auch schon bei diversen c't-Projekten verwendet wurde, z.B. ist der IO-Warrior (www.codemercs.com/IOWarriorD.html). Das Ding kommt mit einem SDK, das auch Delphi-Komponenten enthält.

Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
gmgler Threadstarter
Hält's aus hier
Beiträge: 24



BeitragVerfasst: Fr 09.12.05 13:30 
Danke für die schnelle Antwort.

Und wenn ich nicht mehrere, sondern nur ein einziges anschliesen will?
Es gibt ja mitlerweile viele USB-Lampen, Warmhalteplatten für Teetasse, ...
Haben die allen einen Microkontroller, der das USB-Protokoll verarbeiten können?

Wenn ich z.B. einen Plotterdrucker bauen will, der lediglich 2 Motoren benötigt (und evtl. einen zum heben/senken, des Druckkopfes) sollte es doch möglich sein, die Schaltung selber zu Löten?!

Es gibt ja nur 4 Pins, wobei die Spannungs-Pins ja selbsterklärend sind.

Lediglich mit der Verwendung der Data-Pins habe ich noch Probleme.

MFG gmgler
Brueggendiek
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: Fr 09.12.05 22:06 
Hallo gmgler!

Die von Dir angesprochenen Lampen etc. benutzen nur die Stromversorgung. Ein einfaches 5V-Netzteil mit ner USB-Buchse dran reicht für deren Betrieb aus. Irgendwo habe ich mal Ständer für die Lampen gekauft - eine einfache Halbkugel mit Kabel, oben eine USB-Buchse, drin ein Gewicht und ein Schalter. Da sind nur die Stromleitungen angeschlossen.
Wenn Du mal in den Gerätemanager gehst und dann ein "echtes" USB-Gerät an- oder absteckst, siehst Du die Veränderung. Bei der Lampe tut sich nichts.
Prinzipbedingt muß nämlich die Stromversorgung der Ports immer eingeschaltet sein - über Stron- und Datenleitungen (Widerstand zwischen den Leitungen) erkennt der Controller des Hubs den Anschluß und meldet das zum Rechner weiter. Der initialisiert das Gerät.
Sag jetzt bitte keiner, er habe das Gerät direkt am Rechner angeschlossen und es gebe deshalb keinen Hub - da ist immer ein USB-Stammhub beteiligt. Üblicherweise gibt es nämlich nur einen USB-Port mit nachgeschaltetem Hub für mehrere Anschlüsse.

USB ist zu komplex für "mal eben schnell was basteln". Nimm dafür lieber die serielle Schnittstelle (die hat 2 Status-Ausgänge und 3 Status-Eingänge) oder die Parallelschnittstelle (8 Ausgänge). Bei entsprechender Auslegung des Geräts kann das auch ein Wandler von USB auf Seriell/Parallel sein - da riskierst Du bei Fehlern wenigstens nicht das Mainboard.

Gruß

Dietmar Brüggendiek