Forum: Mikrocontroller und Digitale Elektronik MMC Read Single Block CMD1


von Thomas Weggen (Gast)


Lesenswert?

Guten Tag,

ich werkel derzeit an einem Projekt wo ich Daten von einen MMC mittels
des MMC Protokol lesen möchte.
Die MMC bekomme ich nun auch initialisiert und bis in den TranState.
Nun möchte ich mit CMD17 Read_Single_Block Bytes von der MMC lesen. Wie
muß ich nun hier genau vorgehen? Welche Register müssen wann gesetzt
werden und welche Commandos braucht die MMC?
Den Datenblättern konnte ich zwar einiges entnehmen, komme jedoch damit
nicht weiter und suche nun Hilfe und Rat von jemandem mit Erfahrungen
bei diesem Thema.

Mit freundlichen Grüßen

THomas Weggen

von Alex (Gast)


Lesenswert?

Warum orientierst du dich nicht an einem der zahlreichen
Beispiel-Sourcen?

z.B. hier in der Codesammlung
oder bei avrfreaks.net

von Steffen (Gast)


Lesenswert?

Das wird wohl daran liegen, dass die Beispiele die MMC Karte nicht im
MMC Interface, sondern im SPI Mode ansprechen ...

Viele Grüße
Steffen

von Marc S. (marc989)


Lesenswert?

Hi,

ich benutz die mmc auch im spi modus. deshalb kann ich dir leider nicht
mit dem mmc mod helfen. jedoch wüsste ich auch gern ein paar commandos,
z.b lese ich zur zeit jeden block einzeln aus. Bei vielen blöcken
dauert das relativ lange. es gibt kommandos mit denen man wohl mehrere
blöcke auf einmal lesen kann. wer weiss da was??

gruß marc

von Steffen (Gast)


Lesenswert?

Hallo Marc,

Es gibt drei verschiedene Arten im MMC Interface. Welche davon auch im
SPI Mode zur Verfügung stehen, weiß ich nicht.
Du hast die Möglichkeiten eines Blockread (was du wohl schon machst),
multiple Block read (liefert dir Blöcke, bis ein Stoppkommando folgt)
oder stream mode (das liefert einfach nur die Daten raus - allerdings
auch ohne CRC, so dass die Datensicherheit nicht mehr unbedingt
gewährleistet ist).

Bei einer Blockgröße von 512 Bytes und Multiple Block Read dürfte das
doch schnell genug sein, oder?

Eventuell kannst du auch die Frequenz des SPI erhöhen.

Viele Grüße
Steffen

von Marc S. (marc989)


Lesenswert?

Hi Steffen,

die blocks sind immer schnell gelesen, das problem ist nur, das
Initialisieren des nächsten blocks dauert ca 0,5s. also wenn man 100
blocks lesen will dauert das ganze dann 50s und das ist zu langsam.
Also such ich ein Kommando, bei dem man z.b. 100 blocks in einem
(warscheinlich "multiple block read").. oder per stream lesen kann.

wo gibts dazu tipps?

gruß Marc

von Steffen (Gast)


Lesenswert?

Hallo Marc,

genau das geht mittels Multi Block Read.

Im Datenblatt zur MMC Karte ist das alles erwähnt. CMD18 wäre
"READ_MULTIPLE_BLOCK" mit CMD23 kannst du festlegen, wieviele Blocks
übertragen werden sollen.

Näheres findest du in jedem Datenblatt zum Beispiel von Hitachi.
Viele Grüße
Steffen

von Thomas Weggen (Gast)


Lesenswert?

Guten Morgen,

ok, das mit den lesen war doch einfacher als vermutet, allerdings
sollte man das was man liest auch zu deuten wissen.
Die Daten die wir gelesen haben waren schon auch die richtigen die auf
der MMC standen, nur stand da leider nichts an der Stelle.
Wer nochmal von einen MMC versucht zu lesen, sollte sich vorher mit MBR
und VBR usw. auseinander setzten.

Gruß THomas

von Jochen (Gast)


Lesenswert?

Hallo Thomas

Ich stehe genau an der Stelle, wo Deine Frage hier ansetzte: also CMD
17. Karte ist initialisiert, CMD 7 ist raus, und jetzt???
Kommt nun zuerst das CMD 17 und dann die Initialisierung im µC?? Oder
umgekehrt??
Ich habe es so weit, dass ich im MMINT des AT89 die Meldung bekomme
"CMD geschickt und Response empfangen". Allerdings bekomme ich die
dazugehörenden Meldungen im MMSTA NICHT! Also "Response korrect" und
"CRC16 correct".

Wo finde ich Informationen über den MBR/VBR der Karten?? Hast Du
irgendwelche pdf's o.Ä.???

Wäre Klasse, wenn Du Zeit hättest, hier noch ein bisschen zu
"erzählen". Du kannst mir auch gerne mailen.

Vielen Dank im Voraus

Jochen

von Jochen (Gast)


Lesenswert?

Ein Gutes Neues Jahr an Alle!

Sehe gerade, dass da wohl irgendwas schief gelaufen ist. Warum mein
Beitrag 1000x da drin steht ist mir unerklärlich.. naja..

Konnte das "Problem" mit dem Auslesen Lösen. Nun gehts darum, die MP3
Musik durch den µC auf den Lautsprecher zu bekommen. Und genau hier
hänge ich jetzt.. Vor allem das Einstellen der Frequenzen macht mir
noch Sorgen. Und wo genau mein MP3 auf der MMC beginnt.. ( laut
Datenblatt liest der µC selbst aus dem MP3 frame aus, um welche Art von
MPEG es sich handelt?!??!... )

naja. Hoffe ich kriege das noch so schnell wie möglich hin. Die Zeit
drängt .. :(

Viele Grüsse

Jochen

von jochen (Gast)


Lesenswert?

OK

Also ich weiss nun, dass das MP3 mit FF FA/FB beginnt. Dann werde ich
also mal versuchen, ab diesem Punkt die Daten über den MP3 Dekoder, den
Audio Dekoder und den DAC auf den Lutsprecher zu bringen.

Wenn jmd. trotzdem Tips dazu hat, bin ich sehr dankbar.

Viele Grüsse

Jochen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.