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?
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.
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
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.
@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 :)
> 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
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?!
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.
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 :)
Hat eigentlich jemand Ahnung wie man SD-Karten mit dem CY7C68300 betreibt. Ich hab nämlich keine...
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.
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_datasheet.php?id=889294&part-number=SN11020F
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?
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?IdcService=SS_GET_PAGE&nodeId=1999&ty=&dty=§ion=&NextRow=&ssUserText=mass%20storage 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
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...
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.
@ 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.