Väcka PIC i batterifjärr, extern interrupt eller ULPWU

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
gokartnisse
Inlägg: 120
Blev medlem: 3 mars 2011, 01:58:43

Väcka PIC i batterifjärr, extern interrupt eller ULPWU

Inlägg av gokartnisse »

Jag håller på att ta fram en liten fjärrkontroll jag ska ha hemma till mitt hemautomationsprojekt. På den kommer ett antal knappar, ett antal bistabila brytare samt 4 st potentiometrar sitta. Jag ska då på något sätt läsa av status på dessa och skicka vidare. Pga. batteridrift vill jag hålla ner strömförbrukningen.

Fjärren kommer ha en 16F886 som har modulen "Ultra Low-Power Wake-Up", är den lämplig att använda, eller driver modulen plus kondensator iväg så mycket över tid att fjärrkontrollen antingen börjar dra "massor" med ström eller börjar missa knapptryckningar. Lämpligare att använda en klocka på 32 kHz istället som inte stannar under sleep?
Läser men det "application note" (kallas på svenska?) som finns står bla: "The wake-up period can vary by as much as 30% between modules." Det måste väl innebära att det kan skilja upp till 30 % mellan varje PIC och inte att den kan driva iväg över tid på en enskild PIC så mycket? (då kan jag bara byta kondensator när allt sitter på labbplattan innan jag löder ihop och monterar i låda) :tumupp:

Eller kan min galna ide med en liten pendel som triggar den externa interrupten vara något? Tål PIC:en att få massa pulser på INT pinnen, flaggan kommer ju bli hög redan på den första pulsen (flanken) så då spelar det ingen roll att pendeln pulsar massor mera förrän jag nollar flaggan? Eller blir det massa interrupt-rutiner efter varandra? (flaggan nollar jag inte förrän långt senare i programmet).

ULPWU:ns app note (AN879): http://ww1.microchip.com/downloads/en/A ... 00879D.pdf
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Väcka PIC i batterifjärr, extern interrupt eller ULPWU

Inlägg av v-g »

PICen kan du enkelt få att fungera när den vaknar säg var 100:e ms så kollar du om knapparna är uppe eller nere samt kör igång en a/d denna fortsätter i sleep tills den är klar då den triggar interupt.

Så kan man ju vara ännu smartare och göra som så att om man inte gör något så går den i djupare sleep (längre cykler på kanske en-tre sekunder) tills man aktiverar den igen.

Egentligen är det väl enklast att koppla upp det på labbdäck för att se var och hur man kan minska strömförbrukningen ofta är det inte PIC:en som drar ström utan kringkomponenterna.

Tänk också på hur utgångarna står mot tex pullup/down klockfrekvensen etc. Man tjänar väldigt mycket på att köra delay:er i loopar så att PIC:en sover medan den väntar.
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Väcka PIC i batterifjärr, extern interrupt eller ULPWU

Inlägg av sneaky »

Om du inte ska skicka status på alla knappar och pottar kontinuerligt så kan kanske IOC (Interrupt On Change) vara lämpligt? Då kan PICen sova tills du trycker på en knapp.
gokartnisse
Inlägg: 120
Blev medlem: 3 mars 2011, 01:58:43

Re: Väcka PIC i batterifjärr, extern interrupt eller ULPWU

Inlägg av gokartnisse »

Okej, jo det där med att väcka PIC då och då är väl planen (interrupt on change kommer inte funka med potarna, så det funkar inte som enda lösning), jag formulerade mig nog lite dumt och dem egentliga problemen är:

1. Kan ULPWU modulen driva iväg, alltså förändras över tid (hur tolkar ni citat i första inlägget från appnoten?). Eftersom den modulen bygger sin tidsbas (den väcker från sleep efter en viss tid) på att ladda ur en kondensator så kommer väl redan kondensatorn att förändras en del över tid (ca 20 %?). Sen kan inte denna förändring spelar så stor roll , eftersom jag bara ska läsa av knappar men det känns som i överkant med 20 % på kondensator och i värsta fall sen 30 % till från modulen eller har jag missuppfattat dokumentationen?

2.Klarar en PIC massa pulser på sin externa interruptpinne? eller ballar den ur då?(flaggan sätts ju redan första pulsen). Gissar att signalen kommer likna kontaktstuds.

Tack för all hjälp såhär långt!
Skriv svar