Stránka 1 z 1
Zápis do EEPROM při výpadku napájení
Napsal: 06 bře 2012, 12:15
od feliz_navidad
Mám aplikaci s PIC16F690, která počítá výrobky. Při vývoji nebyla požadována záloha dat, bohužel se v provozu ale ukázalo, že dochází k výpadkům napájení. Řešením by byl zápis aktuálního stavu do EEPROM, bohužel vzhledem k deklarovanému počtu cyklů zápisu do datové EEPROM 1000000 by za několik měsíců bylo toto překročeno. Nemám již žádný volný pin, který bych mohl použít jako vstup komparátoru a vyhodnotit pokles napájení a data uložit. Dobastlovat zálohu dat pomocí záložního zdroje se mi nechce, navíc nějaké baterky, o které se musí někdo občas postarat jsou zde nepřijatelné. Můj úsudek je zkalený chřipkou, nenapadá někoho nějaká idea, jak toto řešit?
Napsal: 06 bře 2012, 12:26
od rnbw
Ak nemas volny pin, tak ti ostava jedine nejako "zneuzit" niektory pouzity pin.
Napsal: 06 bře 2012, 12:42
od MiroH
Tomu nerozumiem, do EEPROM sa ukladá iba pri výpadku napájania a to mi nehovor, že za pár mesiacov máte 1000000 výpadkov. To treba riešiť s elektrárňami.
Inak ak vypadne napájanie, v prerušení ho zistím a kondenzátory na zdroji mi podržia napájanie toľko, aby som mohol zazálohovať všetko čo potrebujem. Tak sa to robí normálne a potom aj EEPROM vydrží životnosť výrobku.
Napsal: 06 bře 2012, 12:51
od mikollar
Pise ze nema volny pin na zistovanie vypadku, tato PIC nema ani LVD cize sa neda ani detekovat pokles napjania.
Ako pise rnbw, mozno by slo pouzit niektory vyuzity vstupny pin a sem tam ho prepnut na analog a provnat internym komparatorom napatie na nom.
Napsal: 06 bře 2012, 13:01
od Andrea
Tak dát PICu zálohu napájení na >1minutu a každou minutu zapsat do EEPROM počet výrobků, když se bude zapisovat cyklicky do 32 buněk, tak:
1 min * 32 * 1000000 / 60 / 24 / 365 = 60 let
Když vypadne napájení, výroba se zastaví a PIC nejdéle do minuty zapíše poslední stav.
Napsal: 06 bře 2012, 13:04
od Habesan
Ten milion zápisů je pro jednu buňku EEPROM, když rovnoměrně vystřídáš všechny, odejdou až po letech.
Jestli se ty výrobky vyrábí na miliony, nestačilo by je počítat po tisících?
Napsal: 06 bře 2012, 13:06
od rnbw
Alebo tam dat velky elyt a stav zapisat vtedy, ked sa vyroba zastavi na nejaky cas.
Napsal: 06 bře 2012, 14:11
od feliz_navidad
Já věděl, že na něco přijdete:-) Preferuju čistě SW řešení, nechce se mi něco dobastlovat do hotového kusu. Upravím formát dat, takže pro zápis mi budou stačit jen dvě buňky paměti (max série je menší než 65535 kusů) a budu cyklicky střídat buňky EEPROM vždy po skončení série. Takže budu mít celkem 128 miliónů zápisů a to mi bude stačit. Díky, dnes jsem zcela bez inteligence.
Napsal: 12 bře 2012, 08:35
od termit256
Pokud mas vytahlou I2C muzes pouzit MRAM.