Forum: Mikrocontroller und Digitale Elektronik Zwischenspeichern von großen Datenmengen


von Daniel S. (ds1982)


Lesenswert?

Hallo zusammen,

ich beschäftige mich mit einer Schaltung, die mittels einem Sensor für 
ein Einzel-"Bild" ca. 1500 Messpunkte per ADC einliest. Anforderung ist, 
dass mindestens 50, besser 100, noch besser 400Bilder/Sek aufgenommen 
werden sollen. Jeder Bildpunkt wird (derzeit) mit 8bit abgespeichert. 
Pro Bild fallen also ca. 1,5kByte an Daten an. Bei 50 Bildern/Sek fallen 
also pro Sekunde ca. 75kByte Daten an.

Die Daten sollen anschließend per Bluetooth an ein PC/Smartphone/Tablet 
oder ähnliches übertragen werden.

Für ein iPhone habe ich eine maximale Übertragungsrate von 220kbit/Sek 
(also 27,5kByte/Sek) gefunden, was nach meiner Rechnung deutlich zu 
langsam ist.

Es wäre evtl. denkbar die Auflösung der Bildpunkte herabzusetzen, aber 
selbst bei einer Halbierung auf 4Bit pro Messpunkt habe ich immer noch 
zu viele Daten.

Die einzige Lösung, auf die ich bisher gekommen bin ist, die Daten einer 
Messung (eine Messung dauert max. 5 Sekunden, es fallen also bei 50Hz 
Messfrequenz max. 375kByte an, zu viel für jeden RAM eines 
Mikrocontrollers) in einem externen Speicher zwischenzuspeichern und 
erst nach der Messung mit der Zeit die es eben braucht per BT zu 
übertragen. Leider habe ich mit sowas gar keine Erfahrung.

Derzeit benutze ich an Hardware ganz grob einen ATMega640 und ein 
Bluetooth-Modul, dem ich per UART oder SPI die Daten schicken kann. Der 
ATMega640 ist keinesfalls fest ausgewählt, dient mir im Moment nur zum 
rumspielen und zum Testen der Sensoren.

Gibt es externe RAM in einer solchen Größe? Sind die schnell genug? Wie 
schließe ich diese an meinen Prozessor an?

Wer ist nach den ganze Zahlen noch nicht verwirrt und hat evtl. eine 
andere Lösung parat um die Daten sinnvoll zu übertragen? BT ist dabei so 
gut wie gesetzt, Prozessor und weitere Peripherie kann evtl. 
getauscht/ersetzt/erweitert werden.
Würde mir ein Austausch der BT-Verbindung gegen Wifi das Leben deutlich 
leichter machen?

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Es gibt Megas mit externem Speicherinterface. Anschluss gemaess 
datenblatt

von Daniel S. (ds1982)


Lesenswert?

...da lese ich aber immer nur "up to 64Kbytes", was für meine Anwendung 
ja deutlich zu wenig ist.
Ich brauche ca. das 10-fache, also mindesten 0,5-1MB, falls ich mich 
nicht verrechnet habe!?

Macht ein Flash Sinn (also z.B. sowas: 
http://www.farnell.com/datasheets/1809894.pdf)? Ich zweifle wegen den 
"nur" 100.000 Schreibzyklen und nicht-flüchtig muss es ja auch gar nicht 
sein...
Ansonsten würde das mit dem seriellen reinschieben der Daten per SPI ja 
schon ganz gut passen, denn dann würde sich der Software-Aufwand auch in 
Grenzen halten.

von Christian K. (christian_rx7) Benutzerseite


Lesenswert?

SRAM wäre ideal für deine Anwendung, gibt es auch in der gewünschten 
Größe, kommen aber in unangenehmen Gehäusen daher.
Alternativ gingen auch serielle EEPROMs, da hättst du etwa 1000000 
Schreibzyklen.

Christian_RX7

von H.Joachim S. (crazyhorse)


Lesenswert?

Normale Eeproms sind zu langsam.
FRAM ginge.
Es gibts aber auch ziemlich grosse serielle SRAM.

von Daniel S. (ds1982)


Lesenswert?

Christian Kreuzer schrieb:
> SRAM wäre ideal für deine Anwendung, gibt es auch in der gewünschten
> Größe, kommen aber in unangenehmen Gehäusen daher.

ja, wegen der Gehäuse und weil ich die Software scheue zögere ich beim 
SRAM etwas...

> Alternativ gingen auch serielle EEPROMs, da hättst du etwa 1000000
> Schreibzyklen.

Aber da finde ich nur welche mit max. 1MBit -> zu klein !?

von Chris (Gast)


Lesenswert?

Daniel S. schrieb:
> ...da lese ich aber immer nur "up to 64Kbytes", was für meine
> Anwendung
> ja deutlich zu wenig ist.
> Ich brauche ca. das 10-fache, also mindesten 0,5-1MB, falls ich mich
> nicht verrechnet habe!?

in der appnote AVR1312 is auf seite 5 ein mode mit 24bit adressierung 
beschrieben
http://www.atmel.com/Images/doc8058.pdf

vieleicht hilft dir das ja

von Olaf (Gast)


Lesenswert?

> Die einzige Lösung, auf die ich bisher gekommen bin ist, die Daten einer
> Messung (eine Messung dauert max. 5 Sekunden, es fallen also bei 50Hz
> Messfrequenz max. 375kByte an, zu viel für jeden RAM eines
> Mikrocontrollers)

Renesas hat Microcontroller mit 500kByte bis zu 10MByte internen Ram. 
Man muss aber natuerlich ueber seinen schmalen AVR Horizont 
hinwegschauen.

Olaf

von Daniel S. (ds1982)


Lesenswert?

Olaf schrieb:

> Renesas hat Microcontroller mit 500kByte bis zu 10MByte internen Ram.

Hast du eine Bezeichnung? Ich finde zwar welche bei diversen Distri's ab 
1MB RAM und ROM-less. Die kosten aber ab 30EUR aufwärts, z.B. der 
R5S72620W144FP. Meinst du sowas?


> Man muss aber natuerlich ueber seinen schmalen AVR Horizont
> hinwegschauen.

... gut dass ich einen solchen nicht habe ;)

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

Daniel S. schrieb:
> ...da lese ich aber immer nur "up to 64Kbytes"

Ja und, du kannst doch zusätzliche Adressbits ausgeben und damit "Bänke" 
ansteuern mit n mal 64k, wobei n kaum eine Grenze nach oben hat. Es ist 
so überhaupt kein Problem, Mega- bis Gigabyteweise Daten zu speichern, 
nur muss man natürlich den Speicher kaufen, geschenkt gibts den nicht.

Für deine Zwecke reicht z.B.

http://de.rs-online.com/web/p/speicherbausteine-sram/0538160/

für 3 Euro. Gibts auch in DIP, aber wer weiss wie lange noch.

Georg

von Daniel S. (ds1982)


Lesenswert?

Georg schrieb:
> Daniel S. schrieb:
>> ...da lese ich aber immer nur "up to 64Kbytes"
>
> Ja und, du kannst doch zusätzliche Adressbits ausgeben und damit "Bänke"
> ansteuern mit n mal 64k, wobei n kaum eine Grenze nach oben hat. Es ist
> so überhaupt kein Problem, Mega- bis Gigabyteweise Daten zu speichern,

Jetzt verstehe ich das erst, die "Bänke" waren die Info die mir fehlte. 
So werde ich es machen. Dankesehr!

von chris (Gast)


Lesenswert?

Man konnte. Auch rpi nehmen und mit spi die daten darauf ablegen, und 
dieser uebermittelt diese dann ueber wlan.

von Ralf D. (rad)


Lesenswert?

Daniel S. schrieb:
> Hast du eine Bezeichnung? Ich finde zwar welche bei diversen Distri's ab
> 1MB RAM und ROM-less. Die kosten aber ab 30EUR aufwärts

Renesas R5F564MLCDFG hat 4MB Flash und 512 KB Ram und ist bei Glyn 
lieferbar.
Für 30€ bekommst Du fast drei davon ;-)

http://www.renesas.eu/media/products/mpumcu/rx/rx600/rx64m/rx64m_block.gif
http://www.renesas.eu/products/mpumcu/rx/rx600/rx64m/index.jsp

: Bearbeitet durch User
von Daniel S. (ds1982)


Lesenswert?

Ralf D. schrieb:
> Renesas R5F564MLCDFG hat 4MB Flash und 512 KB Ram und ist bei Glyn
> lieferbar.
> Für 30€ bekommst Du fast drei davon ;-)

... nur brauche ich das andersrum, nämlich mindestens 1MB RAM und eher 
wenig Flash.

von Ralf D. (rad)


Lesenswert?

Daniel S. schrieb:
> ... nur brauche ich das andersrum, nämlich mindestens 1MB RAM und eher
> wenig Flash.

In Deinem EP steht doch

Daniel S. schrieb:
> es fallen also bei 50Hz Messfrequenz max. 375kByte an

Wieso nun plötzlich min. 1MB Ram?

von Daniel S. (ds1982)


Lesenswert?

Ralf D. schrieb:
> Wieso nun plötzlich min. 1MB Ram?

weil da auch steht:
> mindestens 50, besser 100, noch besser 400Bilder/Sek aufgenommen
werden sollen.

für die 50Hz Messung würde das also gehen, für 100Hz schon nicht mehr 
und für eine ggf. längere Messung schon gar nicht.

von Ralf D. (rad)


Lesenswert?

ok, dann bedeutet in diesem Fall "mindestens" dann doch eher "zu wenig" 
;-)

von Falk B. (falk)


Lesenswert?

@Daniel S. (ds1982)

>Derzeit benutze ich an Hardware ganz grob einen ATMega640 und ein
>Bluetooth-Modul, dem ich per UART oder SPI die Daten schicken kann. Der

Na dann bleib in der (Groß)familie.

>Gibt es externe RAM in einer solchen Größe? Sind die schnell genug? Wie
>schließe ich diese an meinen Prozessor an?

Ja. Das geht direkt. ATxmega mit 16MB RAM!
Kann man fertig im laden für wenig Geld kaufen, ATXmega explained.

Beitrag "Re: Viel RAM am kleinen Controller"

http://www.atmel.com/products/microcontrollers/avr/xplained.aspx

von Daniel S. (ds1982)


Lesenswert?

Ralf D. schrieb:
> ok, dann bedeutet in diesem Fall "mindestens" dann doch eher "zu wenig"
> ;-)

"mindestens" bedeutet in diesem Fall "als Notlösung evtl. gerade so OK", 
aber lieber viel mehr ;-)

von Falk B. (falk)


Lesenswert?


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.