MMC/SD schreib Puffer sparen

OP #917542
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?
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
Persönliche Seite
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)
OP
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
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.