Probleme mit MMC

May 17, 2004 5 Replies

Hallo!



Wir machen gerade ein Projekt, indem wir eine MMC als Speicher verwenden möchten. Dazu haben wir uns die Spezifikation von SanDisk

formatting link
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

formatting link
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


Hallo,

Problem hat sich jetzt endlich nach zwei Wochen gelöst. Problem waren die Flanken (des Taktes). Wir hatten am Oszi schöne Flanken. Bei genauerem Hinsehen hatten diese Flanken eine Anstiegszeit von 100ns. Unser Takt lauft zur Zeit probehalber mit 20kHz, also weit von solchen Dimensionen entfernt... hätten wir gedacht. Laut Datenblatt braucht die MMC eine Flankenanstiegszeit von

Hallo Günhter! Wir hatten zwei Probleme in den Jahren mit den MMC:

1) Das Timing ist exakt einzuhalten (rasiermesserscharf). 2) Irgendwann hatten wir auf einmal Probleme mit der Taktflanke. Wir übernahmen dann die Daten mit der anderen Flanke, auf einmal ging alles wieder.

Leider habe ich genauere Hintergründe vergessen, alles zu lange her. HTH lg Peter

"Günther Jehle" wrote in news:40a970ce$0$19096$ snipped-for-privacy@newsreader01.highway.telekom.at:

Normalerweise schon (bis auf irgendwelche Timingprobleme ;-). Am besten SD-card slots bestücken, dann passen MMC und SDcards gleichermassen (die SD ist dicker).

M.

Bitte auf mwnews2@pentax.boerde.de antworten.

Hallo,

Günther Jehle schrieb:

Jain, es kommt auf die Initialisierung an, die ist etwas unterschiedlich. soweit ich mich erinnere braucht eine Sorte einen bestimmten Pegel(wechsel) an der CS-Leitung, bei der anderen kann man die auch fest verdrahten (wenn man es nur mit einer Karte zu tun hat).

Ist doch wurscht, so sind die Specs und die sind eben nicht immer mit gebastelten Lösungen (Spannungsteiler an Clock) einzuhalten.

Bei niedrigen Takraten kommt man mit einem Phillips 74LVC125 als bidir. Pegelwandler aus wenn man nicht unbedingt die SOut-Leitung tristaten muss.

Ich halte allerdings das Timing für alles andere als kritisch, laut specs kann man sogar den Takt in weiten Grenzen während der Übertragung varieren, hab ich aber nicht ausprobiert.

Viel wichtiger ist das man nicht auf die Idee kommt das 3,3V Ausgangs- signal an einen 5V-CMOS-Eingang zu legen der min. 3,6V als High sehen will. Dann funktioniert es vielleicht, vielleicht auch öfter, aber eben nicht immer.

Hallo.

Wir haben auch ein Problem mit MMC/SPI. Unsere Aufgabe ist es, ein Programm zu schreiben für einen Microcontroller (ADUC 824) um eine MMC per SPI zu schreiben bzw. lesen. Hat damit schon jemand Erfahrungen gesammelt? Muß nicht unbedingt mit genau diesem Controller sein - alle Hinweise würden uns helfen. Günther: Ist der Source Code von eurem Projekt irgendwo online?

Tobias.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required