SD-Card über FT2232H ansprechen

Persönliche Seite #1491248
Lesenswert?

Sinnvoller ist es, einen USB-SD-Card-Controller zu verwenden, der 
parallel zum µC an die SD-Karte angeschlossen ist. Der µC muss 
erkennen können, wenn der USB-SD-Card-Controller mit dem PC verbunden 
wird und muss dann seine Leitungen zur SD-Karte deaktivieren 
(Hochohmig). Für diese Erkennung kann beispielsweise die 
USB-Versorgungsspannung verwendet werden.

Wird die Verbindung zum PC gekappt, kann der µC wieder auf die SD-Karte 
zugreifen.

Der SD-Card-Controller sollte natürlich so ausgelegt sein, daß er bei 
inaktivem USB die SD-Karte nicht anspricht bzw. die Leitungen zu ihr 
nicht belastet; notfalls muss das mit geeigneten Multiplexerbausteinen 
hergestellt werden.

So aufgebaut funktioniert das mit jedem PC, der ein MSD ansteuern kann 
und erfordert keinerlei Software auf der PC-Seite. Und ganz erheblich 
schneller ist es auch noch.
Persönliche Seite #1491274
Lesenswert?

Nicht persönlich, aber so etwas ist logischerweise in jedem 
USB-SD-Card-Reader drin.

Und die bekannte Internetsuchmaschine spuckt beim Suchbegriff "usb sd 
card controller" unter anderem das hier aus:

http://www.genesyslogic.com/_en/product_01_1.php?id=31

Die Firma SMSC ist auch ein Kandidat, und hier 
Beitrag "Re: USB Controller CY7C63000A an SD-Card und ATMEGA" erwähnt jemand auch 
eine Bezugsquelle.
OP #1491280
Lesenswert?

Den Genesyslogic habe ich auch gerade gefunden, aber denke nicht dass 
der so einfach hier zu bekommen ist.

Der Cypress ist hat ein ATA-Interface für Compact Flash ok, aber nicht 
für SD.

Danke für die Tipps. Überlege immer noch den FTDI mit der SPI Variante 
auszuprobieren. Im prinzip muss man ja nur eine der AVR FAT 
Implemntierungen für SPI auf den PC portieren ;-)

Gruß
Tom
#1491307
Lesenswert?

Thomas Burkhart schrieb:
> Den Genesyslogic habe ich auch gerade gefunden, aber denke nicht dass
> der so einfach hier zu bekommen ist.

Dann nimm den USB 2241, damit sparst du eine Menge Arbeit.
Allerdings ist dann schlecht mit gleichzeitig per RS232 ansprechen.

> Danke für die Tipps. Überlege immer noch den FTDI mit der SPI Variante
> auszuprobieren. Im prinzip muss man ja nur eine der AVR FAT
> Implemntierungen für SPI auf den PC portieren ;-)

Nuuuuur. Und dann kannst du nur mit deinem speziellen Programm auf die 
Karte zugreifen und musst auch den FTDI Treiber samt DLL drauf haben....
Persönliche Seite #1491315
Lesenswert?

> Der Cypress ist hat ein ATA-Interface für Compact Flash ok, aber nicht
> für SD.

Sieh Dir mal den Beitrag genau an, den ich verlinkt habe. Nicht den 
Thread, sondern den Beitrag.

Darin wird das hier erwähnt:

http://www.smsc.com/index.php?tid=141&pid=11&cid=&tab=1

> Im prinzip muss man ja nur eine der AVR FAT
> Implemntierungen für SPI auf den PC portieren ;-)

Ach ja, wenns weiter nichts ist.
OP #1491319
Lesenswert?

Christian R. schrieb:
> Thomas Burkhart schrieb:
>> Den Genesyslogic habe ich auch gerade gefunden, aber denke nicht dass
>> der so einfach hier zu bekommen ist.
>
> Dann nimm den USB 2241, damit sparst du eine Menge Arbeit.
> Allerdings ist dann schlecht mit gleichzeitig per RS232 ansprechen.
>
Und genau das brauche ich auch, dann müste ich gleich noch eiknen 
USB-HUB mitdraufsetzen....


>> Danke für die Tipps. Überlege immer noch den FTDI mit der SPI Variante
>> auszuprobieren. Im prinzip muss man ja nur eine der AVR FAT
>> Implemntierungen für SPI auf den PC portieren ;-)
>
> Nuuuuur. Und dann kannst du nur mit deinem speziellen Programm auf die
> Karte zugreifen und musst auch den FTDI Treiber samt DLL drauf haben....

Ist mir shcon klar, für meine Anwendung aber durchaus wünschenswert wenn 
man nicht mit dem Windows Explorer auf die SD Karte schreiben kann.

Gruß
Tom
Persönliche Seite #1491367
Lesenswert?

>> Nuuuuur. Und dann kannst du nur mit deinem speziellen Programm auf die
>> Karte zugreifen und musst auch den FTDI Treiber samt DLL drauf haben....
>
> Ist mir shcon klar, für meine Anwendung aber durchaus wünschenswert wenn
> man nicht mit dem Windows Explorer auf die SD Karte schreiben kann.

Wenn das so ist - dann reiche doch einfach die zu schreibenden Daten an 
den µC durch, der ja sowieso schon die Karte ansteuern kann. Dann kannst 
Du den ganzen Aufriss sparen und musst nicht auch noch auf dem PC eine 
SPI-Ansteuerung der Karte nebst FAT-Treiber implementieren.
Persönliche Seite #1494349
Lesenswert?

Thomas Burkhart schrieb:
> Wieso? Laut Datenblatt
>
> MPSSE.Multi-Purpose Synchronous Serial Engines (MPSSE), capable of
> speeds up to 30 Mbits/s, provides
> flexible synchronous interface configurations.
>
> Wäre immerhin 3xSo Schnell wie ein AVR alleine.

Das ist die reine Taktrate. Du musst aber die Daten auch an den PC 
übertragen bekommen bzw. den PC dazu bringen, welche zu senden. Und da 
kommt die USB-Trägheit ins Spiel, die nur im Millisekunden-Raster 
Operationen auf dem USB zulässt. Und obendrein das Betriebssystem, das 
zwischen einzelnen Schreib- und Lesevorgängen, die per Usermode-Programm 
durch den Devicetreiber geschleust werden können, einen Taskwechsel 
erfordert. Unter Windows geschehen die im 10 msec-Takt, sofern nicht mit 
den Multimediatimern die Schedulergranularität verändert wurde.

Und damit wird das ganze verdammt langsam.

Mit ziemlicher Sicherheit noch langsamer als das der AVR mit seinen 
"nur" 10 MHz SPI-Takt hinbekommt.
#1494437
Lesenswert?

Rufus t. Firefly schrieb:

> Das ist die reine Taktrate. Du musst aber die Daten auch an den PC
> übertragen bekommen bzw. den PC dazu bringen, welche zu senden. Und da
> kommt die USB-Trägheit ins Spiel, die nur im Millisekunden-Raster
> Operationen auf dem USB zulässt.

Der FT2232H arbeitet mit USB 2.0 HighSpeed, hat also 125µs Microframes. 
Allerdings ist das Konzept trotzdem fragwürdig, weil die Latenzen und 
der Overhead viel zu hoch sind. Für sowas gibts das USB Mass Storage 
Protokoll.
#1494657
Lesenswert?

Für sowas bietet sich der Cypress FX2 ja schon fast an. Der hat ja den 
HighSpeed Device Controller, der universell programmierbar ist. Da 
kannst du auch ein USB Verbundgerät erstellen, in dem ein 
Kommunikationsmudul (am einfachsten über HID) und eben das MSD sitzt. 
Klar, 8051 Programmierung ist krank, aber machbar ist es.
Gast #1494793
Lesenswert?

>Dann vielleicht doh eher ein ARM derivat? Oder?
>Bisher hab ich halt auf AVR gesetzt. Aber vielleicht ist ein  USB-AVR ja
>ne gute Variante.

Oh man, je mehr du da einbaust desto länger wird es
dauern bis du mal fertig wirst. Mach nen Push-Pull Sockel
für die SD rein und bespiel das Teil vom PC aus.
SD Card Reader gibts im USB Stick Format. Und die
sind mindestens zehn mal schneller als jeder AVR.

Zum ARM: Im SPI Mode nützt dir auch ein ARM wenig.
Die Karten sind dort einfach langsam. Selbst wenn du
im Multiblock-Mode sendest. Wenn schon ARM dann einer
mit echtem SD Karten Interface. Dann wirds aber wohl sehr
schwer deine beiden MP3 Player AVR mit anzukoppeln.
Der ARM sollte also auch diese beiden AVR ersetzen.
Und USB Interface sollte der dann auch haben. Dann aber
High-Speed. Sonst bremst der USB Teil wieder.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren