G
Günther Jehle
Guest
Hallo!
Wir machen gerade ein Projekt, indem wir eine MMC als Speicher verwenden
möchten. Dazu haben wir uns die Spezifikation von SanDisk
(http://www.sandisk.com/pdf/oem/ProdManualMMCv5.2.pdf) und einige Projekte
angeschaut. Wir möchten auf jeden Fall die SPI Schnittstelle der MMC
verwenden, da diese wesentlich einfacher anzuwenden ist.
Was wir bis jetzt erreicht haben:
Wir können die Karte initialisieren (Kommando 0). Wir warten, bis die Karte
im Idle Zustand ist (bis Kommando 1 den Wert 0 liefert). Wir können
eigentlich alle Befehle anwenden, bis auf Lesen und Schreiben eines Sektors.
Problem:
Beim Lesen und Schreiben eines Sektors haben wir arge Probleme. Wir haben
einen Logikanalyser zur Verfügung und haben uns da das Timing angeschaut.
Beim Einlesen und Schreiben, scheint die Karte in einen anderen Zustand zu
gehen. Die Daten sind normalerweise byte-aligned, d.h. wenn wir 8 Takte
rausschreiben, bekommen wir beim ersten Takt das MSB und beim letzten das
LSB. Beim Ein- und Auslesen kommt uns aber vor, ist die Karte nicht mehr
byte-aligned. Schreiben eines Sektors geht (per Kartenleser nachgeprüft),
die Statusantwort ist dann aber falsch. Gelesen wird irgendwie Blödsinn
(aber ungefähr 512 Byte Blödsinn...). Dieser Blödsinn kann man
interpretieren wie man will (durch bitweise verschieben), es sind nicht die
geforderten Daten. Im Groben haben wir uns an
http://home.wtal.de/Mischka/MMC/ gehalten. Verschiedene andere Projekte sind
im Groben gleich. Mit Chipselect und 0xFF Bytes ( quasi NOP- Bytes) haben
wir so ziemlich alle Möglichkeiten durchprobiert.
Sollten wir hier nicht alle nötigen Daten zur Verfügung gestellt haben,
bitte Nachfragen. Mittlerweile glauben wir, dass die phsyikalische
Verbindung zur MMC nicht richtig ist. Hier haben wir einen 5 Volt AVR, eine
3.3 Volt Versorgung für MMC und die Signale von AVR zur MMC sind per
Spannungsteiler heruntergeteilt. Im Oszi sind die Signale schön steilflankig
und ohne Überschwinger.
Wer hat schon MMC per SPI angesprochen? Was könnten wir falsch gemacht
haben? Wir sind für jeden Hinweis sehr Dankbar!
Bis bald
Günther Jehle, Anton Zöchbauer, Siegfried Brandstätter, Walter Duda und
Christian Zillner
Wir machen gerade ein Projekt, indem wir eine MMC als Speicher verwenden
möchten. Dazu haben wir uns die Spezifikation von SanDisk
(http://www.sandisk.com/pdf/oem/ProdManualMMCv5.2.pdf) und einige Projekte
angeschaut. Wir möchten auf jeden Fall die SPI Schnittstelle der MMC
verwenden, da diese wesentlich einfacher anzuwenden ist.
Was wir bis jetzt erreicht haben:
Wir können die Karte initialisieren (Kommando 0). Wir warten, bis die Karte
im Idle Zustand ist (bis Kommando 1 den Wert 0 liefert). Wir können
eigentlich alle Befehle anwenden, bis auf Lesen und Schreiben eines Sektors.
Problem:
Beim Lesen und Schreiben eines Sektors haben wir arge Probleme. Wir haben
einen Logikanalyser zur Verfügung und haben uns da das Timing angeschaut.
Beim Einlesen und Schreiben, scheint die Karte in einen anderen Zustand zu
gehen. Die Daten sind normalerweise byte-aligned, d.h. wenn wir 8 Takte
rausschreiben, bekommen wir beim ersten Takt das MSB und beim letzten das
LSB. Beim Ein- und Auslesen kommt uns aber vor, ist die Karte nicht mehr
byte-aligned. Schreiben eines Sektors geht (per Kartenleser nachgeprüft),
die Statusantwort ist dann aber falsch. Gelesen wird irgendwie Blödsinn
(aber ungefähr 512 Byte Blödsinn...). Dieser Blödsinn kann man
interpretieren wie man will (durch bitweise verschieben), es sind nicht die
geforderten Daten. Im Groben haben wir uns an
http://home.wtal.de/Mischka/MMC/ gehalten. Verschiedene andere Projekte sind
im Groben gleich. Mit Chipselect und 0xFF Bytes ( quasi NOP- Bytes) haben
wir so ziemlich alle Möglichkeiten durchprobiert.
Sollten wir hier nicht alle nötigen Daten zur Verfügung gestellt haben,
bitte Nachfragen. Mittlerweile glauben wir, dass die phsyikalische
Verbindung zur MMC nicht richtig ist. Hier haben wir einen 5 Volt AVR, eine
3.3 Volt Versorgung für MMC und die Signale von AVR zur MMC sind per
Spannungsteiler heruntergeteilt. Im Oszi sind die Signale schön steilflankig
und ohne Überschwinger.
Wer hat schon MMC per SPI angesprochen? Was könnten wir falsch gemacht
haben? Wir sind für jeden Hinweis sehr Dankbar!
Bis bald
Günther Jehle, Anton Zöchbauer, Siegfried Brandstätter, Walter Duda und
Christian Zillner