SD-Card Kommando CMD16

Gast #2513806
Das ist nicht richtig und beantwortet meine Frage nicht. Laut 
Spezifikationen kann bei Standard SD-Cards die Blockgröße ab 1 Byte 
eingestellt werden. Die Frage ist: beeinflusst die Göße der Blöcke die 
verfügbare Kapazität.
Gast #2513849
>Laut
>Spezifikationen kann bei Standard SD-Cards die Blockgröße ab 1 Byte
>eingestellt werden.

KANN , muss aber nicht.

Set length is valid for memory access
commands only if partial block read
operation are allowed in CSD.

In the case of a High Capacity SD
Memory Card, block length set by CMD16
command does not affect the memory
read and write commands. Always 512
Bytes fixed block length is used. This
command is effective for LOCK_UNLOCK
command.
In both cases, if block length is set larger
than 512Bytes, the card sets the
BLOCK_LEN_ERROR bit.
Gast #2513854
Andy, du bist ein echter Ignorant. Du weißt definitiv nicht wie eine 
SD-Card auf dieses Kommando reagiert. Warum antwortest du überhaupt? 
Willst du dich wichtig mache? Ich habe eine ernsthafte Frage gestellt - 
auf die ich eine ebensolche Antwort möchte. Schau dir die 
Spezifikationen auf https://www.sdcard.org/home/ an, dann siehst du, 
dass ich recht habe. Eine Standard SD-Card lässt sich mit CMD16 auf 
Blockgrößen ab 1 Byte einstellen.
Gast #2514418
>Andy, du bist ein echter Ignorant. Du weißt definitiv nicht wie eine
>SD-Card auf dieses Kommando reagiert.

Er scheint es wohl ausprobiert zu haben.
Wie reagieren deine Karten auf das Kommando?

>Warum antwortest du überhaupt?

Weil er dir helfen möchte?

>Willst du dich wichtig mache? Ich habe eine ernsthafte Frage gestellt -
>auf die ich eine ebensolche Antwort möchte.

Kann es sein das du etwas unhöflich bist? Kann es sein
das du Null Ahnung hast? Kann es sein das dir hier deshalb keiner
mehr eine Antwort gibt?

>Spezifikationen auf https://www.sdcard.org/home/ an, dann siehst du,
>dass ich recht habe. Eine Standard SD-Card lässt sich mit CMD16 auf
>Blockgrößen ab 1 Byte einstellen.

Aber nur beim Lesen, hab ich aber auch noch nie probiert.
Alle meine SD Karten liefern in WRITE_BL_PARTIAL eine 0.
Schreiben geht also nur mit 512Byte pro Sektor.

Deine merkwürdige Frage mit kleinerer Blocklänge deutet
darauf hin das du mit einem viel zu kleinen Controller
auf eine SD Karte zugreifen möchtest. Nimm was mit mindestens
1kB RAM, dann klappt das auch.

Und jetzt spar dir bitte eine Antwort in deinem üblichen
beleidigendem Stil.
#2514754
> Eine Standard SD-Card lässt sich mit CMD16 auf
> Blockgrößen ab 1 Byte einstellen.

Ich meine schon Karten gesehen zu habe, die READ_BL_PARTIAL = 0 liefern. 
Das ist dann für den Anwender doof, wenn eine Karte geht und eine andere 
nicht.

Karten mit gesetztem WRITE_BL_PARTIAL habe ich noch nie gesehen.

Ich würde immer die 512 Byte lesen und notfalls die Bytes wegschmeissen 
die nicht gebraucht werden. Ich habe hier schon sehr schlechte 
Erfahrungen mit "selten genutzten" SD Karten Features gemacht.

Zum Schreiben braucht man eh' einen 512 Byte Puffer.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.