Im MMC Card Response Byte sind die Bits verschoben

Gast #1018212
Lesenswert?

Hallo,
ich bin einer der vielen, die Probleme haben, eine MMC Card richtig zu 
beschreiben. Komischerweise funktioniert die Initialisierung im SPI Mode 
richtig. Um einen Sektor auszulesen, sende ich Komando 17 und warte auf 
Response = 0 (kommt auch).
Allerdings, wenn ich dann auf das Startbyte 0xfe warte, wird dieses um 
ein Bit nach links versetzt ausgegeben. Danach hat des den Anschein, 
dass die Daten folgen. Das kann ich aber nicht mit gewissheit sagen.
Für Tipps zur Behebung meines Problems wäre ich sehr dankbar!
MfG
Günter
Gast #1018338
Lesenswert?

Danke Lothar!
Mit der CLK Polarität habe ich schon rumprobiert. Die ist richtig 
eingestellt.(senden = fallende Flanke/ empfangen = steigende Flanke) Die 
Karte ließ sich bei falscher CLK Polarität nicht initiallisieren.
Ich habe gerade herausgefunden, dass das Response vom Kommande 17 um 
1Bit versetzt ist. Kann vielleicht sein, dass die Karte nicht richtig 
synchronisiert ist? Wonach richtet sich das?
MfG Günter
Gast #1018365
Lesenswert?

Neue Erkenntnis!!!
MMC Karten von Kingston scheinen zu funktionieren. Ich hab es mal mit 
einer 128MB und einer 1GB probiert. Die sollten doch genormt sein. Hat 
Vielleicht einer auch schon solche Erfahrungen gemacht?
MfG Günter
Gast #1053832
Lesenswert?

Hi Also ich sitze genau an dem selben Problem !!!
Habe hier 2 SDKarten (2GB) (Transcend,Scan Disk), die Initialisierung 
scheint zu gehen bis das ich auf Data Token von 0xFE(Single Block Read) 
immer nur 0xFC(Multible Block Write) bekomme.

Hat Jemand eine Lösung parat? Habe leider nichts zu "Korrektur-shift" 
gefunden.

Besten Dank im vorraus
Gast #1053876
Lesenswert?

> Hat Jemand eine Lösung parat?

Das Timing des SPI stimmt nicht. Es kommen immer zwei Flanken
gleichzeitig die es laut MMC/SD Standard nicht sollen.
Keiner der vier SPI Modes ist perfekt geeignet. Ob es dann
in der Praxis geht haengt von der Karte, vom Pegelwandler
und der Wetterlage ab.
Ich glaub Elmchan hat das ganze auf seiner Homepage irgendwo
ausfuehrlicher erklaert.

Olaf
Gast #1053933
Lesenswert?

Hmm ok, also mal ne andere Karte(n) besorgen??

Gibts irgend einen Hersteller bei dem es immer geht? Ist aber schon 
irgendwie komisch ??
Wie meinst du das "es kommen immer 2 Flanken gleichzeitig" Müsste ich 
dann nicht schon das Problem vorher irgendwie kriegen ??

Besten Dank für die schnelle Antwort.
(Firma: TravelRec.) Persönliche Seite #1054042
Lesenswert?

>Das Timing des SPI stimmt nicht. Es kommen immer zwei Flanken
>gleichzeitig die es laut MMC/SD Standard nicht sollen.
>Keiner der vier SPI Modes ist perfekt geeignet.

Was ist denn das für ein Ammenmärchen? Alle meine Karten (mittlerweile 
10 von verschiedenen Herstellern) laufen mit Hardware-SPI und vollen 
25Mhz Bustakt an einem XMega. Dieses SPI unterscheidet sich nicht von 
dem der ATMegas. Schon mal daran gedacht, die Karten mit <400kHz zu 
initialisieren und erst nach erfolgter kompletter Init den Bustakt zu 
erhöhen? PullUp am Datenausgang der Karte?
Gast #1054064
Lesenswert?

>Schon mal daran gedacht, die Karten mit <400kHz zu
>initialisieren und erst nach erfolgter kompletter Init den Bustakt zu
>erhöhen?

Wenn man Widerstände als Pegelwandler nimmt passt
das dann auch zu dem Problem ;)
Gast #1054069
Lesenswert?

OK also Prpblem behoben !!!

Kurz vor dem Aufgeben bzw. beim Aufgeben. Nachdem ich mal meinen 
"DigiView Logic Analyzer" entfernt habe um diesen gegen die Wand zu 
schmeißen ;-) ging auf einmal alles !! Muss doch nicht so Hochohmig sein 
wie gedacht oder irgend ein anderer Grund.

Trotzdem Danke für eure Hilfe !
#1054371
Lesenswert?

Hi Leuts,

ist ziemlich interessant zu lesen was bisher geschah...

Ich für meinen Teil hänge so ziemlich an der gleichen Stelle bei der 
Benutzung von FATfs. Ini geht, sogar OCR-auslesen bringt plausible 
Ergebnisse.
Aber sobald ich mit CMD17 einen Block anfordere kommt nur Müll.
Deshalb bekomme ich die FAT-Tabelle nicht initialisiert.
Mit NTDISKVIEWER habe ich nachgeschaut. Die FAT steht genau da wo sie 
hin muss.

Beim Versuch das mit nem Oszi zu debuggen wird es nur noch schlimmer...
(da geht die Initialisierung der Karte nicht einmal)

Habt ihr nen Vorschlag was für einen Pegelwandler ich einsetzen kann?

Gruß
reini
Gast #1054472
Lesenswert?

Hi!
Das selbe Problem hatte ich am Anfang auch, bis ich auf aktive 
Pegelwandler umgestiegen bin. Die Ausgänge mancher Karten sind sehr 
hochohmig und können manchmal die AVR-Eingänge nicht schnell genug auf 
Pegel bringen. (Belastung durch C's)
Das gillt besonders bei 3,3/5V Systemen. Ich habe einfach 2 SMD 
Transistoren genommen und gut wars.

Viel Erfolg, Uwe

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren