Sida 1 av 1

Bör man återläsa data som skrivs till internt ee?

Postat: 5 juni 2007, 00:37:56
av Pjoms
Frågan kan nog ses generell för uC med inbyggt eeprom, men just i detta fall är det PIC (16F876A) som är målet. Som sagt:

Bör man återläsa (verifiera) data som skrivs till det interna eepromet?

Jag har sett detta göras ibland, och visst, man kan ju "skriva sönder" ett ee, men förekommer skrivfel även i "normala" fall i den omfattningen att verifiering är att rekommendera?

Postat: 5 juni 2007, 00:41:08
av Micke_s
I princip behöver man inte verifiera, det är när man stressar mot gränserna som skrivfel kan uppstå.
Typ låg matspänning, låg/hög temperatur och hög hastighet.

Det är ju inte fel att verifiera.

Postat: 5 juni 2007, 00:44:20
av Marta
PIC gör väl en del kontroller själv? Där finns ju ett par error-bits i EECON1.

Postat: 5 juni 2007, 01:03:12
av Pjoms
Nja, vad jag förstår så är det väl bara bit3 (WRERR) som flaggar för fel, och då om skrivningen blev avbruten av en MCLR- eller WDT-Reset.

Postat: 5 juni 2007, 01:08:39
av TomasL
Om du läst alla errater och följer de rekomendationer som uChip ger så är det ingen fara, såvida du inte förväntar dig att innehållet skall vara intakt i 25 år eller så, då behöver du nog refresha innehållet.
Likadant gäller om du får för dig att läsa och skriva kontirnuerligt, då det finns en maximal livslängd på antal skrivningar som kan göras.

Postat: 5 juni 2007, 12:28:46
av sodjan
Tidsmässigt är ju en återläsning och verifiering (jämfört med själva
skrivningen i sig) en väldigt kort tid, så det "kostar" ju nästan inget
att göra det.

Men, självklart finns det inget generellt svar, utan det som är intressant
är vad det kostar dig om en skrivning misslyckas...

En del kör med 2-av-3 eller 3-av-5 (d.v.s att man skriver samma data
till 3 eller 5 positioner och sedan läser man alla och har majoritetsröstning
om vilket som är det korrekta värdet). Om man har *stora* krav.

"Refresh" av EEPROM brukar vara ett större problem, ofta redan
att tolka informationen i databladet korrekt... :-)