Forum: Mikrocontroller und Digitale Elektronik MMC/SD schreib Puffer sparen


von Daniel R. (zerrome)


Lesenswert?

hallo,

wäre es möglich, byteweise auf eine mmc/sd karte zu schreiben?
also z.b. kommando block schreiben an karte und dann häppchenweise nur 
512 bytes an daten, mit pausen dazwischen (halt in dem rhythmus wie die 
daten anfallen) ...
geht die karte irgendwann in idle, oder bleibt die in der aktion, die 
sie grade ausführt, macht nur nix ohne takt?
man könnte dann so den puffer zum schreiben sparen.

ist das halbwegs verständlich erklärt?

von Matthias L. (matze88)


Lesenswert?

Hi!

Das funktioniert so, du darfst nur die Karte nicht selbst ins Idle 
schicken (Also den ChipSelect während der kompletten 512 Byte aktiv 
lassen!). Ich bin derzeit auch bei einem Projekt, bei dem ich Daten auf 
SD Karte logge (allerdings langfristig, d.h. 512 Byte fallen vll in 1 
Minute an), da puffere ich die Daten direkt in der Form, wie sie auf die 
SD Karte sollen und schreibe dann den 512 Byte Puffer, sobald er voll 
ist. In der Zwischenzeit wird die SD Karte komplett abgeschaltet, das 
spart ne Menge Strom (SD ist dann nur < 0,5s in der Minute aktiv). Wenn 
dein Ram natürlich so knapp ist, dass du keine 512 Byte entbehren 
kannst, musst du die Karte halt die ganze Zeit aktiv halten und Byte für 
Byte ausgeben, wenn du es hast/schreiben willst. Dazu nen Zähler, dass 
du weißt, wann 512 Byte rum sind und dann die SD wieder schlafen legen.

Matze

von Simon K. (simon) Benutzerseite


Lesenswert?

Matthias Larisch wrote:
> Hi!
>
> Das funktioniert so, du darfst nur die Karte nicht selbst ins Idle
> schicken (Also den ChipSelect während der kompletten 512 Byte aktiv
> lassen!).

Soweit ich weiß, muss der Chipselect während der gesamten Übertragung 
aktiv bleiben, sonst wird das Schreiben abgebrochen (wenn Anzahl Bytes < 
512)

von Daniel R. (zerrome)


Lesenswert?

hallo,

das klingt gut, wegen dem strom hab ich keine probleme, aber ram is 
knapp.
werd gleich nochmal meine schaltung auf dem steckbrett zusammenstecken 
und bischen testen.

güße daniel

von J. K. (rooot)


Lesenswert?

Hallo,

Aus eigennützigen Gründen würde mich interresieren:

Welche Libery verwendest du für die SD - Karte?

mfg
J.K

von Daniel B. (und3rt4ker)


Lesenswert?

Melde ebenfalls Interesse, thx
Und wie hast du sie angeschlossen?(Pegelwandler etc.)

Mfg und3rt4ker

von Daniel R. (zerrome)


Angehängte Dateien:

Lesenswert?

hallo,
hab meine eigene lib geschrieben, bzw bin noch dabei...
lesen ist kein problem mit bis zu 220 KBytes/sec. Bei der 
schreibunterstüzung bin ich grad die beste methode am suchen.
angeschlossen ist die karte über spannungsteiler, läuft mit 10mhz spi 
noch ohne probleme mit kurzen kabeln. als mmc/sd slot hab ich einen 
alten isa stecker etwas gekürzt, passt da super rein (siehe photo). nur 
als stromversorgung hab ich einen drop down regler genommen, weil die 
karten wohl teilweise viel strom ziehen.

das haupt problem, dass ich sehe ist das schreiben der fat, wenn man das 
nicht puffern kann ist das extrem schlecht, weil pro sektor der fat, bei 
fat32, 128 schreib vorgänge anfallen...
also verwende ich beim lesen einen 512 byte lesepuffer und beim 
schreiben wird dieser zum fat puffer und die daten werden byteweise 
sofort auf die karte geschrieben...

grüße daniel

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.