Forum: Mikrocontroller und Digitale Elektronik USB Ansteuerung


von Markus Jech (Gast)


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

von Markus (Gast)


Lesenswert?

Du willst also Deinen eigenen USB-Stick bauen? Das geht schon mit
eigentlich allen Microcontrollern; die Frage ist eher ob Du das
hinbekommst, wenn Du noch keine Ahnung von USB hast.

Markus

von Andreas Auer (Gast)


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

von Thomas Kropf (Gast)


Lesenswert?

und wie schaut das aus wenn man selber sowas wie einen Joystick basteln
will (HID)??

von bob (Gast)


Lesenswert?


von Thomas Kropf (Gast)


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.

von Jim (Gast)


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.

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
Noch kein Account? Hier anmelden.