Forum: Mikrocontroller und Digitale Elektronik USB Kartenleser


von Matthias (Gast)


Lesenswert?

Hi,

ich habe nun meine Schaltung zum Schreiben und Lesen auf eine SD-Karte 
fertig. Nun würde ich gerne mit einer USB Schnittstelle auf diese Karte 
zugreifen wollen. Eigentlich soll er am PC als Massenspeichermedium 
angezeigt werden, so wie es ein normaler Kartenleser auch macht.

Würde das gerne mit Hardware lösen. Kennt jemand einen IC der so eine 
Art USB - SPI Wandlung macht oder Atmel Projekte ?

Hab leider keine Ahnung wie man soetwas realisieren könnte.

von Matthias (Gast)


Lesenswert?

Öh keiner ne Ahnung davon ?

von Miu (Gast)


Lesenswert?

Es gibt USB - SPI Wandler, aber nicht als einzelnes IC...

von Rahul D. (rahul)


Lesenswert?

Wie wäre es mit dem Vinculum?!
Ist von FTDI

von Philipp Karbach (Gast)


Lesenswert?

hää?? das ding nennt sich kartenleser und kostet in jedem PC Geschäft 
5€. kaufen, auseinander nehmen und vielleicht anschlüsse am SD Stecker 
anzapfen für deine schaltung. Versteh dein Problem nicht

von Miu (Gast)


Lesenswert?

Interessant, hatte ich bisher noch nicht gesehen...

von Werner (Gast)


Lesenswert?

@Matthias
hast du vielleicht Interesse daran, dein Projekt zu veröffentlichen? 
Hört sich ganz interessant an, die Möglichkeit Daten auf SD-Karten 
speichern zu können.

Werner

von holger (Gast)


Lesenswert?

Das ist nicht neu.
Schon mal in die Codesammlung geschaut ?

von Karl-j. B. (_matrixman_)


Lesenswert?

Der AT32AP7000 kann das in einem Chip!

Der hat ne USB Schnittstelle und ne SD Schnittstelle.

von Matthias (Gast)


Lesenswert?

@ Werner

ich empfehle holger Klabundes Multi Fat System echt super sache

von Matthias (Gast)


Lesenswert?

@  Philipp Karbach

Ich dachte halt jemand weiss vielleicht was für ein Chip in den 
Kartenlesern verwendet wird, damit ich die Schaltung auf meiner Platine 
nachbauen kann. Wenn das so einfach nicht geht, dann nehm ich deine 
Lösung und kauf mir so ein  "günstiges" Ding und hängs mit dran, das 
wäre ja nicht das Problem

von Matthias (Gast)


Lesenswert?

Habe gerade das hier gefunden:

http://www.heise.de/mobil/artikel/56261/0

jetzt frag ich mich schon, was innerhalb der Karte geschieht, dass sie 
mit USB kommunizieren kann ?

von holger (Gast)


Lesenswert?

>jetzt frag ich mich schon, was innerhalb der Karte geschieht, dass sie
>mit USB kommunizieren kann ?

Da ist ganz einfach ein USB Controller mit drauf !

von Matthias (Gast)


Lesenswert?

Also wenn ich einen USB controller hernehme, könnte ich meine SD Karte 
also mit dem PC verbinden.

1.) Welcher käme da in Frage, ich hab von USB Controllern wirklich gar 
keine Ahnung

2.) WIe stehts dann mit Treibern, kann ich dann einfach eine Verbindung 
mit meinem PC herstellen, bzw. wird die Karte und deren Inhalt in 
Windows lesbar sein.

von Matthias (Gast)


Lesenswert?

Ich finde dieser IC hört sich gut an:

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/4751

Die Frage ist: Derzeit schreibe ich per SPI auf eine SD Karte. 
Vielleicht könnte man mit diesem IC über SPI auf einen USB Stick 
schreiben ?

Meint ihr das wäre möglich ?

von Christian R. (supachris)


Lesenswert?

Das wollten wir auch mal bauen. Scheiterte dann an der Verfügbarkeit. Es 
gibt nur einige wenige Chips dafür, z.B. den USB2227 von SMSC. Aber da 
haben wir nur 5 Samples bekommen, die nächst größere Stückzahl war dann 
900 Stück im Tray. Soviele brauchten wir aber nicht. Haben das dann mit 
CF-Karte und einem normalen Cypress USB-ATA (68300C) gemacht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

@Matthias:
Das ist ein USB-Device-Controller. Damit kann man Geräte aufbauen, die 
via USB an einen USB-Host (beispielsweise einen PC) angeschlossen 
werden.

Mit anderen USB-Geräten kann man darüber aber NICHT kommunizieren.

Dafür bedarf es eines USB-Host-Controllers, was eine sehr aufwendige 
Programmierung (USB-Host-Stack) voraussetzt.

Die sinnvolle Alternative heißt hier VNC1L. Das ist ein 
USB-Host-Controller mit "Eigenintelligen" von FTDI, der nicht nur den 
USB-Host-Stack enthält, sondern -je nach geladener Firmware- auch gleich 
Unterstützung für FAT-Dateisysteme und ähnliches. Damit lässt sich ein 
USB-Stick mit recht wenig Aufwand ansprechen - und natürlich auch eine 
SD-Karte in einem USB-Kartenleser.

von Matthias (Gast)


Lesenswert?

OK wie wird so ein chip programmiert bzw. eingestellt.
Hat jemand mit dem Ding Erfahrung bzw. kennt jemand gute Weblinks (nicht 
nur die vom Herstller) bzw. Projekte mit diesem Chip. Vielen Dank im 
Voraus

von Matthias (Gast)


Lesenswert?

>@Matthias:
>Das ist ein USB-Device-Controller. Damit kann man Geräte aufbauen, die
>via USB an einen USB-Host (beispielsweise einen PC) angeschlossen
>werden.

ALso wie in einem Kartenleser oder ?

Das Ding würde ja erstmal reichen für meine Kartenleserfunktion

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sicher, "reichen" würde das. Du müsstest lediglich auf Deinem µC einen 
USB-Device-Stack und die Funktionalität eines MSD ("mass storage 
device") implementieren.
Und bedenken, daß auf das Dateisystem der Karte solange nicht von 
"außen" zugegriffen werden darf, wie das Gerät mit dem PC verbunden ist.
Der hat nämlich während dieser Zeit die Oberhoheit über das Dateisystem 
auf der Speicherkarte und bekommt nicht mit, wenn ihm hinterrücks 
dazwischengeschrieben wird - das führt so zu einem garantiert 
inkonistenten Dateisystem.

Wenn Du Dir nur aus Spaß an der Freud einen USB-SD-Karten-Leser bauen 
willst, also definitiv nicht noch von anderswo auf die Karte zugegriffen 
wird, dann kannst Du das sicherlich so machen. Es gibt für ARMe mit 
USB-Device-Controller auch Beispielcode für die Implementierung eines 
MSD, möglicherweise kannst Du den ja an den verwendeten 
USB-Device-Controller und den verwendeten µC anpassen.

Insgesamt: Was soll Dein Gerät denn überhaupt machen/werden? Soll es 
wirklich nur ein USB-Kartenleser werden? Oder soll das Gerät noch 
irgendeine andere (geheime?) Funktionalität aufweisen, mit der mit der 
SD-Karte bzw. einem anderen angeschlossenen Massenspeicher herumgemacht 
wird?

Was ein 10-EUR-Kartenleser bietet, wirst Du so leicht nicht nachbauen 
können - Du wirst eine SD-Karte so schnell ansteuern können (der 
schnelle 4-Bit-Modus ist nicht frei zugänglich dokumentiert), auch wirst 
Du zumindest Schwierigkeiten bei der Implementierung eines 
USB2.0-High-Speed-Betriebes haben.

von Christian R. (supachris)


Lesenswert?

Am einfachsten wird es für Einzelstücke mit so einem USB 2.0 Media 
Controller. Das Gehäuse ist bissl groß, aber wenn´s darauf nicht 
ankommt....man bekommt die USB2227 beispielsweise ganz gut als Samples. 
Da muss nix programmiert werden, ist alles komplett fertig drin.

von Matthias (Gast)


Lesenswert?

Ist der nicht ein bisschen überdimensioniert mit 128 PINS. Ich habe ja 
nur eine SD-Karte und will nur eine USB Schnittstelle zum PC erzeugen. 
Keine Sonderfunktionen oder irgendwelche Anschlussmöglichkeiten für 
weitere Karten.

Ich dachte der MAXIM wäre dafür genau geeignet, schön klein und günstig.
Gibt es von FTDI denn auch einen einfachen "USB Device Controller". Wenn 
ich obrige Ausführungen richtig verstanden habe, bräuchte ich ja nur 
einen Device Controller.

von Christian R. (supachris)


Lesenswert?

Naja, einfache USB <-> SD Controller kenn ich auch nicht. Aber 
vielleicht lässt sich ja was mit dem 68013 von Cypress programmieren. Da 
gibts immerhin ein Referenz-Design zum Anschluss einer 
CF-Karte/ATA-Festplatte per USB 2.0 samt Windows-Treiber. Wenn man das 
hernimmt, und statt der ATA-Funktionen die SPI-Routinen 
reinprogrammiert, müsste man ja leicht auf SD-Karten zugreifen können.

von Matthias (Gast)


Lesenswert?

Das ist bestimmt theoretisch möglich, wäre aber nicht so in meinem 
Sinne. Der Programmieraufwand wäre nicht wirklich rentabel, da wie oben 
bereits geschrieben, dann die Alternative "Gerät kaufen, ausbauen, 
anstöpseln" zum Tragen kommen würde. Naja habs versucht, aber so ne 
wirkliche leichte Alternative scheint es da ja nicht zu geben.

Allerdings verstehe ich immer noch nicht, warum der Maxim Baustein für 
meine Zweck nicht ausreicht. Dieser "USB Device Controller" müsste doch 
in Zusammenhang mit einem PC als Host die Daten auf der Speicherkarte 
abfragen können. Das SPI Interface ist ja dabei. Kann mir jemand nochmal 
erklären warum es mit diesem Baustein nicht geht, damit ich ihn ndlich 
aus meinem Gedächtnis streichen kann  ;-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der Baustein selbst macht ohne Programmierung durch Dich gar nichts.

Du musst den USB-Device-Stack (ein ziemlicher Haufen Software) sowie die 
"mass storage device"-Geräteklasse per Software auf Deinem 
Microcontroller implementieren.

Das ist ein nicht zu unterschätzender Aufwand.

von Matthias (Gast)


Lesenswert?

Dann danke ich euch vielmals und werde Philipp Karbach´s Rat befolgen. 
Ich auf mir so ein "Mistding" und nehm es auseinander. Für 5 € hock ich 
mich echt nicht Stundenlang hin und programmier das. Erst recht nicht 
mit meinen "nur leicht fortgeschrittenen" Programmierkenntnissen.

Ich danke vielmals für die Aufklärung

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.