Guten Tag, ich habe ein Projekt in dem ich ein Arduino benutze. Ich möchte nun Daten von einem externen EEPROM (oder ähnlichen ICs) in den flach speicher des Arduinos kopieren (Ohne einen weiteren Mikrocontroller). Gibt es irgend einen IC der diese Funktionalität hat oder gibt es eine andre Möglichkeit wie ich das umsetzen kann. Mit freundlichen Grüßen
Sicher nicht, das musst du dir selbst programmieren. Eventuell magst du so ein Produkt verwenden: https://www.kanda.com/products/Kanda/HH0120.html
Vielleicht verstehe ich die Frage falsch, aber mit einem SPI-Flash à la Winbond W25 sollte das doch gehen. Auf manchen SPI-TFT-Shields ist ein entsprechender Platz vorgesehen. Gruß Stefan
Fabian S. schrieb: > oder gibt es eine > andre Möglichkeit wie ich das umsetzen kann. Jawoll! Ein (eigener?) Bootloader, welcher dein EEPROM (oder was auch immer) lesen kann. z.B. https://github.com/mihaigalos/miniboot ungetestet
Der Arduino hat einen eigenen kleinen Eprom. Beschreiben mit passender Libs. Da du nicht an gibts welchen Arduino kann hier keiner eine Aussage zu Größe des machen. Ich benutzte den mini-Speicher um Einstellungen (die der User via Menü macht) in den Speicher zu legen. Warnung : Der Speicher soll max. 1000 x beschreibbar sein, lt vielen Seiten im Netz. Also benutzte ihn NICHT als Ersatz-Ram.
Schlaumaier schrieb: > Warnung : Der Speicher soll max. 1000 x beschreibbar sein, lt vielen > Seiten im Netz. Also benutzte ihn NICHT als Ersatz-Ram. Also im Datenblatt für das EEPROM des Mega8 oder des 328 steht da etwas andres als 1000. Dort steht auch wie man jederzeit ein byte aus einem Register (z.B.r16) im EEPROM speichern kann und auch wieder herauslesen kann. Wo die Daten herkamen spielt da keine Rolle ob aus dem RAM oder aus einer Schnittstelle. Nur, das Schreiben dauert für Kontrollerverhältnisse recht lange. Es passiert nicht in µsekunden sondern in einigen msekunden je byte. Um vor dem Ausschalten ein backup der Einstellungen oder eine Kalibrierung drin unterzubringen ist das EEPROM vorgesehen, nicht aber zum schnellen Zugriff bzw. schnellen Arbeiten innerhalb eines Programms.
Peter R. schrieb: > Schlaumaier schrieb: >> Warnung : Der Speicher soll max. 1000 x beschreibbar sein, lt vielen >> Seiten im Netz. Also benutzte ihn NICHT als Ersatz-Ram. > > Also im Datenblatt für das EEPROM des Mega8 oder des 328 steht da etwas > andres als 1000. Sorry war eine 0 zu wenig. Ab 10-Tausend wird es kritisch. Mein Fehler. Und damit das ganz klar ist, wir reden hier von den Speicher wo man Werte ablegen kann die nach den Stromlos + Neustart dann gelesen werden können. https://www.arduino.cc/en/Tutorial/LibraryExamples/EEPROMWrite <- eine Liste der Größe. Ich habe mal 25 Speicherstellen gebraucht also Höchstwert. Deshalb war mir die Größe relativ egal. Hauptsache etwas Platz. Der normale Programmierspeicher soll ca. 1-2 mio mal schaffen. Naja ich habe es nicht ausprobiert. Und da Hersteller gerne übertreiben, gehe ich dabei IMMER vom untersten Ende der Skala aus.
Schlaumaier schrieb: > Der normale Programmierspeicher soll ca. 1-2 mio mal schaffen. Welcher "normale Programmierspeicher" schafft 2 Millionen Löschzyklen? Und wo steht das? Schlaumaier schrieb: > Warnung : Der Speicher soll max. 1000 x beschreibbar sein, lt vielen > Seiten im Netz "Viele Seiten im Netz" sind eine schlechtere Quelle als das Datenblatt. Warum muss man für solch simple Fragen, die mit einem kurzen Blick ins Datenblatt beantwortet werden können, irgendwelchen Fricklern im Netz was glauben?
Schlaumaier schrieb: > Sorry war eine 0 zu wenig. Ab 10-Tausend wird es kritisch. Mein Fehler. Ich zitiere nun das Datenblatt des 328P, erste Seite, Vers Drei, Zeile vier: Write/erase cycles: 10,000 flash/100,000 EEPROM → nicht tausend, nicht zehntausend – nein, hunderttausend ist die Zahl.
:
Bearbeitet durch User
Hi >Sorry war eine 0 zu wenig. Ab 10-Tausend wird es kritisch. Mein Fehler. Für den EEPROM werden 100000 Schreibzyklen angegeben. >Der normale Programmierspeicher soll ca. 1-2 mio mal schaffen. Für den Flash werden 10000 Schreibzyklen garantiert. >Naja ich habe es nicht ausprobiert. Aber Unsinn schreiben. Scheint bei deinem Nickname schon Programm zu sein. MfG Spess
Arduino Fanboy D. schrieb: > Fabian S. schrieb: >> oder gibt es eine >> andre Möglichkeit wie ich das umsetzen kann. > > Jawoll! > Ein (eigener?) Bootloader, welcher dein EEPROM (oder was auch immer) > lesen kann. > z.B. https://github.com/mihaigalos/miniboot > *ungetestet* Habe https://github.com/Optiboot/optiboot mit Atmega 328p verwendet. Im Arduino Sketch wird der Flash-Bereich reserviert, bestehend aus n pages zu 128 bytes
1 | const uint8_t flashSpace[SPM_PAGESIZE * (NUMBER_OF_PAGES + 1)] __attribute__ (( aligned(SPM_PAGESIZE) )) PROGMEM = {"\x0"}; // |
Jede Page kann dann aus dem Arduino-Programm geschrieben werden indem man eine Funktion im bootloader aufruft, lesen geht ja sowieso:
1 | optiboot_writePage(flashSpace, ramBuffer, page); |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.