MMC in SPI Mode schreiben

Gast #232286
Lesenswert?
• ▲
▼
Hallo,
wer hat Eerfahrung mit dem Beschreiben von MMC Karten im SPI Mode? Das
lesen einzelner Sektoren funktioniert einwandrei. Bei dem Versuch einen
Sektor (512B) zu schreiben wird zwar der korrekte Response der Karte
ausgewertet aber wenn ich den gleichen Sektor anschließend lese ist
dieser nur mit 0 gefüllt. Hat jemand eine Idee?
Danke

Grüße
Dieter
Gast #232288
Lesenswert?
• ▲
▼
Hallo Alex,
das ganze ist an U.Radig Beispiel orientiert. Spannungversorgung über
Dioden 3,4V. Als "Pegelwandler dienen die Spannungsteiler bzw. DOUT
der Karte über eine Transistorschaltung.
Die Kommunkation läuft über Portpins des Mega8. Ich habe es auch schon
mit der CRC versucht, da in einer Doku von Hitachi steht das die Daten
bei falscher CRC nie gespeichert werden. Dies scheint aber auch nicht
die Ursache zu sein, zumal die Beispiel im WWW immer ohne die CRC
arbeiten.
Wie sah Dein Schaltungfehler aus?
Danke!
Gast #232291
Lesenswert?
• ▲
▼
Hi Dieter,
nur ne Idee: Sektor wurde nicht komplett geschrieben.
Nach den 512 Bytes schreibst du 2 Dummy CRC´s z.b. "FF".
Danach empfängst du ein Responsebyte.
Es muss XXXXX101 sein, sonst wurden die Daten nicht geschrieben!
Klappt bei mir prima, arbeite auch mit 3 Dioden an 5V.
Aber um künftig Fehler auszuschliessen werde ich auch einen
Festspannungsregler einsetzen, weil Alex hat Recht: die Fehlersuche
kann sehr nervig sein ;-)

lg Ralf
Gast #232292
Lesenswert?
• ▲
▼
Danke für Eure Antworten.
Bisher konnte ich den Fehler nicht finden. Das von Togger beschriebene
Responsebyte werte ich aus und es enspricht auch den Vorgaben. xx101
bedeutet CRC Fehler und Busy. Sollte also stimmen.
Wie sieht der Aufbau der Lese und Schreibadresse aus? Der ist doch
identisch oder gibt es dort Unterschiede?
Braucht die Karte evtl. einen weiteren Befehl um die Daten entgültig
abzulegen?
Danke!
Grüße
Dieter
Gast #232293
Lesenswert?
• ▲
▼
Nein Dieter,
XX101 bedeutet, dass die Daten (korrekt) übernommen wurden, dh. es
kamen auch 512 Bytes an, weil erst dann wird geschrieben.
Die Adresse muß am Sektoranfang beginnen, also 0, 512, 1024, ...
Nach dem Responsebyte würde ich empfehlen noch in einer Schleife auf
"FF" (not busy) zu warten.
Bei manchen Karten geht es auch ohne, ist aber sicherer und könnte auch
der Fehler sein.

lg Ralf
Gast #232295
Lesenswert?
• ▲
▼
In den Datenblaettern steht das sich direkt an der Karte ein Kondensator
von 1uF befinden soll. Viele Karten funktionieren auch wenn man das
etwas lockerer sieht. Manche dagegen nicht.

Ausserdem kann man bei SPI auch CRC einschalten. Danach schlaeft man
deutlich besser. .-)

Olaf

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.