Zugriffszeit auf SD/MMC über SPI

Gast #485560
Lesenswert?
• ▲
▼
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.
Gast #485573
Lesenswert?
• ▲
▼
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 :)
Gast #485936
Lesenswert?
• ▲
▼
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
Gast #486192
Lesenswert?
• ▲
▼
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.
Gast #486835
Lesenswert?
• ▲
▼
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.
Angehängte Dateien:
Gast #486929
Lesenswert?
• ▲
▼
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 ...

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