USB Ansteuerung

Gast #112150
Lesenswert?

Hallo
Ich würde gerne an einen Mikrocontroller eine USB Schnittstelle
dranhängen. Dazu einen Speicherbaustein so dass die USB Schnittstelle
wie ein USB Stick funktioniert. Kann man das mit jedem Mikrocontroller
oder braucht man da einen speziellen?

Ich danke euch schon im Vorraus für eure Antworten

Mfg

Markus
Gast #112152
Lesenswert?

Hi.

Eine USB Anbindung ist eigentlich relativ leicht, wenn man die FTDI
Chips und deren Treiber verwendet! Schwieriger wird es, wenn dann ein
eigenes Laufwerk erscheinen soll, wenn der "Stick" angeschlossen
wird. Da lohnt es sich vielleicht auf der YAMPP Homepage www.yampp.com
nachzusehen. Die haben sowas für ihren MP3 Player schonmal gemacht!

Ich denke aber, dass das größere Problem der Speicherchip sein wird,
wenn man ne vernünftige Größe haben will.
Aber zurück zur eigentlichen Frage. Ich hab mich selbst schon öfter mit
USB für uC beschäftigt. Hab mich aber sofort für die USB Bausteine von
FTDI entschieden, da die einen relativ einfachen Treiber für Windows
und diverse andere Betriebssysteme (unter anderem sind die Treiber auch
bei Linux ab Kernel 2.4.0 dabei) zur Verfügung stellen.

Unter Windows hast du dann die Möglichkeit entweder über einen
virtuellen COM Port (also eine simulierte RS232, die die Daten auf USB
umleitet) mit deinem Controller zu kommunizieren, oder über einen DLL
Treiber. Der DLL Treiber hat den Vorteil, dass höhere Geschwindigkeiten
erreicht werden.

Zum Anschluss an den uC:
Von FTDI gibts 2 Varianten der Chips. Die eine (FT232BM) empfängt die
Daten von USB und gibt sie an den Controller über eine normale serielle
Schnittstelle aus (RS232). Du kannst den Chip also einfach statt eines
MAX232 an den Mikrocontroller hängen.
Die andere Variante (FT245BM) bietet ein paralleles Interface. D.h. die
Daten von USB werden auf einen 8bit Datenbus ausgegeben. Vorteil ist
hier die höhere Geschwindigkeit. Bei Atmel Controller, die einen
externen Speicher verwalten können, kannst du den Chip auch direkt in
den externen Speicherbereich "mappen" (einfügen). Somit kannst du
praktisch über USB Daten senden und empfang, wie wenn du auf ein
externes RAM zugreifen würdest!

Für beide Varianten wird der selbe Treiber verwendet! Ach ja... seit
kurzem gibts auch eine kombinierte Version der beiden vorhin genannten.
Kenn diese Version aber selbst leider noch nicht!
Die Herstellerseite der USB Chips ist übrigens folgende
http://www.ftdichip.com . Auf meiner Homepage
(http://home.pages.at/aauer1) findest auch noch ein paar Infos!

mfg
Andreas

--
Student of Telematics            aauer1 (at) sbox.tugraz.at
Graz, University of Technology   http://home.pages.at/aauer1
Gast #112155
Lesenswert?

Danke, über diese Seite bin ich schon irgendwann mal gestolpert.
Leider erlaubt der beste JoyWarrior nur maximal 4 analoge Achsen. Das
ist mir schon zu wenig.

Eigentlich dachte ich eher an irgendeinen USB-Chip den ich an einen AVR
hängen kann und dann z.B. seine 8 analogen Eingänge nutzen kann.
Gast #112156
Lesenswert?

Wenn man etwas Aufwendigeres machen möchte, sind die FTDI-Chips aus dem
Rennen.
Also insbesondere bei den diversen Standard-Geräte-Klassen von USB, wie
z.B. Storage, HID, etc.
Dazu nimmt man entweder einen USB-Controller oder einen Controller und
einen USB-Chip, z.B. von Philips. Einen Teil des USB-Protokolls haben
die schon eingebaut (die unteren Schichten). Der Rest ist so schwer
nicht, wenn man etwas Erfahrung hat.
Angebunden werden die USB-Chips unterschiedlich, z.B. memory-mapped
oder per spi. Ein Atmel ist also kein Problem.

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