Lock/Unlock MMC mit Passwort

Gast #530589
Lesenswert?
• ▲
▼
Hallo Leute,

Ich habe schon alles versucht. Ich schaffe es aber nicht eine 
MMC/SD-Karte zu sperren bzw. zu entsperren.
Meine Routinen zum Lesen und Schreiben von Datenblöcken funktionieren 
soweit richtig.
Wie gesagt, nur das Setzen eines Passwortes schlägt fehl:
1
  // Blocklänge festlegen (=CMD16) auf 8 Byte
2
  mmc_sendCommand (16,8);
3
  // Wir erwarten 0 als Antwort
4
  responseR1(0);
5

6
  // Kommando zum Setzen des PW (=CMD42) und Stuffbits als Argument
7
  mmc_sendCommand (42,0xFFFFFFFF);
8
  // Wir erwarten 0 als Antwort
9
  responseR1b(0);
10
  
11
  // Startbyte senden
12
  mmc_sendByte(0xFE);  
13
  // Datenblock senden
14
  mmc_sendByte(5); // Lock und setPW
15
  mmc_sendByte(6); // PW ist 6 Bytes lang
16
  mmc_sendByte('1'); // Ab hier das PW selbst
17
  mmc_sendByte('2');
18
  mmc_sendByte('3');
19
  mmc_sendByte('4');
20
  mmc_sendByte('5');
21
  mmc_sendByte('6');
22
  // 16Bit-CRC senden (Dummy)
23
  unsigned char i;
24
  for (i=0; i<2; i++) mmc_sendByte(0xFF);
25
  
26
  // Wir erwarten DATEN KORREKT ERHALTEN
27
  mmc_wait_DataResponse();

Das Lustige ist, das verschiedene Karten verschiedenes Verhalten zeigen.
Eine Karte gibt ALLES OK zurück und ist danach aber nicht gesperrt, eine 
andere "hängt" sich direkt nach dem Senden des CRC, also vor dem letzten 
"mmc_wait_DataResponse()" quasi auf. Es kommen nur noch Nullen als 
Antwort (was BUSY bedeuten sollte), aber egal wie lange man wartet es 
tut sich nix mehr (Nullen bleiben). Nur ein Trennen der Karte von VCC 
und erneutes Anschließen erweckt sie wieder zum Leben.

Hat irgendwer vielleicht ne Ahnung, wo das Problem liegt oder vielleicht 
sogar schon Code?
Da die Daten unbedingt vor Fremdzugriff geschützt werden müssen, wäre 
dieses Feature sehr wichtig.

Vielen Dank im Voraus,
Erik

Antwort schreiben

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.

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.