Forum: Mikrocontroller und Digitale Elektronik SD-Karten und Sectorsize


von Bolo (Gast)


Lesenswert?

Hallo,

ich habe mir einen SD-Karten Treiber auf SPI-Basis für meinen uC 
geschrieben.
Dabei habe ich alles auf eine Sektor-Größe von 512 Bytes ausgelegt 
(hatte scheinbar ein altes Sec-Dokument).
Nun habe ich gesehen, dass neuere Karten auch andere Sektor-Größen haben 
können (1024/2048).

Ich frage mich aber ob das überhaupt ein Problem ist, da die 
Adressierung ja eh Byte-Weise ist. Sollte die Karte doch nicht stören, 
wenn man dann nur 512 Bytes liest?

von willi (Gast)


Lesenswert?

wenn die karte weiß das nur 512byte gelesen werden sollte sie das 
mitmachen, wenn sie allerdings damit rechnet das mehr gelesen wird, dann 
wird der befehl des auslesens für die karte nicht abgeschlossen, sie 
wartet sozusagen darauf die restlichen bits und bytes auszugeben

von Wolfgang Mües (Gast)


Lesenswert?

SD-Karten haben eine Sectorsize von 512 Bytes.

Alle, ohne Ausnahme. Das gilt auch für SDHC-Karten.

SD-Karten mit 2 GBytes haben im Descriptor eine Readblocksize von 
1KByte.
SD-Karten mit 4 GBytes haben dort 2 KByte.

(Sonst könnte man die Größe nicht korrekt berechnen. Mehr Platz ist im 
Descriptor nicht!).

SDHC-Karten haben deshalb einen anderen Descriptor.

Wenn man bei 2 oder 4 GByte SD-Karten die Readblocksize tatsächlich zum 
Lesen verwendet, fällt man auf die Nase. Es geht nicht.

Also: Readblocksize aus dem Descriptor immer nur zur Größenberechnung 
verwenden, und für den Datentransport immer 512 Bytes verwenden.

von Bolo (Gast)


Lesenswert?

Aha,

also dann sollte ja nichts schief gehen. Muss ich mal prüfen und so eine 
Karte beschaffen.

Ich setze im moment in meiner Init-Routine mit CMD16 die Blocklen auf 
512, das solle dann ja auch mit diesen Karten klappen.

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
Noch kein Account? Hier anmelden.