[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