mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lock/Unlock MMC mit Passwort


Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
  // Blocklänge festlegen (=CMD16) auf 8 Byte
  mmc_sendCommand (16,8);
  // Wir erwarten 0 als Antwort
  responseR1(0);

  // Kommando zum Setzen des PW (=CMD42) und Stuffbits als Argument
  mmc_sendCommand (42,0xFFFFFFFF);
  // Wir erwarten 0 als Antwort
  responseR1b(0);
  
  // Startbyte senden
  mmc_sendByte(0xFE);  
  // Datenblock senden
  mmc_sendByte(5); // Lock und setPW
  mmc_sendByte(6); // PW ist 6 Bytes lang
  mmc_sendByte('1'); // Ab hier das PW selbst
  mmc_sendByte('2');
  mmc_sendByte('3');
  mmc_sendByte('4');
  mmc_sendByte('5');
  mmc_sendByte('6');
  // 16Bit-CRC senden (Dummy)
  unsigned char i;
  for (i=0; i<2; i++) mmc_sendByte(0xFF);
  
  // Wir erwarten DATEN KORREKT ERHALTEN
  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

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sagen denn die Datenblätter zu den SD-Karten?
Ich könnte mir vorstellen, das diese Funktion nicht von allen Karten 
unterstützt wird.

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Obelix,

Nach der Definition sollten die Karten dann aber ja bei CMD42 ein 
"Unkwon Command" zurückliefern, was sie nicht tun. Stattdessen kommt 
"0", also ALLES OK zurück.

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...wie gesagt, teilweise kommt auch gar nichts mehr von der Karte?
Kann denn ein Kommando ne Karte "abstürzen" lassen?

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn wirklich keiner eine Idee, woran es liegen könnte?

Danke und Grüße,
Erik

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.