Grosse SD Card an 8-Bit Micro Controller?

16/10/2015 - 16:31 von Joerg | Report spam
Hallo Leute,

Fuer Longterm Data Logging, ein Jahr oder mehr, moechten wir eine 64GB
SD Card bzw. Micro-SD benutzen. Soll mit 9600bd beschrieben werden. Der
Digital-Ingenieur probierte das mit einem 8-bit uC (ATMega). Wenn es auf
der Karte voller wurde, lief das nicht mehr. Bei 10 draufgeladenenen
Files von je 1GByte konnte die Schreibgeschwindigkeit von 9600bd nicht
mehr gehalten werden.

Ich bin Analogix und weiss nicht so genau, was dabei alles abgeht, aber
das erscheint mir seltsam. Als ob ein Stausee ab einer gewissen
Wassermenge kein weiteres Wasser mehr annimmt, wenn man nur einen
5l-Eimer hat und zu schnell reinkippt.

Ist das normal? Muss man nur dafuer einen 32-bit ARM in die Schaltung
setzen?

Gruesse, Joerg

http://www.analogconsultants.com/
 

Lesen sie die antworten

#1 Matthias Weingart
16/10/2015 - 17:00 | Warnen spam
Joerg :

Hallo Leute,

Fuer Longterm Data Logging, ein Jahr oder mehr, moechten wir eine 64GB
SD Card bzw. Micro-SD benutzen. Soll mit 9600bd beschrieben werden. Der
Digital-Ingenieur probierte das mit einem 8-bit uC (ATMega). Wenn es auf
der Karte voller wurde, lief das nicht mehr. Bei 10 draufgeladenenen
Files von je 1GByte konnte die Schreibgeschwindigkeit von 9600bd nicht
mehr gehalten werden.

Ich bin Analogix und weiss nicht so genau, was dabei alles abgeht, aber
das erscheint mir seltsam. Als ob ein Stausee ab einer gewissen
Wassermenge kein weiteres Wasser mehr annimmt, wenn man nur einen
5l-Eimer hat und zu schnell reinkippt.

Ist das normal? Muss man nur dafuer einen 32-bit ARM in die Schaltung
setzen?



Problem 1 ist, das er die SD-Karte mit dem langsamen SPI Bus anspricht. Das
schafft mit dem ganzen FAT Handling etc. auf nem 8bit Controller nur so um
die 100kbit/s.
Problem 2 ist, das er nur in 512byte Blöcken rausschreibt. Das begrenzt die
Schreibrate noch extremer, weil da intern vermutlich ganze riesige Blöcke
von mehreren Megabyte neu geschrieben werden, auch wenn nur ein kleiner
Sektor reinkommt. Sind keine unbenutzen Sektoren da, muss er erst mal einen
halbleeren Block löschen, ev. darin befindliche Daten umkopieren und bevor
er den Minisektor da neu reinschreiben kann, das wird der Grund für die
langsamen Raten bei gefüllter Karte sein. Làsst sich umgehen, indem er nen
anderen Schreibmodus wàhlt (klappt aber vermutlich nicht mit SPI). D.h.
aber auch dass mit dem Streaming-Modus geschriebene Daten zwar in der SD-
Karte ankommen, aber erst nach ein paar Stunden wirklich geschrieben
werden. D.h. aber auch, das er noch ein paar mehr Buffer (für FAT und
Directory) vorhaltn muss, womöglich kein Platz im ATMega...
Problem 3 ist Crapware, schon mal Sandisk-Karten versucht?

ARM mit echter SD-Schnittstelle und grösserem internen RAM-Puffer würde es
sicherlich bringen, denk ich.

M.

Ähnliche fragen