Sänka strömförbrukningen hos en Arduino Mega 2560?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Håller på med ett litet solvärme experiment i en liten stuga och har planerat att övervaka det hela för att om projektet har någon verkan vintertid. (Soligt logger projekt)
Enda källan till energi vintertid är en solcell på ~35w + batteri på 12v 12AH så det gäller att planera energisnålt då solen troligen inte kommer att vara närvarande jämnt.
Ska använda mig av en Arduino Mega 2560 som har en del "Onboard" pryttlar som bör inaktiveras för att sänka energiförbrukningen som är kring 70~90mA (har även läst upp till 200mA på olika forum) original och ge lång driftstid. Ska mata den med spänning från en extern effektiv stepdown omvandlare från 12v till 5v.
Hoppas kunna få ner förbrukningen till iaf. 1mA eller mindre. (Enligt spec. så ska det vara möjligt att komma ned till ~10uA för bara microcontrollern.)

Frågan är bara vilka kretsar och var man ska sätta skalpellen för att optimera strömförbrukningen...

IC4 ATMEGA 16U2-MU (USB interfacet) har jag kapat pinne 4 och 32 men sett till att jag ska kunna koppla till byglar för framtida bruk/programmering. Ska göra kring 15 mA.

Grön Led för "ON" kapad, bör göra kring 3 mA.
Gul Led för "Pin13" kapad, OM den används aktivt till något så är det 3 mA vunnet där med.
Gula Led's för RX och TX, är ju kopplade till IC4 (16U2) så dessa bör redan vara inaktiva annars är det ytterligare några mA.

Men sedan är det lite osäkert. IC1 5v stab borde kunna uteslutas vilket ger ca. 5mA till.
Men hur är det med IC6 3,3v staben? och IC7B som är till för känna av om "VIN" hamnat under 6,6v och i så fall kopplar över till USB spänningen via en MOSFET T1. IC7A styr Led13 från Pin13 så den är kan kopplas bort.

Efter det så är det väl olika sovlägen som ytterligare kan begränsa förbrukningen.
Har jag missat något? Har någon här erfarenhet av att ha grävt i en Mega för att minska strömförbrukningen?
Borre
Inlägg: 4608
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Borre »

Du kan ta bort/koppla bort i princip allt förutom Atmegan. 3.3V används inte av den och 5V-regulatorn behövs inte om du matar den med 5V från annat håll.

Strömförbrukningen du angav, 10uA, är vid sleep.
Vid 5V och 16MHz är det sannolikt uppåt 20mA i aktivt läge. Kolla databladet för exakta siffror.

Så för låg strömförbrukning sov processorn så mycket som möjligt. För än lägre förbrukning använd lägre frekvens och matningsspänning.
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Tack Borre!
Du vet händelsevis inte var på kortet för en Rev. 3 man ska kapa för att bli av med 5v och 3,3v för att enkelt kunna återställa vid behov? :)

Japp, stämmer, 10uA vid sömn men glömde skriva det. Tänkte som sagt söva processorn så ofta det går.
Vet du om sänkt klockfrekvens påverkar saker som kommunikationshastigheter för de olika seriella gränssnitten och funktioner som tex. Delay mfl.?
Borre
Inlägg: 4608
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Borre »

Nej. Men gissningsvis direkt i närheten av de bägge regulatorerna.

Delay påverkas inte. Maximal kommunikationshastighet minskar med lägre klockfrekvens, men kan inte tänka mig att det skulle vara ett problem.

Men för enkelhetens skulle så börja med att få bort förbrukningen för alla andra kretsar först, mät sen hur mycket ström kortet drar.
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Tackar och bugar för svar!
Plockar nog bort båda regulatorerna helt, verkar få kapa på många ställen annars och kanske riskerar att få backströmmar in i de gamla komponenterna om jag missar något.
Hade varit enklare med ett kort med bara processorn på och inget krimskrams runt om. ;)
JanErik
Inlägg: 3191
Blev medlem: 11 februari 2008, 17:15:58
Ort: Vasa, Finland

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av JanErik »

Här finns en ganska bra sammanfattning och mätningar hur mycket det sparar, för 328 dock;
http://www.gammon.com.au/forum/?id=11497
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Check, har tittat på den tidigare och det gav ju lite hintar men har faktiskt inte hittat någon version som behandlar Megan mer än här: http://forum.arduino.cc/index.php?topic=179013.0
Har nu lobotomerat IC7 (dubbel OP), 3.3v staben och T1 som har hand om 5v switchningen om Vin lägger av. Tog bort F1 för USBVCC och IC1 (5v staben) och kom ned till ca. 40mA.
Har byglar till pin 4 och 32 på IC4 (16u2 USB) för att kunna programmera och med dem borttagna går jag ned till 25mA.
Ska prova att söva den lille gynnaren nu och se vad det kan ge. :)
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Ok!... Sömniga resultat då...
Kod:
#include <avr/sleep.h>

void setup ()
{
set_sleep_mode (SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu ();
} // end of setup

void loop () { }

1. Med USB inkopplad och 16u8 inkopplad = 21mA
2. USB kabel till PC bortkopplad men 16u8 fortfarande inkopplar = 16mA
3. 16u8 bortkopplad = 0,68 mA YES!!! :D

Noterar att led'arna för RX och TX "glöder" svagt så backspänningar där genom IC4 (16u2), ska temporärt plocka bort dem och se. Lär nog ge än lägre resultat. :)
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

... och med RX och TX led'arna bortkopplade så är jag nu nere på 500uA. Helt ok för mig! :happy:
Can ALWAYS do better, I know! :wink: men då tror jag att det ligger på programmerings stadiet och sänka klockhastighet mm. och det känns lite overkill... for now. :D
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av SeniorLemuren »

Denna kanske är lite lättare att kapa bort onödiga saker på.Den är ju redan lite nerbantad.
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

OOHHH!! :drool: Perfekt!! En sådan ska genast beställas! Tackar för tipset SeniorLemuren! :tumupp:

(Notering i fall länken skulle bli gammal: Det är en Mega2560-CORE mini 2560)
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Ok.. så nu har jag nått en lägre strömförbrukning men dragit på mig ett annat problem nämligen att när jag väl sänt över min kod till Megan så tappar jag den seriella kommunikationen.
Komponenterna A,B,C och D är borttagna. (Byglat mellan ben 3 till ben 2 där spänningsstabb'en (B) satt tidigare för att få in den externa 5 volten på kortet. Se röd markering.)
Funderar på att återinföra säkringen (A) igen då jag missat att det påverkar den interna 3,3v i USB kretsen.

"Fel vid öppning av serieporten 'COM10'. (Port busy)" får jag till svar när jag försöker öppna seriella monitorn.
Trycka på Reset knappen hjälper inte.
Drar jag ur strömmen blir det "Board at COM10 is not available" till svar.
MEN drar jag ut USB kabeln och sätter tillbaka den så funkar det som smort. Hmmm..

Har ju kapat en del banor i min jakt på strömförbrukare, är där någon hårdvarufunktion som gör reset på USB serie porten i vanliga fall när man tankat över sin kod?


(X- med nummer markerar de olika platser jag kapat banorna och punkterna F + G , H + i samt J + K har kopplats till byglar för att kunna aktiveras om programmering ev. ska göras.)


EDIT: Rättelse. Säkring (A) måste vara kvar för att den interna 3.3v i 16U2 ska fungera annars hamnar den i limbo efter en programmering och serieporten slutar att fungera. För säkerhets skull tog jag även bort Mosfet transistorn (E) för att förhindra att ev. spänning från USB läcker över till resten av kortet eller omvänt när kortet matas av extern källa.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Senast redigerad av Bigstone 31 juli 2016, 17:29:05, redigerad totalt 5 gånger.
Användarvisningsbild
SeniorLemuren
Inlägg: 8426
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av SeniorLemuren »

Jag har råkat ut för det där. Tryck in resetknappen på kortet och därefter ladda kod inom en sekund, då lyssnar den. Alltså i princip samtidigt men alltid reset först.

Edit: Det funkade för mig men det kan ju vara något annat förståss.
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Provade ditt förslag men den är lika bångstyrig varje gång.. Ska montera tillbaka säkringen för USBVcc och ev. avlägsna Cmos transistorn (E?) så jag inte får ut 5v från USB'n på resten av kortet.
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Re: Sänka strömförbrukningen hos en Arduino Mega 2560?

Inlägg av Bigstone »

Och så var det problemet löst! USBVcc ska man alltså INTE ta bort om man vill ha kvar seriella funktionen i sin helhet. :doh: Nåja, slutet gott. :wink:

Ska uppdatera pcb-bilden utifall någon mer söker efter möjligheten att trimma sin Mega till snålhet. Blir att beställa en Mega Core iaf. men har inte tid att vänta 4 veckor på den. ;)
Tack för tips igen SeniorLemuren!
Skriv svar