» Poradna » Hardware

Arduino - pamet EEPROM

 |   |  Microsoft Windows XP Firefox 47.0

Nejsem si jisty, jak je to presne s pameti typu EEPROM u arduina. Prosim o upresneni. Docetl jsem se, ze zapis je mozny cca 100.000x, a pak uz neni garantovano co se zapise. Toto omezeni plati pro jednu bunku nebo pro celou pamet. Kdybych data rozlozil na vice pametovych bunek misto ukladani stale na jedinou, prodlouzil bych zivotnost pameti?

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Microsoft Windows 7 Firefox 45.0

Limit platí pro každou buňku, nikoliv pro celou paměť.Zdroj: www.atmel.com/dyn/resources/prod_documents/doc2526.pdf

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 97.0

paměti EEPROM se smažou a zapisují jako celek, nikoliv po buňce

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 55.0.2883.87

Neřeš blbosti, viděl si někde na netu, že někdo řešil, že by mu u arduina odešla paměť? Ne neviděl....

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 51.0

Do EEPROMkz sa zapisuju napr. nastavenia, ktore sa nacitaju alebo ukladaju raz za cas. Na castu manipulaciu mas pamet ram

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 55.0.2883.87

Pokud nezapisuješ 100x za sekundu prakticky non stop, tak to neřeš. Spíš si právě zajisti, abys nezapisoval dokola v nějakém nechtěném cyklu, nic víc není potřeba řešit.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Edge 14.14393

Zřejmě je to obdobné jako u SSD. To rozložení do "všech" buněk snad provádí řadič té EEPROM ???

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 55.0.2883.87

Ne, v takových malých MCU žádné takové řadiče nejsou. To do které buňky se co uloží je čistě na programátorovi. A ani není moc prostoru něco "rozkládat", ty EEPROM mají velikosti pár bajtů (256B, 1024B...). A opravdu neslouží pro časté ukládání dat, ale jen pro uložení nějakých nastavení a podobně. Ani na to nemají potřebnou rychlost, jsou celkem dost pomalé...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Edge 14.14393

Aha, popletl jsem to s pamětmi, co jsou v mobilech či tabletech.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 47.0

Kdyz jsi zminil ze pamet EEROM je dost pomala, plati to i ve srovnani s SD kartou. Potrebuji denne zapsat cca 96hodnot (365x zapis do jedne bunky/rok) a mit k nim co nejrychlejsi pristup. U EEPROM se mi libi, ze k hodnotam pristupujes primo pres adresu bunky, u SD karty musis precist bajt po bajtu,az se dostanes ke sve hodnote.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 55.0.2883.87

Nemusíš z SD karty číst bajt po bajtu. Existují funkce "seek", nevím teď co všechno umožňuje ta knihovna SD pro Arduino, ale seek je při práci s disky a pam. kartami základ.Potřebuješ denně zapsat 96 hodnot, a budeš je průběžně někam zálohovat? Ty EEPROM mají dost malou kapacitu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 47.0

data bych zalohoval jednou za den prave na SD kartu. Pro pripad vypadku bych rad data ukladal prubezne 4x/hod do EEPROM (ukladana hodnota <250). Pokud EEPROM dovoluje do jedne bunky cca 100.000 zapisu, tak mi to prijde jako nejlepsi varianta.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 55.0.2883.87

To máš za rok víc než 35000 zápisů. Na to bych použil buď nějaký PIC s větší RAM pamětí, nebo jiné Arduino s vyšším MCU s vyšším MCU od Atmelu s větší RAM. Podle toho co to celé dělá by se, zvlášť s PICem, dala snížit taktivací frekvence i třeba pod 1MHz, tím radikálně snížený odběr a zálohovat malým akumulátorem nebo 1-2F zálohovacím kondenzátorem. A data ukládat do RAM (ta je klidně i 32KB i víc). Nebo ho po výpadku napájení jen uspat.Nebo použít externí FLASH jakožto 8 vývodový integrák, jsou rychlé a kapacita i megabajty.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 55.0.2883.87

S tou 4MB FLASH bys to měl při 96 zápisů denně na víc než 100 let...

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Macintosh OS X AppleMAC-Safari 5.0

Nevím co to je za use case samozřejmě, ale nestačilo by ty data držet třeba hodinu v paměti a pak je zapsat? Hned jsme na čtvrtině. Já osobně mám arduino jen jako věc na připojení senzorů, kdy to obratem posílá přes tty dál, kde se to až ukládá. To samozřejmě taky ale není použitelné vždy...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 47.0

Taky ty data po 15minutach posilam pryc na zpracovani, ulozeni a zobrazeni, ale muze se stat ze druha strana bude mit vypadek a data nejaky cas nebudou ulozena, budou po celou dobu jen v SDRAM pameti, tak bych to chtel mit jeste pojistene kdyz uz je tu ta moznost s EEPROM.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 55.0.2883.87

Jo taky jde.Jen detail, v těch Atmelech jako i mnoha jiných malých MCU nejsou SDRAM paměti (druh DRAM, dynamické RAM), ale jen obyčejné SRAM paměti (statické RAM)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Android Chrome 63.0

SRAM není jen tak obyčejná. Je lepší než DRAM. V počítači se jako operační paměť používá DRAM z důvodu příznivější poměru cena/kapacita a SRAM je použita jako procesorová paměť (L1, L2, L3), která má kapacitu max. desítky MB

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 47.0

Ona by mi klidne stacila EEPROM velikosti 1KB, je to jen 96zapisu/den, na konci dne to spocitam a zapisu na SD a dalsi den znovu hodnoty prepisu, tak se vlezu do 96B.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 50.0

Rozhodně ne. U Arduina přímo adresuješ buňku, do které chceš zapsat a ze které chceš číst.EEPROM.read(adresa);EEPROM.write(adresa,data_bajt);

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 55.0.2883.87

To se rozhodně netýká jen Arduina. To se týká všech "malých" MCU (mikrontrolerů), a Arduino v podstatě není nic jiného než jeden MCU od Atmelu s jednoduchým kompilátorem. Např. MCU od Microchipu to mají stejně, člověk přistupuje přímo do jednotlivých buněk ať už přímo v Assembleru, nebo v Céčku.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Arduino, EEPROM