mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zugriffszeit auf SD/MMC über SPI


Autor: greg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: greg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, okay... ich dachte da gibt es Richtwerte oder Minima, wie zB 
"eigentlich immer unter 1ms" o.ä. Ich werde mich mal umschauen.

Autor: fubu1000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: greg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: greg (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.