Sida 3 av 4
Re: PIC16 minne som överlever strömavbrott.
Postat: 30 maj 2009, 20:05:44
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
Du måste alltid gå till ett känt hemläge och sen räkna därifrån.
Re: PIC16 minne som överlever strömavbrott.
Postat: 30 maj 2009, 20:12:12
av danielr112
De e sant hehe.

Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 01:49:17
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.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 02:30:56
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.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 08:40:54
av Icecap
Och då kretsen ändå ska ha ställt portar osv rätt är det totalt likgiltigt att spara PC!
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 11:33:59
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.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 14:14:02
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
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 17:25:28
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.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 17:58:26
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å.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 18:28:12
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.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 19:31:38
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.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 19:41:52
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...
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 20:44:52
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).
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 21:06:03
av Icecap
FRAM EEPROM har obegränsade antal skrivningar så han kommer knappast att skriva sönder det.
Re: PIC16 minne som överlever strömavbrott.
Postat: 31 maj 2009, 22:28:48
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