Hur få ner std.by. ström på PIC i sleep mode?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av RoPa »

Hej,

Håller på med ett litet projekt med en PIC16F616-I på 5V matning.
Jag ska ha den i sleep mode tills den väcks av en portändring på PORT-A.
Jag tror mig få den att somna men den drar fortfarande ca 250 uA.
Den drar 1.6 mA när den kör (8Mhz intern Osc) vilket är rätt mot datablad.

Någon som har haft likande problem och har tips om vad det kan vara jag glömt?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av sodjan »

Det är ju svårt att svara på rent generellt, det är flera olika
sakar som kan dra ström under sleep om man inte har slagit
av det. BOR och WDT är väl exempel på sådana.

Vilken strömförbrukning förväntade du dig?
Går du enbart på någon "down to" siffra?

Jag har även för mig att det finns någon app-note kring sleep.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av Swech »

En annan bov kan vara eventuell 5V regulator.
Beroende på om du mäter även vad denna drar

Swech
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av RoPa »

Tack för förslagen.

Jag mäter före 5V reggen (på 12V matningen) men om jag tar ur PIC'en så drar det i princip noll.
Jag har (tror jag) disabled allt vad gäller WDT BOR comparatorer, spänningsrefferenser mm.
Men jag får ändå inte till det så jag tänkte att det kanske finns något som man kan göra fel på.

En tanke som jag inte provat är att se om reggen drar minimalt med ström utan last men tar ett "steg" i strömförbrukning då den belastas om än bara ytterst lite... ? (får prova i kväll)

Jag utgår från databladets angivelser för strömförbrukning och enligt den så ligger jag på nivån där man har både comparatorer och spänningsreferensen på (men jag SKA ha stängt av dem...)

Jag har bytt ut processorn i en handkontroll för trådlösa strömbrytare så resten av designen ska vara "strömsnål" från grunden.
PF013
Inlägg: 324
Blev medlem: 6 december 2007, 08:44:23
Ort: Linköping

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av PF013 »

Om du slår på komparatorer och spänningsreferens, ökar förbrukningen motsvarande då?
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av RoPa »

Tack! naturligtvis måsta jag testa det, får slå på sak efter sak så ser jag om det är någon som redan var på (får skylla på att jag var lite trött efter midnatt i går...)
Niklas-k
Inlägg: 354
Blev medlem: 10 mars 2004, 15:59:21
Ort: Katrineholm

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av Niklas-k »

Titta även på interna/externa pull-ups om du använder det.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av sodjan »

OK.
En sådan här tråd får litet värde med enbart en massa saker
som du påstår eller tror att du har gjort utan möjlighet att
verifiera det av oss. Min kristallkula är på reparation så jag
har ingen möjlighet att se din kod, vad "5V reggen" är för
något, hur det hela är kopplat för övrigt, hur du mäter o.s.v.

> Jag tror mig få den att somna men den drar fortfarande ca 250 uA.

"Den drar" syftar väl på PIC'en i sig? Och då är det ju utan 5V stabb?
Om 250 uA inte är enbart processorn så får du skriva det.
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av RoPa »

Har nu mätt 12V matningen med ett 100K motstånd mellan VDD och VSS (Ingen PIC i) och får då 52,2uA.
@Swech, utan motstånd får jag 2,2uA så reggen verkar ok.

@PF013, jag har nu även testat följande kombinationer, och det stämmer med databladet

Vref On Comp1 ON Comp2 ON --> 440uA
Vref Off Comp1 ON Comp2 On --> 360uA
Vref Off Comp1 Off Comp2 Off --> 250uA

Så jag har tydligen lyckats stänga av dessa och fått den att sova... hmmm :?

@Niklas-K, använder inte externa pull-up, bara de interna "weak-pull-up" men de går mot öppna switchar så de "borde" inte dra något, eller?

Funktionen är att fyra PORT-C pinnar är satta till low och de ligger i matris (med switchar mellan) mot tre PORT-A pinnar med Weak-pull-up. Om man trycker på någon switch går någon PORT-A pinne low och PIC'en vaknar.
Efter att den vaknat kan jag läsa av vilken PORT-A pinne som gick låg och sedan höjer jag alla PORT-C och sänker en i taget för att identifiera vilken pinne som sänker PORT-a pinnen. Det ger mig vilken switch som är aktiverad.
Koden funkar och gör som den ska så långt.

@Sodjan, ska söka på app.notes, hoppas att du lyckas laga din kristallkula... :wink:

Tack för era tips. Ska nagelfara kortet, är som sagt en befintlig moddad design så det kan finnas något jag inte upptäckt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av sodjan »

> så de [WPU] "borde" inte dra något, eller?

Väldigt lätt att kontrollera. Visst, programmet kommer
inte att fungera (just då)... :-)

Jag antar att du har sett att det i SLEEP kapitlet står:
"The contribution from on-chip pullups on PORTA should be considered."
Vad nu det betyder i praktiken. De kan ju syfta på ström genom en
extern last, men det kan också vara så att WPU har en liten
"egenström" för själva funktionen...

Alternativet är att sätta rellativt stora (> 1 Mohm) externa pullups.
Men testa först att stänga av WPU och kontrollmät!
Användarvisningsbild
Icecap
Inlägg: 26652
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av Icecap »

Sedan är det ju så att ska man riktigt långt i strömnivå ska man växla oscillatorn till 32kHz oscillatorn (LP oscillatorn) och stänga av intosc.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av sodjan »

Och "sleep" vid 5V drar mer än "sleep" vid 3.3V.

50 nA : 2.0V
150 nA : 3.0V
350 nA : 5.0V

"Typ" värden parameter D020.
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av RoPa »

Tack för inputen.

Kontroll av kortet gav inget, finns typ inget mer än switcharna och ett serimotstånd på 47K till själva RF modulen anslutet mot PIC'en

Provade att sätta PIC'en i en IC sockel och böja undan alla ben förutom VDD och VSS, då drar fanskapet ändå 230uA :evil: (230uA är det den stabiliserar sig på om man väntar en minut efter spänningstillslag, skulle tro att det är någon cap som laddar)

@Sodjan, att byta reg är ett alternativ för att komma längre ner men först måste jag komma till 350nA :(
Ska prova att stänga av WPU, eftersom jag har lyft pinnarna och den fortsätter att dra...

@Icecap, Strömförbrukningen i aktivt läge är inte så kritisk, den vaknar, registrerar trycket och somnar om om inte ett fullt kommando har registrerats, då sänder den det och somnar om. Strömmen vid sändning är det som kommer att vara dominerande och den kan jag inte göra så mycket åt.

Blir således att fortsätta leta "inne i" PIC'en. Det frustrerande är att inget i databladet anges dra så mycket om man glömmer det på :humm:
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av sodjan »

Bara en notiering...
Det verkar enklare att stänga av WPU i programvaran
än att hålla på och böja ut benen. Jag skulle ha börjat
i den enkla änden... :-)

> då drar fanskapet ändå 230uA

Är det inkl 5V stabben? Hur/var mäter du?
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Hur få ner std.by. ström på PIC i sleep mode?

Inlägg av RoPa »

Sådärja!!! :D

@Sodjan, kan man tycka men när jag gjorde det så vaknade den hela tiden då PORT-A då blev High-Z input med wake on change :roll: den vaknade liksom hela tiden...

Gjorde till slut som du föreslog, men fick skriva en ny main loop, som inte hjälpte... där kom avgörande ledtråden. Pinnarna fladdrar = drar ström. Testa att göra alla portar till out... nämen! drar ingen ström längre... :humm:

Vet ni vad det var för fel (nu gör ni ju det)?
Jag hade satt de oanvända portpinnarna i PORT-A och PORT-C till High-Z input och lämnat dem flytande... klassiker :doh: (nu måste jag försvara mig med att det inte är jag som gjort kortet och därmed lämnat dem öppna, men jag kunde ju ha moddat in det... :oops: )

Nu drar den 2uA och det kommer från reggen, får se om det går att hitta en strömsnålare, tips?

Så, lärdomen är: Lämna aldrig portpinnar flytande High-Z, om dom inte klampas till VDD eller VSS så är det bättre med Out.

Sidan 124 i databladet för PIC16F616-I
"I/O pins that are highimpedance inputs should be pulled high or low externally to avoid switching currents caused by floating inputs." men att de kunde dra så mycket!!!

Stort tack :tumupp: till alla som engagerat sig och hjälpt till, en komplett beskrivning kommer i projekttråden inom kort.
Skriv svar