Sida 1 av 4
Skriva till eeprom i PIC
Postat: 18 november 2015, 19:46:44
av newbadboy
Ska göra ett litet enkelt program i Mikroc. Dock behöver jag sätta en variabel till 1,2 eller 3 mha av en knapp. För varje tryckning lägger jag bara på ett, inga problem.
Kruxet är bara att när jag fimpar spänningen til Pic processorn skall värdet på variabeln vara sparad. Tex om jag satt den till två så ska den vara två direkt jag sätter till matning.
Hur gör man sådant. Har ingen aning

.. Är det med pekare eller ngt annat hokus pokus?
Re: Hur gå vidare?
Postat: 18 november 2015, 19:49:57
av H.O
Nej, du måste spara värdet i nått minne (flash eller EEPROM t.ex) som behåller informationen även när spänningen försvinner. Hur ofta ändras variabeln?
Re: Hur gå vidare?
Postat: 18 november 2015, 20:37:13
av Zkronk
Antingen spara ned värdet vid varje ändring, eller detektera när enheten ska stängas av och spara först då.
Ett EEPROM-minne har nämligen bara ett begränsat antal skrivningar innan det blir dåligt, så det förstnämnda alternativet är inte så lämpligt om det innebär rätt många skrivningar.
Re: Hur gå vidare?
Postat: 18 november 2015, 22:19:58
av newbadboy
Ahhh shit. Ok, det hade funkat med eeprom då antalet skrivningar inte hade blivit så många totalt sett.
Problemet är att kretskort redan är beställda. Man klarar sig utan denna finess och jag kom på den i efterhand. Aja så sket det sig denna gång. Får bli ver2.
Så då är det mao så att om man vill spara ngt permanent så behövs ngt form av externt eeprom. Finns säkert iof inbyggda också.
Men hur löser man om man behöver göra många skrivningar?
Re: Hur gå vidare?
Postat: 18 november 2015, 22:27:09
av nifelheim
hur många är "många"?
du får kolla ditt datablad , men 1 000 000 skrivningar är nog inte omöjligt
Re: Hur gå vidare?
Postat: 18 november 2015, 23:25:18
av Icecap
newbadboy: Standard för PIC's inbyggda EEPROM brukar vara 100000gg.
Men tydligen är det en hemlighet vilken PIC du kommer att använda så det är ju ganska svårt att ge råd då.
Re: Hur gå vidare?
Postat: 19 november 2015, 00:42:59
av sodjan
> Problemet är att kretskort redan är beställda.
Om din PIC modell (vilket alltså inte framgår vilken det är) har
internt EEPROM så blir det enbart program ändringar som behövs.
> Så då är det mao så att om man vill spara ngt permanent så behövs ngt
> form av externt eeprom. Finns säkert iof inbyggda också.
Konstigt, *du* är ju den enda som vet vilken PIC modell du använder
så du om någon borde ju veta om den har EEPROM eller inte...
> Men hur löser man om man behöver göra många skrivningar?
Hur många skrivningar är "många" ??? Hur ofta ändras värdet mellan 1, 2 och 3?
Varje EEPROM cell har en viss livslängd. Å andra sidan har du tillgång till
128 eller 256 (två vanliga antal) bytes EEPROM, så du kan byta cell efter
en tag. Finns olika metoder. T.ex använda 3 celler samtidigt och när en av
dom ger ett avvikande värde byta till tre nya o.s.v.
Sen finns det externa minnen som FRAM minnen som har obegränsade
antal skrivningar och behåller värdet utan matningsspänning.
Re: Hur gå vidare?
Postat: 19 november 2015, 06:25:01
av Swech
Oavsett.... om det skall ändras externt via en knapp så vill det verkligen till att man sliter ut det interna EE minnet.
Knappen eller fingret slits nog ut tidigare
Swech
Re: Hur gå vidare?
Postat: 19 november 2015, 07:05:59
av newbadboy
Helt rätt. Jag vet vilken pic det gäller. 12f675 och den har inte inbyggt vad jag vet. Ska kolla. Eftersom jag inte haft nytta av detta innan har jag inte brytt mig om detta. Speciellt inte då jag inte förstått vad det använts till. Nu vet jag.
Ang antal skrivningar så uppskattar jag att det skulle handla om ca 100-200 under sin livslängd. Borde väl inte vara ngt problem va?
Ska se om jag hittar ngn 8 pinnars med inbyggd eeprom och samma pinout
Re: Hur gå vidare?
Postat: 19 november 2015, 07:24:06
av H.O
12F675 har 128bytes internt EEPROM med en specificerad "livslängd" på 1000000 skrivningar. Så 200ggr lär inte vara några problem....
Re: Hur gå vidare?
Postat: 19 november 2015, 07:25:32
av ViktorSigg
Du ska nog läsa databladet lite noggrannare i fortsättningen...
128 byte EEPROM, 1,000,000 writes endurance, framgår på sida 1.

Re: Hur gå vidare?
Postat: 19 november 2015, 08:10:49
av newbadboy
så enkelt var det, som sagt inte förräns man behöver något kollar man det. Och livslängden ser ju rätt bra ut
Fan vad gött o int behöva byta ngn hårdvara. Ibland har man tur
@icecap. Det var inte hemligt, jag glömde sedan la jag mig och sov jävligt gott

...
Så dår är min nästa fråga var hittar jag info om hur man gör denna typ av skrivningar till eepromet förutom i databladet. Dvs ngt exempel eller liknande?
Re: Hur gå vidare?
Postat: 19 november 2015, 08:13:29
av Icecap
Det finns en macro som sköter skrivningen - om du använder MPLAB & XC8.
Annars är databladet en mycket bra källa till information, sektion 8 är bra att läsa.
Re: Hur gå vidare?
Postat: 19 november 2015, 08:17:23
av newbadboy
Synd nä jag använder mikroc. Kollar sekt 8 extra noggrant
Re: Hur gå vidare?
Postat: 19 november 2015, 08:52:06
av Klas-Kenny
Varför är det synd att du använder MikroC? Den stora poängen med andra kompilatorer än Microchips egna är väl att det finns färdiga bibliotek för mycket, inklusive EEPROM.
En snabb googling ger att du borde kolla närmare på funktionerna Eeprom_Read() och Eeprom_Write().