Forum: Mikrocontroller und Digitale Elektronik MMC Karte / EEprom als Pufferspeicher


von tubie (Gast)


Lesenswert?

Hallo zusammen,

habe hier mal wieder ein kleines Problem, ich bin gerade bei der Planung 
meiner 2. Heizungssteuerung. Bevor ich mir mit der Software alles 
verbaue, möchte ich mal einen Gedankengang weiterverfolgen. Ich möchte 
die eingehenden Messwerte speichern und anschließend zum PC übertragen. 
TCP/IP & co fällt aus wegen zu schwer und zu komplex.

Externes EEprom (begrenzter Speicher) über I²C oder MMC (viel 
Speicher)Karte, anschließend die Daten über RS-232 abrufen.

Wenn die Karte im System verbleibt, kann man diese einfach Sektor für 
Sektor beschreiben ohne FAT16 zu benötigen? Nachteil immer mit dem 
Laptop in den Heizungskeller. Über einen gesonderten Menüpunkt würde ich
 - Daten auslesen (übertragen)
 - Daten löschen
anwählen können um damit den kompletten Inhalt der Karte zum Laptop zu 
übertragen bzw. nach erfolgreicher Übertragung die Karte zu löschen oder 
einfach weiterzuschreiben. Wenn die Daten alle 2-12 Monate ausgelesen 
werden, hält sich der Aufwand in grenzen ;)

Noch günstiger wäre natürlich ein linearer Speicherzugriff an ADDR 0 
steht die Position des letzten Eintrages und dann könnte ich die Daten 
nur noch reinschieben. Ist sowas mit einer MMC Karte möglich?


Gruß,
Tubie

von tubie (Gast)


Lesenswert?

So...

habe mich mal ein wenig in die ganze sache eingelesen...

Ich meine irgendwo mal gelesen zu haben, das die Sectorengröße bei den 
meisten MMC Cards variabel ist.

hier:
http://elm-chan.org/docs/mmc/mmc_e.html

habe ich mich informiert und habe noch ein paar fragen:

Nach der initialisierung CMD1 ist die Karte normal geöffnet und ich kann 
lese /schreib Operationen durchführen? Mit CMD16(SET_BLOCKLEN) kann man 
die größe der Blöcke, die geschrieben werden verändern. Wenn ich pro 
Schreibvorgang nun 30 Bytes schreiben möchte, so könnte ich doch diesen 
wert auch auf 30 setzen und mit CMD17 (READ_SINGLE_BLOCK) den 
entsprechenden Datensatz aus der karte wieder laden (eben diese 30 
Bytes)

gruß,
Tubie

von Uwe (Gast)


Lesenswert?

Hi!
<Mit CMD16(SET_BLOCKLEN) kann man die größe der Blöcke, die geschrieben 
<werden verändern.

Nein, richtig lesen. Die Schreibblocklänge ist immer auf 512 Byte 
festgelegt, nur lesen geht auch kürzer.

MFG Uwe

von tubie (Gast)


Lesenswert?

Hallo Uwe,

in der Beschreibung hinter CMD16 steht aber "Change R/W block size". Mal 
sehen, vielleicht schaffe ich es morgen mal eine MMC Karte an einen µC 
zu klemmen. Dann weiß ich genaueres. Wäre natürlich absolut Genial. Dann 
könnte ich wirklich die einzelnen Datensätze adressieren und bräuchte 
mir um deren Anfang keine Gedanken machen. Vielleicht aber nur ein 
Tippfehler.


Gruß,
Tubie

von Sven DerSchreckliche (Gast)


Lesenswert?

Na da bin ich gespannt, denn die Block-size bleibt auf 512. Steht in 
jeder MMC-Spezifikation. Da gibts keine Ausnahme...

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.