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.
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
@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
@ 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
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 ?
>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 !
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.
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 ?
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.
@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.
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
>@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
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.
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.
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.
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.
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 ;-)
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.
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