PIC16 minne som överlever strömavbrott.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
limpan4all
Inlägg: 8458
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: PIC16 minne som överlever strömavbrott.

Inlägg av limpan4all »

Räkna ALDRIG med att den är där du stannade den efter en uppstart igen.
Omvärlden kan ha flyttat på den :D
Du måste alltid gå till ett känt hemläge och sen räkna därifrån.
danielr112
Inlägg: 8092
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: PIC16 minne som överlever strömavbrott.

Inlägg av danielr112 »

De e sant hehe. :D
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: PIC16 minne som överlever strömavbrott.

Inlägg av v-g »

Kjells stegmotorer är inget bra vad jag läst här. Sök och du finner.

Fast huvudfrågan är om du inte lurar dig själv lite. Du kommer ALLTID hamna på samma ställe ändå även om du har kod/hårdvara som hanterar avbrottet.

Orsaken är ju att den kod du exekverar för att på något sätt avkänna att spänningen är påväg att försvinna kommer spara exakt de data du ber den om därefter när strömmen kommer åter startar PIC alltid från samma ställe dock kan registrens värde variera beroende på strömavbrottet (BOR osv). Därefter hanterar du de data du sparat.

Jag misstänker att du tror att man kan spara exakt stället i koden som du för tillfället står på och sen direkt hoppa till denna rad när exekveringen återkommer. Detta kommer aldrig att ske då processorn alltid börjar från början så att säga.

Att spara var programräknaren befinner sig är i sig inga större problem. Kör du med interupt för detekteringen så sparar du enkelt undan det hela och låter sen avbrottet ske kontrollerat.

Gör man som Swech säger och kombinerar det med en diod så att den kvarvarande strömmen enbart förbrukas av PIC:en så borde du hinna spara undan allt i EEPROM och sen vara förberedd.

Interuptet kan triggas med tex komparatorn om jag inte minns fel.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC16 minne som överlever strömavbrott.

Inlägg av sodjan »

> Att spara var programräknaren befinner sig är i sig inga större problem. Kör du med interupt för detekteringen så sparar du enkelt undan det hela...

Notera att PIC16 inte kan läsa return/call stacken så jag vet inte riktigt
hur du menar att man ska kunna spara programräknaren.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: PIC16 minne som överlever strömavbrott.

Inlägg av Icecap »

Och då kretsen ändå ska ha ställt portar osv rätt är det totalt likgiltigt att spara PC!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC16 minne som överlever strömavbrott.

Inlägg av sodjan »

> ...är det totalt likgiltigt att spara PC!

Ja, det varken går eller är speciellt intressant... :-)

I just detta fall tolkade jag det som att det viktiga var att
"veta" status på någon eventuell mekanisk kringutrustning.
Och det får man nog helt enkelt "tänka till" kring. Antingen har
man givare så att utrustningen själv kan tala om i vilket läge
den befinner sig, eller så har man uppstartskod som kallibrerar
utrustningen genom att köra mot fasta ändlägen eller liknande.
choppertony
Inlägg: 822
Blev medlem: 23 mars 2009, 19:04:00
Ort: Ystad

Re: PIC16 minne som överlever strömavbrott.

Inlägg av choppertony »

När jag tänker efter så bör jag nog ha ett batteri i alla fall somhåller pic'en igånga under avbrottet. Eller så får man byggaprogrammet så att det på ett säkert sätt går till hemmaläge vid nystart. Om man har ett kordinatbord X och y och sedan Z som borrar hål i underliggande material, så får man börja med att låta z gå i sitt övre ändläge innan X o y går hemåt.

Nu var detta bara ett exempel. Men det var inte så det var tänkt. Har maskinen borrat 400 hål så vill man ju inte att den börjar om från början. Har man sparat hur långt man har jobbat i FRAM så kan man ju se till och hoppa dit med en gång. Står maskinen obemannad på natten och det blir ett litet avbrott så vill man inte att den skall stå tills på morgonen då det kommer personal.... detta borde vara en ganska enkel match. Z rörelsen kan ju vara en egen rutin som kallas in när x och y värdena är på plats. om ett register säger att här är redan borrat så går den vidare. till nästa x,y värde .... .... ....

Tills man kommer till den som inte är borrad
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: PIC16 minne som överlever strömavbrott.

Inlägg av Icecap »

Ganska fel tänkt tycker jag...

Du lägger inte in 400 koordinater i en PIC, det finns helt enkelt inte minne nog till det.

Alltså måste du skicka varje koordinat från en master och få bekräftelse på att den är utförd, därmed ligger detta att hålla koll på vilka hål som är klara hos mastern ocg inte PIC'en.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: PIC16 minne som överlever strömavbrott.

Inlägg av v-g »

sodjan:Såklart har du helt rätt jag tänkte på PIC18 (är lite skadad) ;) Hursomhelst är det ju ointressant ändå.
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: PIC16 minne som överlever strömavbrott.

Inlägg av bos »

Icecap skrev:Du lägger inte in 400 koordinater i en PIC, det finns helt enkelt inte minne nog till det.
Hur lyckades du tolka choppertonys inlägg som att han skulle spara alla koordinater i PIC:en? Jag lyckas inte, hur jag än gör.
Icecap skrev:Alltså måste du skicka varje koordinat från en master och få bekräftelse på att den är utförd, därmed ligger detta att hålla koll på vilka hål som är klara hos mastern ocg inte PIC'en.
Det är ju inga problem att ha lite koll i PIC:en; senast utförda koordinat (t.ex radnummer från koordinatfilen hos mastern) sparas i EEPROM. Vid reboot säger PIC:en till mastern detta värde, och utgår sen därifrån. Worst case blir väl att man får borra om ett redan borrat hål, t.ex om hålet borrades klart men PIC:en inte hann spara infon i EEPROM innan strömmen försvann.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC16 minne som överlever strömavbrott.

Inlägg av sodjan »

> senast utförda koordinat (t.ex radnummer från koordinatfilen hos mastern) sparas i EEPROM.

Inte helt bra. Du får ett max antal borrade hål innan du måste byta PIC p.g.a
att du har överskidigt antal skrivningar till EEPROM. Om man vill spara så ofta
så är andra typer av minnen (t.ex FRAM från Ramtron) bättre lämpade. Men
sannolikt så är det enu bättre att skicka en "OK" uppåt i kedjan till det system
som styr borrmaskinen (med PIC'en), som sas här tidigare.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: PIC16 minne som överlever strömavbrott.

Inlägg av Icecap »

bos: "Har maskinen borrat 400 hål så vill man ju inte att den börjar om från början. Har man sparat hur långt man har jobbat i FRAM så kan man ju se till och hoppa dit med en gång. Står maskinen obemannad på natten och det blir ett litet avbrott så vill man inte att den skall stå tills på morgonen då det kommer personal...."

Detta betyder att han INTE har en master och att PIC'en ska sköta allt eller hur?

Och visst, om vi utgår ifrån att dessa 400 hål är en del av den totala uppgift och säger att det t.ex. rör sig om 500 hål och att varje hål har 16 bit X och 16 bit Y-koordinat blir det 2000 bytes som ska sparas (om det bara är ett verktyg) vilket är en del mer än den interna EEPROM brukar klara.

I det fall hade jag vald en extern EEPROM, har för mig att det finns en 512kb (64kB) SPI som kan hålla koordinaterna, det borde räcka till ett stort jobb, sedan hade jag petat dit ett litet FRAM EEPROM till att spara stegen som är avklarade.

Vid strömavbrott (vilket ju borde få koordinatbordet att stå still också) stoppar allt ju, när strömmen kommer åter skulle den nollsöka koordinatbordet (köra Z upp, sedan X och Y till "hem") varefter den skulle ladda hem vilket punkt den hade nått till i listan, det blir som mest 2 bytes som index, data hämtas från "stora" EEPROM'et och allt fortsätter därifrån.

Allt med att skulle spara någon PC eller liknande dumheter behövs inte (ut över att det är omöjligt i en PIC)

Att det sedan blir intressant att mata in dessa koordinater manuellt via en knappsats är en annan sak...
Nerre
Inlägg: 27257
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: PIC16 minne som överlever strömavbrott.

Inlägg av Nerre »

400 hål innebär att han kan köra programmet 25 gånger, sen har han överskridit EEPROM:ets max 10k skrivningar (jag förutsätter nu att varje hål bara räknas som EN skrivning, oavsett hur många bytes som skrivs).
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: PIC16 minne som överlever strömavbrott.

Inlägg av Icecap »

FRAM EEPROM har obegränsade antal skrivningar så han kommer knappast att skriva sönder det.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: PIC16 minne som överlever strömavbrott.

Inlägg av Swech »

Man kan ju också fråga sig hur ofta som choppertony kommer att ha strömavbrott.
Problemet som skall lösas är nog i praktiken inget problem....
Den dagen strömmen går så kan man säkert köra om de 400 hålen ;)

Swech
Skriv svar