=?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Masz problem? Zapytaj na forum elektroda.pl
From: scx <szczupxTEGOtuNIEma_at_nospam_wp.pl>
Subject: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sat, 15 Oct 2005 20:34:41 +0200
Witam
Ostatnio sporo bawię się uC, i odkryłem jak zachowywać dane po wyłączeniu
zasilania. Kluczem do zagadni jest słówko eeprom.
Wyczytałem ostatnio w Bardzo Mądrej Księdze, że tego typu pamięci mają
ograniczoną żywotność (coś z kilkoma zerami liczby zapisów).
Teraz pytanie zasadnicze: czy technika eepromów się już udoskonaliła, a
jeśli nie to jak sobie poradzić jeśli uC ma przeżyć parę lat kiedy np co
sekunda zapisuje wartość do eepromu?
--
scx
From: =?ISO-8859-2?Q?=22Mi=B3osz_K=2E=22?= <news_at_nospam_miklobit.WYTNIJTO.com>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sat, 15 Oct 2005 21:58:41 +0200
scx napisał(a):
Witam
Ostatnio sporo bawię się uC, i odkryłem jak zachowywać dane po wyłączeniu
zasilania. Kluczem do zagadni jest słówko eeprom.
Wyczytałem ostatnio w Bardzo Mądrej Księdze, że tego typu pamięci mają
ograniczoną żywotność (coś z kilkoma zerami liczby zapisów).
Teraz pytanie zasadnicze: czy technika eepromów się już udoskonaliła, a
jeśli nie to jak sobie poradzić jeśli uC ma przeżyć parę lat kiedy np co
sekunda zapisuje wartość do eepromu?
Ta trwałość sie tyczy zapisu do pojedynczej komórki
( albo czasem strony ) pamięci.
Jeśli zapisujesz jakieś dane co sek. do kolejnych adresów
to trwałośc pamięci nie będzie ograniczeniem.
--
Miłosz Kłosowicz
------------------------------------------------
AVR : ISP,JTAG,moduły prototypowe (USB,CAN)
TYPO3: projekty, webhosting, sklepy internetowe
-> http://www.miklobit.com
------------------------------------------------
From: scx <szczupxTEGOtuNIEma_at_nospam_wp.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sat, 15 Oct 2005 23:22:39 +0200
"Miłosz K." się wziął i wyklepał:
Ta trwałość sie tyczy zapisu do pojedynczej komórki
( albo czasem strony ) pamięci.
Jeśli zapisujesz jakieś dane co sek. do kolejnych adresów
to trwałośc pamięci nie będzie ograniczeniem.
Zapisuję właśnie do pojedyńczej komórki - powiedzmy że jest to licznik
"ostatniej pozycji"
Po prostu cyklicznie zapisuję sobie wartość do komórki, także w momencie
kiedy zasilanie padnie na pewno mam zapisaną właściwą liczbę. Wtedy podczas
rozruchu i pierwszego odczytu kontynuujemy od miejsca w którym skończyliśmy
--
scx
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sat, 15 Oct 2005 23:56:13 +0200
scx wrote:
Ta trwałość sie tyczy zapisu do pojedynczej komórki
( albo czasem strony ) pamięci.
Jeśli zapisujesz jakieś dane co sek. do kolejnych adresów
to trwałośc pamięci nie będzie ograniczeniem.
Zapisuję właśnie do pojedyńczej komórki - powiedzmy że jest to licznik
"ostatniej pozycji"
Po prostu cyklicznie zapisuję sobie wartość do komórki, także w momencie
kiedy zasilanie padnie na pewno mam zapisaną właściwą liczbę. Wtedy podczas
rozruchu i pierwszego odczytu kontynuujemy od miejsca w którym skończyliśmy
To przemyśl algorytm zapisywania tak aby rozłożyć zużycie pamięci
równomiernie po całym dostępnym obszarze. Czyli jeżeli potrzebujesz
zapamiętać tylko jeden bajt a pamięć ma 1 kilobajt, zapisuj swoją daną
najpierw w komórce o adresie 0, potem pod adresem 1, potem pod adresem 2
itd. Skomplikuje się conajwyżej algorytm wyszukiwania ostatnio używanej
komórki - ale to nie problem jeżeli zapisujesz licznik, który rośnie
monotonicznie. W innym przypadku też da się zrobić zapisując oprócz
właściwej danej również np. licznik kolejnych zapisów (1,2,3 itd).
Tak że jeżeli masz np. pamięć, którą można programować wg producenta 10
tys razy - to zapisując bajt w kolejnych komórkach zamiast ciągle w tej
samej, dostajesz 10 mln dopuszczalnych zapisów.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sun, 16 Oct 2005 00:02:06 +0200
Adam Dybkowski wrote:
Tak że jeżeli masz np. pamięć, którą można programować wg producenta 10
tys razy - to zapisując bajt w kolejnych komórkach zamiast ciągle w tej
samej, dostajesz 10 mln dopuszczalnych zapisów.
Dobry przykład tej metody podaje w nocie aplikacyjnej Atmel:
"AVR101: High Endurance EEPROM Storage"
http://atmel.com/dyn/resources/prod_documents/doc2526.pdf
http://atmel.com/dyn/resources/prod_documents/AVR101.zip
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: scx <szczupxTEGOtuNIEma_at_nospam_wp.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sun, 16 Oct 2005 00:38:23 +0200
Adam Dybkowski się wziął i wyklepał:
Tak że jeżeli masz np. pamięć, którą można programować wg producenta 10
tys razy - to zapisując bajt w kolejnych komórkach zamiast ciągle w tej
samej, dostajesz 10 mln dopuszczalnych zapisów.
Co daje mi 4 miesiące pracy...
Zresztą EOT, urządzenie pozostaje w sferze "byćmożekiedyś" a pytanie było w
sumie teoretyczne :)
W każdym razie dzięki za oświetlenie tematu
--
scx
From: Tomasz Piasecki <mtbrider_at_nospam__-nospam-_.poczta.onet.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sun, 16 Oct 2005 00:51:52 +0200
scx wrote:
Co daje mi 4 miesiące pracy...
W takim razie musisz zastosować inny rodzaj pamięci nieulotnej. NVRAM
albo FRAM. Niestety zewnętrznej, zatem dodatkowy scalak i troszkę kodu
do obsługi, ale problem rozwiązany na długi czas (życie bateryjki w
NVRAM albo 10^10 zapisów we FRAM)
TP.
--
| _ _ _ |
| _____ _| |_| | __ (o) | | __ __ _at_nospam_poczta.onet.pl |
| | \ | | |o \| \| |/o |/ _\| \ |
| |_|_|_| \_| |__/|_| |_|\__|\__||_| Tomasz Piasecki |
From: =?ISO-8859-2?Q?=22Mi=B3osz_K=2E=22?= <news_at_nospam_miklobit.WYTNIJTO.com>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sun, 16 Oct 2005 02:34:47 +0200
Tomasz Piasecki napisał(a):
W takim razie musisz zastosować inny rodzaj pamięci nieulotnej. NVRAM
albo FRAM. Niestety zewnętrznej, zatem dodatkowy scalak i troszkę kodu
do obsługi, ale problem rozwiązany na długi czas (życie bateryjki w
NVRAM albo 10^10 zapisów we FRAM)
Albo najzwyklejszy ram i jakiś MAX695 + bateria.
Tak się to robiło jak nie było NVRAM'ów z bateryjkami w środku albo FRAM'ów.
--
Miłosz Kłosowicz
------------------------------------------------
AVR : ISP,JTAG,moduły prototypowe (USB,CAN)
TYPO3: projekty, webhosting, sklepy internetowe
-> http://www.miklobit.com
------------------------------------------------
From: Lukasz Spychalski <luspych_at_nospam_spamfe.polbox.com>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sun, 16 Oct 2005 02:40:48 +0200
"Miłosz K." wrote:
Albo najzwyklejszy ram i jakiś MAX695 + bateria.
Tak się to robiło jak nie było NVRAM'ów z bateryjkami w środku albo
FRAM'ów.
Dokladnie. Np. drukarki Epsona FX1050 i DFX8000 mialy w srodku 6264LP i
baterie litowa rozmiaru ciut wiekszego, niz AA.
--
pozdrawiam,
Lukasz Spychalski
From: "Albatros" <albatros_at_nospam_wolny.ptak.w.pl>
Subject: =?iso-8859-2?Q?Re:_Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Tue, 18 Oct 2005 23:09:23 +0200
Użytkownik "Lukasz Spychalski":
Albo najzwyklejszy ram i jakiś MAX695 + bateria.
Tak się to robiło jak nie było NVRAM'ów z bateryjkami w środku albo
FRAM'ów.
Dokladnie. Np. drukarki Epsona FX1050 i DFX8000 mialy w srodku 6264LP i
baterie litowa rozmiaru ciut wiekszego, niz AA.
Czy moze ktos podac kawalek przykladowego (sprawdzonego!) schematu z
pamiecia RAM podtrzymywana bateryjnie, ale w taki sposob, ze nie wystepuja
losowe zapisy w momencie wlaczania\wylaczania (stany nieustalone na
magistralach danych, adresowych i sterujacych) ?
Pozd
Albatros
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: =?iso-8859-2?Q?Re:_Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Tue, 18 Oct 2005 23:24:55 +0200
Użytkownik "Albatros" <albatros_at_nospam_wolny.ptak.w.pl> napisał w wiadomości
news:dj3oae$bf8$1_at_nospam_atlantis.news.tpi.pl
Czy moze ktos podac kawalek przykladowego (sprawdzonego!) schematu z
pamiecia RAM podtrzymywana bateryjnie, ale w taki sposob, ze nie
wystepuja losowe zapisy w momencie wlaczania\wylaczania (stany
nieustalone na magistralach danych, adresowych i sterujacych) ?
Własnie MAX691 itp.
http://boss.iele.polsl.gliwice.pl/pdf/Maxim/max690-max695.pdf
http://alfa.iele.polsl.gliwice.pl/elenota/Maxim/max691a-max800m.pdf
Oprócz tego, że nadzorują napięcie zasilania i generują RESEST to jeszcze,
wstawione między uP a RAM, odcinają sygnał CE\.
--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)
From: =?ISO-8859-2?Q?=22Mi=B3osz_K=2E=22?= <news_at_nospam_miklobit.WYTNIJTO.com>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Wed, 19 Oct 2005 00:55:17 +0200
Albatros napisał(a):
Czy moze ktos podac kawalek przykladowego (sprawdzonego!) schematu z
pamiecia RAM podtrzymywana bateryjnie, ale w taki sposob, ze nie
wystepuja losowe zapisy w momencie wlaczania\wylaczania (stany
nieustalone na magistralach danych, adresowych i sterujacych) ?
https://www.miklobit.com/uploads/tx_mklproducts/datasheet/MB128USBCAN_MAX_rev.A_sch.pdf
--
Miłosz Kłosowicz
------------------------------------------------
AVR : ISP,JTAG,moduły prototypowe (USB,CAN)
TYPO3: projekty, webhosting, sklepy internetowe
-> http://www.miklobit.com
------------------------------------------------
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sun, 16 Oct 2005 21:21:26 +0200
scx wrote:
Tak że jeżeli masz np. pamięć, którą można programować wg producenta 10
tys razy - to zapisując bajt w kolejnych komórkach zamiast ciągle w tej
samej, dostajesz 10 mln dopuszczalnych zapisów.
Co daje mi 4 miesiące pracy...
No to doczep dowolny RTC z pamięcią RAM (taki jak np. DS1306).
Dostaniesz 96 bajtów pamięci RAM podtrzymywanej baterią (np. CR2032) a
do tego gratis RTC ;-) który też się może przydać. Czas podtrzymania:
kilka lat. Dłużej przy zastosowaniu większej baterii litowej, np. SAFT
rozmiaru R12 (kilkanaście Ah).
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: "szlovak" <adamkxBEZx_at_nospam_o2.pl>
Subject: Re: =?iso-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci?= EEPROM
Date: Sun, 16 Oct 2005 10:24:31 +0000 (UTC)
Adam Dybkowski napisał(a):
ale to nie problem jeżeli zapisujesz licznik, który rośnie
monotonicznie. W innym przypadku też da się zrobić zapisując oprócz
właściwej danej również np. licznik kolejnych zapisów (1,2,3 itd).
no nie da rady tak, nie można robić licznika bo ta komórka się zużyje.
jedynie powiedzmy zapis po kolei i sprawdzanie np. ostatniej zajętej
pozycji oczywiście przyjmując jakiś stan za zerowy. Po przekroczeniu
tablicy zerowanie komórek i zapis w pierwszej
jedna komórka eeprom o wytrzymałości 10mln zapis/kasowanie da możliwość
zapisu co sekundę przez 115 dni mniej więcej.
--
Pozdrawiam
Adam
From: =?iso-8859-2?Q?Piotr_Ga=B3ka?= <piotr.galka_at_nospam_CUTTHISmicromade.pl>
Subject: =?iso-8859-2?Q?Re:_Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Mon, 17 Oct 2005 09:16:44 +0200
Użytkownik "scx" <szczupxTEGOtuNIEma_at_nospam_wp.pl> napisał w wiadomości
news:dirrtv$nhh$2_at_nospam_news.onet.pl...
Zapisuję właśnie do pojedyńczej komórki - powiedzmy że jest to licznik
"ostatniej pozycji"
Po prostu cyklicznie zapisuję sobie wartość do komórki, także w momencie
kiedy zasilanie padnie na pewno mam zapisaną właściwą liczbę.
Jesteś tak całkiem pewien, że wszystkie bity zdążyły się zapisać gdy
zanikało zasilanie (proces zapisu EEPROMu trochę jednak trwa i mogło w niego
trafić).
Jeśli licznik jest więcej niż jednobajtowy to: jesteś całkiem pewien, że
zapis nie został przerwany między bajtami.
Miałeś stan hi=1, lo=255, zapisujesz hi=2, lo=0. Zależnie od kolejności
zapisu przy zaniku zasilania może się okazać, że zapisane zostało 1,0, albo
2,255
P.G.
From: "mokule" <moki1.WYTNIJ_at_nospam_gazeta.pl>
Subject: =?ISO-8859-2?Q?Re:_Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sat, 15 Oct 2005 20:05:43 +0000 (UTC)
Teraz pytanie zasadnicze: czy technika eepromów się już udoskonaliła
Trudno powiedzieć, bo nie napisałeś ile tam było zer.
W każdym razie wciąż jest to ilość skończona.
Jeśli to Ci przeszkadza to musisz poznać nowe słowo kluczowe FRAM.
http://www.ramtron.com/doc/Products/overview.asp
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
From: scx <szczupxTEGOtuNIEma_at_nospam_wp.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sat, 15 Oct 2005 23:23:16 +0200
mokule się wziął i wyklepał:
Teraz pytanie zasadnicze: czy technika eepromów się już udoskonaliła
Trudno powiedzieć, bo nie napisałeś ile tam było zer.
Coś mi się kojarzy że 3, ale może 4
W każdym razie wciąż jest to ilość skończona.
Jeśli to Ci przeszkadza to musisz poznać nowe słowo kluczowe FRAM.
http://www.ramtron.com/doc/Products/overview.asp
Biorę się za lekturę.
--
scx
From: scx <szczupxTEGOtuNIEma_at_nospam_wp.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Sat, 15 Oct 2005 23:29:12 +0200
Jeśli to Ci przeszkadza to musisz poznać nowe słowo kluczowe FRAM.
Hmmm, no fajnie, wszystko super, ale:
Zamiast prostej definicji zmiennej jako eeprom mam teraz troszkę roboty z
2wire, no i 4k pamięci kosztuje 10zł
Mi się nie da dogodzić :P
--
scx
From: "Art" <To_at_nospam_zly.adres.poczty.pl>
Subject: Re: Trwałość pamięci EEPROM
Date: Sun, 16 Oct 2005 14:37:09 +0200
Witam..
A nie lepiej dorobic uklad z wiekszym kondensatorem na zasilaniu procesora i
dioda wykrywajaca zanik napiecia na jakies przerwanie,a na przerwaniu zrobic
zapis do pamieci - energii w kondensatorze wystarczy procesorowi na zapis do
eeproma i wtedy masz po klopocie. Ewentualnie w drugiej komorce robisz jakis
zapis kontrolny co 100/1000 przekrecen licznika - napisz czego to ma byc
licznik - tzn. jaki jest czas impulsu itp. bo jak to bedzie licznik otwarc
drzwi albo impulsow w KHz to beda to roznice - chodzi mi o to czy faktycznie
apis co sekunde jest potrzebny i bardzo krytyczna jest zapisana tam wartosc
Pozdr
ART
From: "mw158979" <newbie_at_nospam_gazeta.pl.dowidzenia>
Subject: Re: Trwałość pamięci EEPROM
Date: Tue, 18 Oct 2005 17:01:19 +0200
BTW: co sie dzieje ze zuzytym flashem? Jest tu jakas regula?
hej
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: =?ISO-8859-2?Q?Trwa=B3o=B6=E6_pami=EAci_EEPROM?=
Date: Tue, 18 Oct 2005 21:01:18 +0200
mw158979 wrote:
BTW: co sie dzieje ze zuzytym flashem? Jest tu jakas regula?
Ja kiedyś spotkałem taki, w którym kasowanie działało nie do końca.
Czyli po skasowaniu prawie wszystkie bajty miały wartość 0xff ale
kilkanaście bitów pozostawało zerowych.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.