Zápis do EEPROM při výpadku napájení

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
feliz_navidad
Příspěvky: 959
Registrován: 15 říj 2009, 00:00

Zápis do EEPROM při výpadku napájení

#1 Příspěvek 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?
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#2 Příspěvek od rnbw »

Ak nemas volny pin, tak ti ostava jedine nejako "zneuzit" niektory pouzity pin.
Uživatelský avatar
MiroH
Příspěvky: 56
Registrován: 28 led 2011, 00:00
Bydliště: Nitra

#3 Příspěvek 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.
Uživatelský avatar
mikollar
Příspěvky: 1477
Registrován: 26 pro 2004, 00:00
Bydliště: Košice - okolie

#4 Příspěvek 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.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#5 Příspěvek 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.
Uživatelský avatar
Habesan
Příspěvky: 7377
Registrován: 12 led 2009, 00:00
Bydliště: Plzeňsko
Kontaktovat uživatele:

#6 Příspěvek 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?
Sháním hasičák s CO2 "sněhový", raději funkční.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#7 Příspěvek od rnbw »

Alebo tam dat velky elyt a stav zapisat vtedy, ked sa vyroba zastavi na nejaky cas.
Uživatelský avatar
feliz_navidad
Příspěvky: 959
Registrován: 15 říj 2009, 00:00

#8 Příspěvek 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.
termit256
Příspěvky: 10029
Registrován: 06 pro 2007, 00:00

#9 Příspěvek od termit256 »

Pokud mas vytahlou I2C muzes pouzit MRAM.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“