mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD - USB MassStorageDevice


Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin gerde auf der Suche nach einer Möglichkeit meine bestehende 
Platine mit einer Möglichkeit zu versehen, den eingebauten SD Speicher 
mittels USB als MSD anzusprechen.
Momentan kommuniziere ich über SPI mit der Karte, was auch gut 
funktioniert, aber die Möglichkeit bequem und ohne Mittelsmann µC vom PC 
aus darauf zugreifen zu können ist schon verlockend.
In anderen Threads habe ich gelesen, dass der Cypress CY7C68013A recht 
gut sein soll. Das Ganze ist mir aber ein bißchen überdimensioniert, 
finde ich, und bin daher auf der Suche nach einem Chip, der ohne zutun 
meines µC zwischen PC und SD Karte fungiert und noch dazu klein, billig 
und in kleinen Stückzahlen lieferbar ist. (eine eierlegene Wollmilchsau 
eben) Leider habe ich noch nichts gefunden. Hab ihr da nen Tipp?

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Adapter kaufen und ausschlachten.

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:) Das schreibt jeder. Soll aber "serientauglich" sein.

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am einfachsten wäre es, glaube ich, wenn es einen Chip gäbe, der ein 
SPI-Master Interface hat. Damit könnte ich direkt auf die SD schreiben 
lassen und mit ner Logik den CS abfragen und damit meinen µC verbieten 
darauf zuzugreifen.
Hab aber noch keinen gefunden.

Autor: Daniel P. (ppowers)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe kürzlich ein MassStorageDevice auf einem PIC18F67J50 
realisiert. Ist zwar nur FullSpeed-USB, dafür ist der Chip aber sehr 
billig. Der PIC18F4550 ist sogar noch etwas pflegeleichter.

gruß
daniel

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem Cypress FX2 wäre gar keine schlechte Lösung, die Quellcodes für 
das MSD gibts bei Cypress, ist zwar ATA, aber da muss man ja "nur" den 
untersten Teil anpassen, und die Sektoren nicht von ATA sondern von SD 
Karte lesen/schreiben. Ansonsten natürlich fertige Chips aus Fernost, 
aber die sind nur in großen Stückzahlen zu bekommen. SMSC wäre ein 
Kandidat.

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Daniel
Der PIC18F4550 scheint mir ja ein vollwertiger µC zu sein. Das ist mir 
zu viel. Wollte eigentlcih etwas, was "selbstständig" arbeitet. 
Prinzipiell einfach einen umsetzter. Das wird mit sons tzu viel. Oder 
hab ich das falsch interpretiert?

@Christian
Die Quellcodes für das MSD umschreiben... Davon hab ich doch keinen 
Dunst :)

Autor: Daniel P. (ppowers)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wollte eigentlcih etwas, was "selbstständig" arbeitet.
> Prinzipiell einfach einen umsetzter. Das wird mit sons tzu viel. Oder
> hab ich das falsch interpretiert?

Nunja... der 18F67J50 benötigt (abgesehen von den üblichen 
Kondensatoren) keinerlei externe Komponenten und kann (MSD-Firmware 
vorausgesetzt) die Massenspeicheroperationen selbständig durchführen. 
Natürlich musst Du die Firmware vor der Benutzung in den PIC brennen, 
aber wenn die Software erst einmal steht kommen doch keine weiteren 
Kosten hinzu (außer natürlich der Aufwand um den IC zu flashen). Oder 
interpretiere ich da grad irgendwas falsch?
Oder meinst Du mit "selbständig" einen Chip, der out-of-the-box auf die 
Platine gelötet wird und dann direkt funktioniert? Dann führt natürlich 
kein Weg an den Spezial-ICs für Cardreader vorbei...

gruß
daniel

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich wollte eigentlich nicht noch weitere Controller auf dem Board 
haben, die ich flashen muss.
Ich suche sozusagen diesen "out-off-the-box" funktionierenden Chip, der 
direkt mit meiner SD-Karte kommunizieren kann. Eben, wie du schon 
sagtest, wie in einem Cardreader. Will aber nicht zwingend für jede 
Platine extra nen Cardreader zerlegen müssen um an den Chip zu kommen. 
Sowas muss es doch auch zu kaufen geben?!

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar gibts das auch out of the box:

http://www.smsc.com/main/catalog/usbprods.html

Aber wie gesagt: Nur in großen Stückzahlen oder sonst sehr schwer zu 
bekommen.

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den hab ich mir heute auch schon mal angeschaut, aber ich dachte da 
noch, dass es minimalistischere lösungen giebt.
Naja. Jetzt frag ich einfach mal nach ob ich n Sample haben kann und wie 
die Stückzahlen bei denen sind :)

Autor: Dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kuck ma hier:

www.ghielectronics.com

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat eigentlich jemand Ahnung wie man SD-Karten mit dem CY7C68300 
betreibt. Ich hab nämlich keine...

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sepp wrote:
> Hat eigentlich jemand Ahnung wie man SD-Karten mit dem CY7C68300
> betreibt. Ich hab nämlich keine...

Gar nicht. Der 300er ist nur für ATA-Geräte. CF-Karten gehn prima, 
Festplatten auch.

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab noch den hier gefunden. Leider bin ich bei der Suche nach einem 
genaueren Datenblatt wieder auf die usb222X Serie gestoßen, und die 
bekommt man ja so toll. Bin mir nicht sicher was ich davon halten soll.
 http://www.digchip.com/datasheets/download_datashe...

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich gebe auf. Scheint wirklich nicht so schön und einfach zu 
funktionieren wie ich dachte.
Die beste Lösung ist wohl immer noch der von Daniel vorgeschalgene 
18F67J50 mit MSD Firmaware.

Btw: @Daniel
Könntest du die Firmware hier als Download bzw. Link posten, oder ist 
das dein Werk und du möchtest es lieber nicht posten?

Autor: Daniel P. (ppowers)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, meine MSD-Firmware funktioniert zwar schon zuverlässig, es wird 
aber noch ein wenig dauern, bis ich die Sache veröffentlichen kann. USB 
ist leider nicht besonders trivial, entsprechend ist das ein großer 
Batzen Code, der noch kommentiert werden will. Zudem führe ich gerade 
die Portierung auf den C18 Compiler durch.
Auf der Microchip-Seite gibt es ebenfalls eine MSD-Firmware für den 
PIC18F4550, wenn Du alles entsprechend der Application Notes aufbaust, 
wird diese Lösung ebenfalls quasi "out of the box" funktionieren ;-)

Hier der Link:
http://www.microchip.com/stellent/idcplg?IdcServic...

Der Nachteil: Die Lese- / und Schreibgeschwindigkeiten sind bei solchen 
Lösungen im Vergleich zu Spezial-ICs natürlich geringer. Mit meiner 
Firmware komme ich z.B. nur auf ~400kB/s lesend und max. 180kB/s 
schreibend. Allerdings bestehen noch Optimierungspotentiale 
(PingPong-Buffering, usw....)

Gruß
daniel

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es auch fertige stacks für atemga µC?

Autor: Daniel P. (ppowers)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für den AT90USB gibts was Fertiges. Allerdings kenne ich mich nicht 
damit aus; ich bin nichtmal sicher, ob der AT90USB überhaupt ein AVR 
ist...

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich bin auf das Projekt MyUsb gestoßen. 
http://www.fourwalledcubicle.com/MyUSB.php
Wie man in solch jungem Alter schon so tolle Sachen schreiben kann... 
(Neid)

Naja. Ich schreib darauf gerade die Dataflash_Read() und 
Dataflash_Write() Funnctionen um, so dass es mit SD Karten funktionieren 
soll. Ist eigentlich nicht viel Stress glaube ich. Sobald ich zu meinem 
Hex auch ne Hardware habe und das ganze testen konnte, werde ich hier 
mal was posten.

Autor: T.R. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Daniel P.,
habe das selbe auf einem ARM7-SAM von Atmel gemacht. Was erreichst du 
für effektive Datenraten? Also ich kann in Windows mit ca. 700KB/s 
lesen/schreiben. ARM->SD->MSD

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.