Minimera strömförbrukning
Minimera strömförbrukning
Jag försöker minimera strömförburkning på en enhet som drivs batteri. Nuvarande konstruktion drar ca 0.12 mA i standby vilket är för mycket. Jag behöver komma ned i ca 1/10 av nuvarande.
Nu har jag en LDO, STM32 och några 3.3V kretsar som drar ström. 3.3 V kretsarna pratar med SPI eller I2C till STM32
Jag har två ideear
1) Koppla in så STM32 ger ström till de andra 3.3 V komponenterna via sina GPIO. En fundering här är om komponenterna kan ta skada om deras VCC och bussar sätts till "Analog in" från STM32? Som det är när STM32 är i standby eller i stop. I detta fall kommer bara LDO och STM32 har spänning i standby.
2) Koppla in så LDO vi shutdown stänger ned 3.3 V till allt inkl STM32. Knappar koppas till kondensator på shutdown (aktiv låg) till LDO som då aktiverar spänning till allt när knapp är intryckt, STM32 vaknar och sätter en GPIO hög som då AND mot knapparna (via dioder), så allt STM32 kan hålla liv i allt tills den bestämmer sig för att sätta GPIO till låg då allt stängs av, inkl spänning till STM32. I detta fall kommer nedast LDO har spänning i standby, se ASCII skiss nedan. Funderingern är här hur STM32 mår när den får en spänning på ingång när den inte själv har spänning (under en kort tid) samt att inspänning är hägre än VCC men den är 5 V tolerant.
Knapp:
VBAT 3.7 V
|
|
/
|----->|----- shutdown LDO
|
|-----STM32 event In
R
|
GND
STM32:
GPIO ----->|-- shutdown LDO
Vilket alternativ är det bästa?
Nu har jag en LDO, STM32 och några 3.3V kretsar som drar ström. 3.3 V kretsarna pratar med SPI eller I2C till STM32
Jag har två ideear
1) Koppla in så STM32 ger ström till de andra 3.3 V komponenterna via sina GPIO. En fundering här är om komponenterna kan ta skada om deras VCC och bussar sätts till "Analog in" från STM32? Som det är när STM32 är i standby eller i stop. I detta fall kommer bara LDO och STM32 har spänning i standby.
2) Koppla in så LDO vi shutdown stänger ned 3.3 V till allt inkl STM32. Knappar koppas till kondensator på shutdown (aktiv låg) till LDO som då aktiverar spänning till allt när knapp är intryckt, STM32 vaknar och sätter en GPIO hög som då AND mot knapparna (via dioder), så allt STM32 kan hålla liv i allt tills den bestämmer sig för att sätta GPIO till låg då allt stängs av, inkl spänning till STM32. I detta fall kommer nedast LDO har spänning i standby, se ASCII skiss nedan. Funderingern är här hur STM32 mår när den får en spänning på ingång när den inte själv har spänning (under en kort tid) samt att inspänning är hägre än VCC men den är 5 V tolerant.
Knapp:
VBAT 3.7 V
|
|
/
|----->|----- shutdown LDO
|
|-----STM32 event In
R
|
GND
STM32:
GPIO ----->|-- shutdown LDO
Vilket alternativ är det bästa?
Re: Minimera strömförbrukning
Har inte riktigt följt dina förslag, men det viktigaste är att få bort LDO så att den inte är aktiv i sleepläge - medans i dina förslag verka prioritera att LDO alltid är aktiv...
LDO är förmodligen din största strömförbrukare i sleepläget av alla komponenter...
att strömförsörja saker via portar är heller ingen bra ide...
---
Därför skall man inte ha några spänninsregleringar alls till tex. MCU och man väljer en variant som kan hantera hela spänningsområdet som en LiIon-batteri eller en engångs-lithiumbatteri ger, då MCU av den här typen i regel drar extremt lite ström när de är i sleepläge.
till detta kanske man måste bygga en på och avslagbar strömförsörjningssystem för resten av perferikretarna när MCU väl har snurrat igång och skall utföra något - och sedan stänga av igen när den är klar.
när man bygger strömsnålt så måste man jaga varenda µA på precis allt - detta inkluderar också sådana saker som att mäta spänningen på batteriet att detta inte drar ström i mätkopplingen eller att den också är avstängbar när det ligger i sleepläge.
LDO är förmodligen din största strömförbrukare i sleepläget av alla komponenter...
att strömförsörja saker via portar är heller ingen bra ide...
---
Därför skall man inte ha några spänninsregleringar alls till tex. MCU och man väljer en variant som kan hantera hela spänningsområdet som en LiIon-batteri eller en engångs-lithiumbatteri ger, då MCU av den här typen i regel drar extremt lite ström när de är i sleepläge.
till detta kanske man måste bygga en på och avslagbar strömförsörjningssystem för resten av perferikretarna när MCU väl har snurrat igång och skall utföra något - och sedan stänga av igen när den är klar.
när man bygger strömsnålt så måste man jaga varenda µA på precis allt - detta inkluderar också sådana saker som att mäta spänningen på batteriet att detta inte drar ström i mätkopplingen eller att den också är avstängbar när det ligger i sleepläge.
Re: Minimera strömförbrukning
LDO drar 50 uA vid full belastning.
STM32 klarar spänning 1.8V till 3.6 V vilket inte går med 3.7 V batteri (gissar att de ligger någonstans 2-4.2 V). Skulle kunna lägga 1 eller 2 dioder för att sänka spänningen till STM32 men de kommer ju batteritide kortas pga lägre spänning.
STM32 klarar spänning 1.8V till 3.6 V vilket inte går med 3.7 V batteri (gissar att de ligger någonstans 2-4.2 V). Skulle kunna lägga 1 eller 2 dioder för att sänka spänningen till STM32 men de kommer ju batteritide kortas pga lägre spänning.
Re: Minimera strömförbrukning
Problemet när det drar ström inom området µA genom en diod så har du inte den önskade spänningsfallet över dioderna, gäller bara vid högre ström från delar av mA och högre.
---
Har du kollat att din LDO verkligen bara dra 50 µA när inget är inkopplat i den, ibland kanske man missar något i implementationen och det i verklighet drar mer...
Om det drar 0.12 mA totalt så motsvarar det 120 µA och även om 50 µA ser litet på pappret för LDO så är det ändå 41% av din nuvarande totalförbrukning i vila och därmed en grej som gör mycket om den kan elimineras - sedan blir det att jaga nästa pryl som dominerar i förbrukning, när den är åtgärdad, nästa och så håller man på tills man kommer till acceptabel nivå.
---
Har du kollat att din LDO verkligen bara dra 50 µA när inget är inkopplat i den, ibland kanske man missar något i implementationen och det i verklighet drar mer...
Om det drar 0.12 mA totalt så motsvarar det 120 µA och även om 50 µA ser litet på pappret för LDO så är det ändå 41% av din nuvarande totalförbrukning i vila och därmed en grej som gör mycket om den kan elimineras - sedan blir det att jaga nästa pryl som dominerar i förbrukning, när den är åtgärdad, nästa och så håller man på tills man kommer till acceptabel nivå.
Re: Minimera strömförbrukning
Jag har gjort några trådlösa sensorer och där bryter jag strömmen till allt förutom uCn med en p-kanals mosfet, alla sensorer, spänningsdelare för batterispänning osv. Enkelt och välfungerande.
Kolla vad regulator drar vid lägre strömmar. Är det fortfarande högt så skulle jag byta den, finns många som bara drar neråt 1uA nu för tiden.
Kolla vad regulator drar vid lägre strömmar. Är det fortfarande högt så skulle jag byta den, finns många som bara drar neråt 1uA nu för tiden.
Re: Minimera strömförbrukning
Lösning 2 är ju att helt stänga av LDO. Men problemet med den är att det kommer bli spänning på ingångarna på processorn när knapparna trycks in innan processorn får ström (efterom LDO är avstängd då)
50 uA är vid max belastning. Jag har inte mät eftersom jag inte enkelt kan mäta vad just LDO drar.
50 uA är vid max belastning. Jag har inte mät eftersom jag inte enkelt kan mäta vad just LDO drar.
Re: Minimera strömförbrukning
Det går att fixa ett sätt som gör att knapparna slår på LDO'n och att uC'n sedan håller sig själv så länge det behövs.
Jag gjorde det för en hel del år sedan med en PIC och den fungerar fortfarande.
Jag gjorde det för en hel del år sedan med en PIC och den fungerar fortfarande.
Re: Minimera strömförbrukning
Det där regulatorn drar inte mycket mindre vid utan last heller, så ska du använda den är det ett måste att stänga av den om du ska få ner strömförbrukningen.
På en sak jag gjort har jag en p-kanals mosfet före regulatorn och parallellt med den en tryckknapp. När man trycker på knappen förses regulatorn med ström och uCn startar och drar då mosfetens gate till jord (med en n-kanals mosfet) och håller den dragen tills uCn gjort sitt, när det släpper gaten bryts strömmen och strömförbrukningen blir i princip noll.
Går sannolikt att lösa på liknande sätt med din regulators "shutdown" utan att för den delen lägga en spänning på uCns pinnar i viloläge, om det nu är ett problem.
På en sak jag gjort har jag en p-kanals mosfet före regulatorn och parallellt med den en tryckknapp. När man trycker på knappen förses regulatorn med ström och uCn startar och drar då mosfetens gate till jord (med en n-kanals mosfet) och håller den dragen tills uCn gjort sitt, när det släpper gaten bryts strömmen och strömförbrukningen blir i princip noll.
Går sannolikt att lösa på liknande sätt med din regulators "shutdown" utan att för den delen lägga en spänning på uCns pinnar i viloläge, om det nu är ett problem.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: Minimera strömförbrukning
I ett av mina byggen använde jag ett LiFePo4-batteri för att slippa regulator, fungerar riktigt bra. Ligger på 3,6-3,7 volt fulladdat. Extra bra är att man kan köpa batteri, laddelektronik med solcell, inbyggnadslåda mm för 50:- på Jula 
http://www.jula.se/catalog/el-och-belys ... ed-422457/

http://www.jula.se/catalog/el-och-belys ... ed-422457/
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Minimera strömförbrukning
Det får bli att stänga av regulatorn. Så frågan är nu hur jag ska hindra spänning att hamn på STM32 ingånger innan den har VCC. Funderade på RC för att får en uppladdningskurva som skiljer mellan VCC och ingångarna men då kommer det ju ändå bli en spänning även fast den blir låg.
Någon form av transistor koppling kanske?
Någon form av transistor koppling kanske?
Re: Minimera strömförbrukning
Det är ju hur enkelt som helst:
En knapp sitter mellan Batt+ och basen på en transistor med ett strömbegränsermotstånd mellan.
Transistorns emitter till GND.
Transistorns kollektor till portpinnen som har antingen pull-up inbyggd eller externt.
Alla knappars utgång samlas sedan med dioder (t.ex. 1N4148) vilket slår på spänningsregleringen via en transistor som driver power-on transistorn (P-MOSFET föreslår jag).
Vid att lägga till en diod mellan en portpinne och dioderna kan man bygga en "självhållare" så att när portpinnen är '1' stängs regulatorn inte av. Då kan styrningen göra vad som göras ska och när den är klar släpper den pinnen ner till '0' och allt släcks.
En knapp sitter mellan Batt+ och basen på en transistor med ett strömbegränsermotstånd mellan.
Transistorns emitter till GND.
Transistorns kollektor till portpinnen som har antingen pull-up inbyggd eller externt.
Alla knappars utgång samlas sedan med dioder (t.ex. 1N4148) vilket slår på spänningsregleringen via en transistor som driver power-on transistorn (P-MOSFET föreslår jag).
Vid att lägga till en diod mellan en portpinne och dioderna kan man bygga en "självhållare" så att när portpinnen är '1' stängs regulatorn inte av. Då kan styrningen göra vad som göras ska och när den är klar släpper den pinnen ner till '0' och allt släcks.
Re: Minimera strömförbrukning
Ja det var ju så jag menade men hur skyddar jag STM32 när knapparna ger spänning på ingångarna och VCC är avstängd till STM32?
Re: Minimera strömförbrukning
Detta står i datablad:
Input voltage on five-volt tolerant pin(2) : VDD+4 V
Betyder detta att jag kan koppla upp till 4 V om VDD är 0 V....
Input voltage on five-volt tolerant pin(2) : VDD+4 V
Betyder detta att jag kan koppla upp till 4 V om VDD är 0 V....