Hallo, hat jemand zufälligerweise schonmal die übliche Zugriffszeit auf SD/MMC-Karte n gemessen, wenn man auf sie über SPI zugreift? In einer Anwendung möchte ich direkt von SD/MMC in einen kleinen Ringbuffer auf dem AVR "streamen". Das muss nicht besonders schnell sein, aber die Zugriffszeit ist dabei sehr wichtig, da RAM sehr knapp ist. :) Bevor ich jetzt herumprobiere, nur um herauszubekommen, dass die Zugriffszeiten normalerweise eh viel zu hoch sind, hab ich gedacht frage ich einfach mal.
Datenblatt lesen... Dieser Wert wird aber je nach Kartenmodell / Hersteller variieren. Ich würde deinen Puffer so gross wie möglich gestalten.... Wenn es Überläufe gibt, mehr Ram auftreiben oder schnellere Karte :)
Hmm, okay... ich dachte da gibt es Richtwerte oder Minima, wie zB "eigentlich immer unter 1ms" o.ä. Ich werde mich mal umschauen.
hallo, meine SD und auch MMC karte läuft auf mindestens 8 mhz in SPI READ_modus, und im 6 mhz WRITE_modus genau wie laut spezifikation, sollte jede neuere SD/MMC mitmachen ( bzw. SCHNELLER)) !!! gruss
Danke für die Antwort, aber das beantwortet meine Frage leider nicht... Laut Spezifikation laufen SD-Karten ja sogar bis 20Mhz SPI-Takt, die man mit einem AVR nie erreichen wird. :) Was mich interessiert ist die Zeit, die zwischen Absetzen eines Blocklesekommandos bis zum Eintreffen der Daten vergeht. Ich habe jetzt ein paar (ungenaue) Benchmarks gemacht, da kam ich mit meinen beiden Karten auf etwa 0.6-0.8ms. Vielleicht mache ich heute nochmal genauere Tests. Auf jeden Fall reicht das für meine Anwendung aus, wenn ich mich nicht verrechnet habe.
OK, nun habe ich einmal genau nachgemessen. Code ist im Anhang. Statt mit 500KHz SPI-Takt arbeite ich jetzt mit 6Mhz bei 12MHz CPU-Takt (AVR Mega8); dabei erreiche ich sehr gute Zugriffszeiten und Transferraten * ExtremeMemory "Premium" 1GB: ca. 300KB/s bei single block transfers, 0.19ms Zugriffszeit * Noname 1GB: ca. 255KB/s bei single block transfers, 0.43ms Zugriffszeit Bei multi block transfers scheinen die beiden Karten mit 330KB/s den Mikrocontroller (oder SPI-Bus?) auszulasten. Bei 16Mhz prognostizere ich dann etwa 440KB/s (einfach hochgerechnet). Vielleicht ist das ja für jemanden nützlich zu wissen.
Das Lesen geht bei SD-Karten im SPI-Modus eigentlich noch relativ flott, erst beim Schreiben gehen die Dinger leider in die Knie. Mit gängigen Karten habe ich zu tun, dass ich etwa 160 kByte/s schaffe ...
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.