PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : USB-Stick mit Mikrocontroller lesen und schreiben...



Jaipur
23.11.2006, 12:10
hallo zusammen,

ich habe da einen Mikrocontroller (PIC18LF4520) und an diesem habe ich zwei USB Controller (MAX3421E) angeschlossen und jetzt wollte ich mal einen USB-Stick lesen und / oder schreiben. welche "befehle" muss ich an den USB-Stick senden?

...zumindest mal zu erfahren wie groß dieser stick ist und wieviel MB / GB noch frei sind oder eventuell ein paar bits in den speicher schieben?

p_mork
26.11.2006, 10:35
Hallo Jaipur,
so einfach funktionirt das ganze nicht. Um den USB-Stick ansteuern zu können, brauchst du einen Teriber für das Teil. Den Quellcode von diesem gibt aber kaum ein Hersteller freiwillig heraus. Viel einfacher geht es mit SD/MMC-Karten, die ja auch sehr viel Speicher bereitstellen. Auf http://www.cc5x.de/MMC/index.html kannst du erfahren, wie man SD/MMC-Karten anschließt und mit einem PIC ausliest.

MfG Mark

Jaipur
26.11.2006, 11:57
seid wann braucht ein USB-Stick (Mass Storage Device) eine seperaten Treiber? - sorry für die jetzt dumme frage!

ich habe bei www.usb.org/developers viele information gefunden, aber noch nicht gelesen und außerdem gibt es dort noch ein forum http://www.usb.org/developers/forum/ bzw. http://www.usb.org/phpbb/ - allerdings ist das forum voll von spam beiträgen...

SIGINT
26.11.2006, 12:13
@p_mork: Du scheinst einige Jahre verschlafen zu haben. Jeder moderne USB Stick unterstüzt doch die USB Mass Storage Class. Ein Blick in den Linux Kernel sollte dann sogar fertigen C-Code zu tage fördern, der eventuell weiterverwendet werden kann. Ansonsten gibts hier die offizielle Dokumentation:
http://www.usb.org/developers/devclass_docs

Gruß,
SIGINT

P.S.: Die Sache mit den MMC-Karten ist aber trotzdem besser, wenn es nur um Speicherplatz geht.
P.P.S.: @Jaipur: Du warst etwas schneller ;)

Jaipur
26.11.2006, 12:25
@SIGINT: also ich finde es trotz "guter" englisch kenntnisse sehr schwer die http://www.usb.org/developers/devclass_docs zu lesen und dann noch den Linux Kernel für einen mikrocontroller???

was die mmc karten angeht, ...für nur speicher eventuell ganz ok, aber jeder pc hat mindestens einen usb und ein usb stick kostet so gut wie nix und was noch viel wichtiger ist, schon mal jemanden nach einer mmc karte anstatt nach einem usb stick gefragt ;)

r.moshage
26.11.2006, 13:10
Meines Wissens dürfte das nicht so einfach gehen, da der PC immer der Master ist und die USB-Geräte, auch Mikrocontroller, immer USB-Slave sind. Da müßte man sich ein eigenes Betriebssystem für den Controller schreiben das als USB-Master fungiert, und das dürfte mindestens einen ARM oder vergleichbares benötigen.

Jaipur
26.11.2006, 13:43
wenn ich einen usb host implementiere und mich dann mit einem usb peripheral unterhalten möchte, dann sollte meiner meinung nach einer der kleineren mikrocontroller (8051, PIC18f, ...) genügen - und genau dafür ist dieser maxim baustein max3421e gebaut worden.

der nachteil - welcher zugleich auch als vorteil zu verstehen wäre - wäre allerdings das ich das "betriebssystem" im mikrocontroller von peripheral zu peripheral austauschen müsste, ... also im warsten sinne: embedded.

somewhere
26.11.2006, 14:26
Hallo,
ich wünsche Dir viel Spass beim entwickeln eines USB-Host. Der Grund warum bis heute meist PC's o.ä. verwendet werden, ist der Programmumfang der dafür notwendig ist.
Schau aber mal auf www.mikrocontroller.net, dort findest Du einen Link auf eine Japanische Seite wo sowas gemacht wurde.
Du kannst aber auch bei Atmel gucken, die haben mittlerweile Controller mit USB-Host in Hardware im Programm.

p_mork
26.11.2006, 18:23
Hi,
sorry, aber ich hab vor'n paar Monaten irgendwo gelesen, dass man dafür 'nen Treiber braucht, jetzt wurde ich jedoch des besseren beleht. nochmals sorry wegen der Desinfomation.

MfG Mark

Jaipur
30.11.2006, 13:04
Hi,
sorry, aber ich hab vor'n paar Monaten irgendwo gelesen, dass man dafür 'nen Treiber braucht, jetzt wurde ich jedoch des besseren beleht. nochmals sorry wegen der Desinfomation.

MfG Mark

hallo,

das mit dem treiber ist ja auch nichts falsch, aber es gibt ein paar geräte die windows automatisch erkennt und die hauseigenen triber benutzt. z.b: usb stick, tastatur, maus, ... (eventuell camera)

SprinterSB
30.11.2006, 13:33
USB-Sticks implementieren üblicherweise ein solid state, Teilmenge der mass storage class. Evtl weitere Interfaces mit isochronen endpoints wenn es mp3-Player ist. Die Informationen bekommst du, indem du entsprechende Anfragen an das Device sendest und Infos besorgst über device descriptor, configuration descriptor, interface descriptors und endpoint descriptors.

Schau dir mal die doc zum bulk-only transports der mass storage class an. Bücher zu USB wiederholen gerne nur die Spez, verschleiern eher als sie erhellen und enthalten oft allgemeinen Blubber.

Auf den bulk endpoints werden Datenframes verschickt, die zB SCSI-2 Kommandos enthalten, aus denen du weitere, tieferliegende Infos erhälst. Das FS ist vermutlich ein FAT, aber das bekommst du pber SCSI raus.

Die SCSI Spez (131-1994) erhälst du von der ANSI.

Dir ist klar, was für ein Aufwand ein USB-Host bedeutet?

Jaipur
30.11.2006, 13:40
was mich wohl gerade echt gefreut hat das ich schon mal auf dem richtigem weg bin :)

und zu deiner frage "Dir ist klar, was für ein Aufwand ein USB-Host bedeutet?" ...ich glaube/denke/vermute ja, mein usb host muss ja nicht jeden und alles beherschen. aber das es dennoch mit arbeit verbunden ist, ist und war mir schon klar!

selbst wenn ich dann mal NUR die informationen aus einem stick auslesen kann, wäre ich schon glücklich.

im moment lese ich mich noch durch, muss noch warten bis die hardware hier bei mir eintrifft und dann noch löten

capiman
10.12.2006, 12:36
Hallo Jaipur,


selbst wenn ich dann mal NUR die informationen aus einem stick auslesen kann, wäre ich schon glücklich.

vielleicht helfen Dir die beiden Links:

http://www.maxim-ic.com/appnotes.cfm/appnote_number/3937

und speziell das File 3421_host.c im Zipfile auf der obigen Seite

http://www.maxim-ic.com/images/appnotes/3937/3937Software.zip

Ich habe die Datei noch nicht naeher angeschaut, aber schaut auf den ersten Blick nicht schlecht aus...

Gruesse,

Martin