[elektro] pic eeprom iras
Sass Attila
attila.sass at palettainvent.hu
Tue Jan 6 00:53:22 CET 2009
Szia!
Lehet, hogy azzal is számolni kell, hogy valami miatt (pl villámlás a
közelben) a pic resetelődik. Ha csak a ram-ban számlál, akkor elveszhet
egy csomó számlálás. Az ilyen újraindulást nem biztos, hogy a jelzőbitek
alapján megkülönböztethető más újraindulástól, és a ram tartalma is
sérülhet.
Ebből a szempontból szerintem az fram a biztos megoldás. Abból van, ami
akárhányszor újraírható, a másik is olyan sokszor, hogy az mindenképpen
elég.
De a pic-es eeprom sem egészen elvetendő megoldás:
EEprom teljesen törölt (mind 0) állapotról induljon.
Először is mivel számlálóról van szó, pontosan tudod, hogy hányszor
írtad. Másrészt a felső byte-okat nem olyan sűrűn írod, mint az alsó
byteokat.
Emiatt ha kiindulsz abból, hogy csak a legalsó byte-ot kell cserélni (a
fölső 3 byte egyértelműen meghatározza, hogy hol van most, vagy egy
külön mutató az eeprom-ban), akkor cca 256-3-(egyéb konfig adat) marad a
legalsó byte-nak, mondjuk kb. 240.
Mivel a legalsó byte 1M-szor írható, mielőtt el kellene dobni, ezért ez
240M írást jelent. ezalatt a fölső byte-ok (pontosabban azok közül a
legalsó) 240M/256-szor íródnak, vagyis kevesebb mint 1M-szor.
Mivel egy byte írása az adatlap szerint 4ms, ezért egy ilyen típusú
folyamatos számláló leggyorsabb esetben kb. 4ms*240M =960000s, vagyis kb
11 nap. (nem számítva, hogy a fölső byte-okat is kell írni, ami miatt
átlagosan kevesebb mint 4ms jönne ki)
Ám itt óránként csak 5000-et kell írni, ezért 240M/5000 = 48000 üzemóra
lenne az üzemideje így. Ami több mint 5 év.
1M írásonként vagyis amikor egy alsó byte-ot cserélni kell, akkor az
adatlap szerint teljes frissítést érdemes csinálni. Azt is figyelembe
kell venni, hogy az adatlap a cellánkénti 1M írást csak mint tipikus
érték (5V 25fok), 100k a garantált érték (legalábbis a pic18fxx2
adatlap). így adott esetben egy másik cellát is ki lehet nevezni
mutatónak, és addig írni az aktuális cellát, amíg az ellenőrzésen nem
megy át (vagy max. 1M-szor). Az viszont kérdés, hogy elromolhat-e úgy,
hogy bizonytalanná válik az olvasása (vagyis átmegy az ellenőrzésen, de
legközelebb olvasáskor hibás értéket ad).
A ram-ban lévő számlálót minden íráskor érdemes összevetni az
eeprom-éval, így az esetleges eeprom fáradás érzékelhető lesz.
A fölső byte-okat biztonságból érdemes duplikálni.
Táp elvesztése esetére kondi, hogy lehessen még mit tenni és táp
érzékelése így is ajánlott, ilyenkor egy másik (csak erre az esetben
használt eeprom terület) eeprom-ba érdemes menteni a számlálót.
--
sassi
Huszti Andras írta:
> Hali!
>
> Szerintem elegans megoldas az lenne ha csak akkor tarolnad az eepromban
> amikor elmegy a tap. Ehhez nyilvan plusz hardware kell. Ide meg egy
> pelda:
> DCDC konverterrol jaratni a PIC-et. A konverter 2db sorba kapcsolt 2,5V
> 10F (? de legalabb 1F)- os kondi volt. Igy egesz sokaig kihasznalhato a
> kondi. Ezt egy keszulekben lattam ahol egy gsm modem errol a ket
> kondirol meg 3db sms-t el tudott kuldeni.
>
> Most jobban belegondolva a PIC-es oramban is ilyet kellene csinalnom.
> Ott orankent mentem az idot az eepromban. Nem tul gazdasagos ...
>
> -----------------------------------------
> elektro[-flame|-etc]
>
>
--
Attila Sass
Engineer
email: attila.sass at palettainvent.hu
mobile: +36 20 585 6739
Paletta Invent Ltd.
1142 Budapest, Tengerszem str. 3.
Hungary / EUROPE
www.palettainvent.hu
More information about the Elektro
mailing list