Hi, bin gerade auf den FT2232H gestoßen, der könnte einige Probleme bei meinen Überlegungen für meinen speziellen MP3-Player lösen. Hat einer von euch den schon mal eingesetzt um damit Daten auf eine SD-Card zu schreiben/lesen? Gruß Tom
Wieso sollte man das tun wollen? Das erfordert doch spezielle Software auf PC-Seite (denn ein FT2232 ist kein MSD), und ist obendrein auch noch ganz erheblich langsamer als ein üblicher USB-SD-Card-Reader.
Ich will eine fest eingeabute SD-Karte die sonst vo AVR gelesen wird vom PC schnell beschreiben können. Mit dem FT2232H kann man SPI realisieren, also auf die SD-Karte zugreifen und zur gleichen Zeit RS232 um mit dem AVR zu kommunizieren. Gruß Tom
Trotzdem brauchst Du eine PC-Software, die den Treiber des FT2232H ansteuert.
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.
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.
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
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....
> 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.
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
>> 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.
Da wurde mir aber gesagt, dass das Schnarch langsam wird wenn ich ein paar MB übertragen will. Siehe oben. Gruß Tom
Ich probier das jetzt einfach erst mal über den AVR und schau wie langsam es wird. Sonst probier ich das mit dem FT2232H mal aus. Gruß Tom
Das Nadelöhr ist die SPI-Geschwindigkeit des AVR, die günstigenfalls 10MBit ist. Darüber muß man sämtliche Kommandos dudeln und der AVR muß ja dann auch noch rechnen. Ja, das wird schnarchlangsam. Dann nimm doch besser die Karte aus dem Slot und stecke sie in einen CardReader am PC oder in den Laptop. Schneller geht´s nicht.
Ich will abr nicht, dass die Karte von außen zugänglich ist. Ok, fürs erste ist da ne Lösung, aber später muss dass anders werden. Gruß Tom
Richtig schnell ist aber nur der 4-Bit Modus mit extra USB-SD-Controller. Mit AVR als Zwischenglied kann man´s vergessen.
@Travel: Nee, ich ich will das eine Interface des FT2232H direkt als SPI an die SD Karte anbinden. Gruß Tom
Eventuell werde ich einfach ELM Chans FAT nehmen und anpassen. Wenns tut poste ich es hier. Gruß Tom
Was lässt Dich annehmen, daß die SPI-Variante mit dem FT2232 auch nur ansatzweise so schnell wäre, wie die des AVR? Das ist sie nicht. Absolut und gar nicht.
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. Gruß Tom
> Ich will eine fest eingeabute SD-Karte
was verstehst du eigentlich unter "fest eingebaut"?
Direkt anlöten oder doch einen Slot?
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.
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.
Das würde dann aber heißen, dass ich einen Hub brauche und eben einen USB-SD Controller, da ich zu der Mass storage noch RS232 brauche. Gruß Tom
Ja. Die Alternative wäre ein anderer µC, der USB-Device ist und beide USB-Gerätefunktionen selbst anbieten kann.
Dann müsste es aber schon ein deutlich schnellerer als ein AVR sein und es musse ne ganze Menge USB-Software geschrieben werden. Gruß Tom
Naja, Implementierungen sowohl von MSD als auch CDC sind als Quelltextbeispiele für entsprechende µCs verfügbar. Von Null an muss man da also nicht anfangen. Hier eine Anlaufstelle für die AVR-basierenden Controller mit USB-Interface: http://www.fourwalledcubicle.com/LUFA.php
@Rufus: An einen USB-AVR hatte ich auch schon gedacht, aber hat der nicht genau das gleiche Problem was die Performance beim Schreiben auf die SD-Card angeht, wie wenn ich einen FT-Controller an einen normalen AVR hänge? Gruß Tom
Ziemlich sicher nicht, da auf der PC-Seite die Nutzung des VCOM-Treibers sowie das darüber abgewickelte von Dir zu implementierende Protkoll für Dateiübertragungen entfällt, und auf der Hardwareseite entfällt dir Nutzung der seriellen Schnittstelle zur Kommunikation FT2232<-->µC.
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.
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. Gruß Tom
@Christian R Wie willst du den FX2 an die SD Karte anbinden? GPIF und Slave FIFO unterstützen ja nur 8 bzw. 16 Bit Interfaces.
>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.
@Holger: Ich denke ein SPI-Interface an sich sollte schon ok sein. Schließlich geht es in meiner Anwendung nicht darum dauernd große Datenmengen draufzukopieren. Ich probiere einfach mak aus, was ich auf diese Weise so drüberbekomme. Danke & Gruß Tom
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.