Forum: Mikrocontroller und Digitale Elektronik Get Request mit Atmega328 und ENC28J60


von Mark K (Gast)


Lesenswert?

Hallo zusammen,
wie kann ich Daten aus einer 20Kb großen Seite parsen wenn ich nur 2kb 
RAM habe?
Hat Irgendjemand eine Idee für einen Workaround? Partial Get oder so?

Gruß
Mark

von C. H. (hedie)


Lesenswert?

Externes SPI Ram anschliessen wäre eine möglichkeit.

Auf die Dauer wäre das wohl auch das beste, da du mit einer 20kB seite 
ja ein verhältnismässig kleines Beispiel gemacht hast.

Falls du die Daten nach Stromausfall behalten möchtest, nehme eine MRAM 
ansonsten ein normales SRAM

Für MRAMs schaue dir mal die Teile von Everspin an...

von Frank K. (fchk)


Lesenswert?

Microchip hat 32kB SPI SRAM: 23K256

fchk

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

Also entweder du schaffst es die gewünschten Daten aus dem Stream (also 
den einzelnen Ethernetframes) zu parsen - dürfte schwirig werden, da die 
betreffende Stelle sich ja auf mind. 2 Pakete verteilen kann. Für einen 
gesuchten String noch machbar.
Oder du schreibst die Daten erst mal in einen Speicher EEProm, SD-Karte, 
... und suchst dann anschließend dort.

Sascha

von Mark K (Gast)


Lesenswert?

das geht ja flott hier.
danke für die Antworten, werde mir das mal durch den Kopf gehen lassen. 
Ich habe eigentlich gehofft ich komm ohne zusätzlichen RAM aus.

von C. H. (hedie)


Lesenswert?

Mark K schrieb:
> Ich habe eigentlich gehofft ich komm ohne zusätzlichen RAM aus.

kannst du ja auch... Aber es ist ein bisschen aufwändiger, und rechen 
intensiver!

Also ich persönlich, würde die Variante MRAM oder SRAM nehmen, da du 
damit problemlos zuerst alle Daten hinüber schaufeln kannst, und dannach 
"gemütlich" parsen.

Wenn du es geschickt machst, und das RAM an den SPI Bus des ENJs hängst, 
sparst du sogar nochmals code und rechenzeit.

von Mark K (Gast)


Lesenswert?

ok,ich hab hier noch ein AT24C512 eeprom rumliegen. Geht das damit? Wenn 
ja wie?

von C. H. (hedie)


Lesenswert?

Mark K schrieb:
> ok,ich hab hier noch ein AT24C512 eeprom rumliegen. Geht das damit? Wenn
> ja wie?

Es würde gehen...

Also 512kBit entsprechen 65KByte da du ja pro byte 8 Bit benötigst

also 512k / 8

Ansteuern musst du das Teil per I2C dazu findest du viel im Wiki auf 
dieser Seite...

Jedoch sind die Schreib zyklen eines EEPROM beschränkt. Ein EEPROM kann 
etwa 100'000 Schreibtyklen aushalten (laut Datenblatt deines Typs)

100'000 ist ne menge aber bedenke dies einfach. EEPROMs sind nicht dazu 
gemacht um stetig ändernde Daten aufzunehmen sondern eher für 
Konfiguartions Daten, Abgleichwerte oder sonstiges ähnliches.

Aber für den Anfang zum Experimentieren tut es dieses EEPROM auf alle 
fälle!

von Mark K (Gast)


Lesenswert?

Angeschlossen hab ich es schon. Es läuft auch aber meine lib erlaubt mir 
nur max 32 bytes zu schreiben. Wie bekomme ich da jetzt 20kB rein ohne 
sie zwischenzuspeichern?

von Sascha W. (sascha-w)


Lesenswert?

also zunächst mal hast du ja höchstens 14xx Bytes aus einem Paket die du 
am Stück speichern musst. Entweder du suchst dir ne andere lib, oder 
passt sie an oder teilst die Schreiboperationen in 32Byte Blöcke auf.

Sascha

von Mark K (Gast)


Lesenswert?

hm ok, soviel Zeit will ich da jetzt nicht rein investieren. Werd wohl 
auf einen ATxmega128A1 umsteigen, da kann ich dann die 20kB in RAM 
laden, oder?

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.