Ett EEPROM värde "sitter fast"

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Adde
Inlägg: 78
Blev medlem: 2 september 2008, 14:12:06
Ort: Linköping

Ett EEPROM värde "sitter fast"

Inlägg av Adde »

"EE Data Memory is not blank starting at adress 0x0004"

Har pickit2 2.60 men idag såg jag att min 16f690 krets har fastnat med värde $05 på adress 04.
Har självklart raderat kretsen men värdet ligger kvar där ändå. Någon som vet vad som har hänt?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av sodjan »

Kolla så att EEPROM verkligen är med i den radering som körs.
Jag vet inte säkert, men jag antar att man kan radera Flash
och EEPROM separat...
Användarvisningsbild
Adde
Inlägg: 78
Blev medlem: 2 september 2008, 14:12:06
Ort: Linköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av Adde »

Alla andra EEPROM adresser på Pic'en fungererar att skriva till sedan radera.
Sodjan: Vad jag vet så finns det ingen funktion i det programet som kan radera separat flash och EEPROM.
Har däremot lekt väldigt mycket med det interna EEPROM på just den kretsen.

Från Microchip datablad:
"- 1,000,000 write EEPROM endurance"

Kan det vara så att jag har lekt för mycket?
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Ett EEPROM värde "sitter fast"

Inlägg av Marta »

Det är 100.000 R/W garanterat och 1M typiskt på de vanliga 5V PIC. Detta gäller vid 25 grader, är kretsen varmare blir det färre. Det gäller även att inte överskrida någon annan spec, som t.ex. Vdd. Skulle tro att det har en kraftig negativ inverkan.

1M är mycket, men med ett felfungerande program kan detta antal uppnås förfärande fort...

Lägg in en timer eller annan form av spärr mot täta skrivningar när ett program testas. Denna kod kan och bör återanvändas till olika projekt så den är maximalt fri från buggar. Det kan rädda eeprom ifall där uppstår en oväntad loop....

Det är också bra att när t.ex. när lagrade värden justeras med att stega dessa på ett par knappar ha en fördröjning så att eeprom inte skrivs omedelbart för varje steg. Speciellt viktigt med de nya PIC som är en eller två tiopotenser sämre när det gäller flash endurance.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av sodjan »

> Kan det vara så att jag har lekt för mycket?

Hur fasen ska någon annan än du kunna veta hur mycket du har "lekt" !!??
Användarvisningsbild
Adde
Inlägg: 78
Blev medlem: 2 september 2008, 14:12:06
Ort: Linköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av Adde »

sodjan skrev:> Kan det vara så att jag har lekt för mycket?

Hur fasen ska någon annan än du kunna veta hur mycket du har "lekt" !!??
Okej om jag forumlerar mig så här då:
Om man endast programmerar en loop att den skriver till samma adress med ett värde + 1. Alltså helt utan några pauser eller liknande.

I runda slängar hur länge skulle det ta innan PIC'en hade skrivit till EEPROM'et 100k gånger?
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Ett EEPROM värde "sitter fast"

Inlägg av bearing »

Vi vet ju inte vad din loop har gjort, men vi kan väl anta att den endast skrivit och väntat på flaggan som säger att det är klart. Databladet säger nog hur lång skrivtiden till EEPROM är. Multiplicera det med 100k så har du svaret.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av sodjan »

> I runda slängar hur länge skulle det ta innan PIC'en hade skrivit till EEPROM'et 100k gånger?

Det är ju matte från mellanstadiet ungefär...

Antal sekunder = 100.000 delat med antalet skrivningar/s.

Det finns absolut ingenting i denna tråd som säger hur ofta
du skriver, så hur 17 ska någon annan än du kunna veta det ?
Användarvisningsbild
Adde
Inlägg: 78
Blev medlem: 2 september 2008, 14:12:06
Ort: Linköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av Adde »

sodjan skrev: Det finns absolut ingenting i denna tråd som säger hur ofta
du skriver, så hur 17 ska någon annan än du kunna veta det ?
Jo jag skrev det?
Som bearing antog att den ENDAST skulle skriva till EEPROM'et i en loop!
Jag kollade i databladet och fick ut mitt svar: 10 minuter!
Så jag får skylla mig själv, men vi alla har väll ändå varit nybörjare någon gång.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av sodjan »

5 ms per skrivning => 200 skrivningar/s.
100.000/200 = 500 s eller lite drygt 8 min. Så 10 minuter är nog en bra gissning.
Det är nog inte så det är tänkt att man ska använda EEPROM'et... :-)

Mycket hade underlättats om du i första inlägget hade skrivit att du
har skrivit mer till EEPROM än vad databladet specade. Då hade ju
svaret varit ganska uppenbart och det hade inte blivit så mycket
gissningar. :-)
Användarvisningsbild
Adde
Inlägg: 78
Blev medlem: 2 september 2008, 14:12:06
Ort: Linköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av Adde »

Nej visst ska man inte använda EEPROM'et på så vis. Men jag är relativt ny inom PIC så testar det mycket och lär mig genom "trail and error"
Men nu är ju problemt löst!
Användarvisningsbild
korp
Inlägg: 1216
Blev medlem: 30 maj 2006, 02:21:18
Ort: Strömstad

Re: Ett EEPROM värde "sitter fast"

Inlägg av korp »

Inte för att det löser ditt problem, nu när du antagligen hittat vad felet är, men vill ändå kommentera följande.
Adde skrev:Sodjan: Vad jag vet så finns det ingen funktion i det programet som kan radera separat flash och EEPROM.
Du har två delar i programmets huvudfönster, "Program Memory" samt "EEPROM Data" som du kan välja/välja bort hur du vill för programmeringen. Slår inte detta val igenom även vid radering? Jag har inte möjlighet att prova själv just nu, men jag har antagit att det fungerar på detta vis.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av sodjan »

Själva processorn (16F690) har två separate "Bulk Erase" kommandon.
Det ena för program memory och det andra för data memory (d.v.s EEPROM).
Notera dock att om lässkyddet för EEPROM är *på* så raderas även
EEPROM när man gör en "Bulk Erase Program Memory". D.v.s så att
man inte kan läsa EEPROM genom att byta ut koden i processorn
till sin egen.

Sen är det en annan fråga vilka kommandon t.ex en PICkit2 gör
vid sin normala erase, men det borde ju följa vad man vill programmera.
Användarvisningsbild
Adde
Inlägg: 78
Blev medlem: 2 september 2008, 14:12:06
Ort: Linköping

Re: Ett EEPROM värde "sitter fast"

Inlägg av Adde »

korp skrev:Inte för att det löser ditt problem, nu när du antagligen hittat vad felet är, men vill ändå kommentera följande.

Du har två delar i programmets huvudfönster, "Program Memory" samt "EEPROM Data" som du kan välja/välja bort hur du vill för programmeringen. Slår inte detta val igenom även vid radering? Jag har inte möjlighet att prova själv just nu, men jag har antagit att det fungerar på detta vis.
Jag har båda ikryssade. Och visst är det som du säger, jag skulle kunna bocka av "Program Memory" och endast radera EEPROM, men det skulle inte vara någon skillnad emot att ha båda ikryssade.
Som jag skrev tidigare i tråden så fungerar det utmärkt att radera andra EEPROM adresser, det är bara EEPROM adress 4 som är "fryst".
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Ett EEPROM värde "sitter fast"

Inlägg av bearing »

Var det just i adress 4 du skrev?
Skriv svar