Kupunguza Matumizi ya Nguvu ya Betri kwa Digispark ATtiny85: Hatua 7
Kupunguza Matumizi ya Nguvu ya Betri kwa Digispark ATtiny85: Hatua 7
Anonim
Kupunguza Matumizi ya Nguvu ya Betri kwa Digispark ATtiny85
Kupunguza Matumizi ya Nguvu ya Betri kwa Digispark ATtiny85
Kupunguza Matumizi ya Nguvu ya Betri kwa Digispark ATtiny85
Kupunguza Matumizi ya Nguvu ya Betri kwa Digispark ATtiny85

au: Kuendesha Arduino na seli ya sarafu ya 2032 kwa miaka 2.

Kutumia Bodi yako ya Digispark Arduino nje ya sanduku na mpango wa Arduino huchota 20 mA kwa volt 5.

Na benki ya nguvu ya volt 5 ya 2000 mAh itaendesha kwa siku 4 tu.

Hatua ya 1: Kupunguza Voltage ya Ugavi kwa Kutumia LiPo Battery

Kupunguza Voltage ya Ugavi kwa Kutumia Battery ya LiPo
Kupunguza Voltage ya Ugavi kwa Kutumia Battery ya LiPo

Kutumia betri ya LiPo na volt 3.7 kama usambazaji bodi yako ya Digispark huchota tu 13 mA.

Na betri ya 2000 mAh itaendesha kwa siku 6.

Hatua ya 2: Punguza Saa ya CPU

Ikiwa hutumii unganisho la USB, hesabu nzito au upigaji kura haraka katika programu yako, punguza kasi ya saa. Mfano. kura ya infrared ya kupokea infrared maktaba IRMP inaendesha vizuri kwa 8 MHz.

Katika 1 MHz Digispark yako huchota 6 mA. Na betri ya 2000 mAh itaendesha kwa siku 14.

Hatua ya 3: Ondoa kwenye Bodi ya Power LED na Udhibiti wa Nguvu

Lemaza LED ya nguvu kwa kuvunja waya ya shaba inayounganisha LED ya nguvu na diode na kisu au ondoa / lemaza kontena la 102.

Kwa kuwa unatumia betri ya LiPo sasa, unaweza pia kuondoa mdhibiti wa nguvu ya bodi kwenye IC. Kwanza ondoa pini za nje kwa msaada wa chuma cha solder na pini. Kisha solder kontakt kubwa na uondoe mdhibiti. Kwa vidhibiti vidogo, tumia solder nyingi na pasha pini zote 3 pamoja, kisha uiondoe.

Kwa 1 MHz na volt 3.8 Digispark yako sasa inachora 4.3 mA. Na betri ya 2000 mAh itaendesha kwa siku 19.

Hatua ya 4: Kukatisha Kinga ya USB D- Pullup (iliyowekwa alama 152) Kutoka 5 Volt (VCC) na Unganisha kwa USB V +

Kukatisha USB D- Pullup Resistor (iliyowekwa alama 152) Kutoka 5 Volt (VCC) na Unganisha kwa USB V +
Kukatisha USB D- Pullup Resistor (iliyowekwa alama 152) Kutoka 5 Volt (VCC) na Unganisha kwa USB V +

Marekebisho haya yanaambatana na matoleo yote1.x ya micronucleus bootloader. Ikiwa tayari unayo bootloader mpya ya 2.x kwenye bodi yako, lazima uboreshe hadi toleo moja 2.5 na "activePullup" kwa jina lake. Njia rahisi ya kufanya hivyo, ni kusanikisha kifurushi kipya cha bodi ya digispark na kuchoma bootloader na toleo lililopendekezwa (!!! sio chaguo-msingi au fujo !!!).

Vunja waya wa shaba upande wa kontena ambayo inaelekeza kwa ATTiny. Hii inalemaza kiolesura cha USB na kwa upande uwezekano wa kupanga bodi ya Digispark kupitia USB. Ili kuiwezesha tena, lakini bado weka nguvu, unganisha kontena (iliyowekwa alama 152) moja kwa moja kwa USB V + ambayo inapatikana kwa urahisi upande wa nje wa diode ya shottky. Diode na pande zake sahihi zinaweza kupatikana kwa kutumia ujaribu wa mwendelezo. Upande mmoja wa diode hii imeunganishwa kwa kubandika 8 ya ATtiny (VCC) na Digispark 5V. Upande wa pili umeunganishwa na USB V +. Sasa kontena la pullup la USB linaamilishwa tu ikiwa bodi ya Digispark imeunganishwa na USB k.v. wakati wa programu.

Hatua 2 za mwisho pia zimeandikwa hapa.

Kwa 1 MHz na volt 3.8 Digispark yako sasa inachora 3 mA. Na betri ya 2000 mAh itaendesha kwa siku 28.

Hatua ya 5: Tumia Kulala badala ya Kuchelewa ()

Tumia Usingizi badala ya Kuchelewa ()
Tumia Usingizi badala ya Kuchelewa ()

Badala ya ucheleweshaji mrefu unaweza kutumia kulala nguvu ya CPU. Kulala kunaweza kudumu kutoka milliseconds 15 hadi sekunde 8 kwa hatua ya 15, 30, 60, 120, 250, 500 millisecond na 1, 2, 4, 8 sekunde.

Kwa kuwa wakati wa kuanza kutoka kulala ni milliseconds 65 na mipangilio ya fuse ya kiwanda cha digispark, ucheleweshaji tu mkubwa zaidi ya ms ms 80 unaweza kubadilishwa na kulala.

Wakati wa kulala Digispark yako huchota 27 µA. Na kiini cha kifungo cha 200 mAh 2032 kitalala kwa mwezi 10.

Ili kuwa sahihi, Digispark lazima angalau iamke kila sekunde 8, ikiendesha kwa angalau milisekunde 65 na kuchora karibu 2 mA sasa. Hii inasababisha wastani wa sasa wa 42 µA na mwezi 6. Katika hali hii haifanyi tofauti yoyote ikiwa programu yako inaendesha kwa milliseconds 10 (kila sekunde 8).

Nambari ya kutumia usingizi ni:

# pamoja na # pamoja na tete uint16_t sNambaOfSleeps = 0; nje tete isiyo sainiwa kwa muda mrefu millis_timer_millis; kuanzisha batili () {sleep_enable (); kuweka_mode_ya usingizi (SLEEP_MODE_PWR_DOWN); // hali ya usingizi kabisa…} kitanzi batili () {… sleepWithWatchdog (WDTO_250MS, kweli); // lala kwa 250 ms… sleepWithWatchdog (WDTO_2S, kweli); // kulala kwa 2 s…} / * * aWatchdogPrescaler inaweza kuwa 0 (15 ms) hadi 3 (120 ms), 4 (250 ms) hadi 9 (8000 ms) * / uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; kwa (uint8_t i = 0; naokoa 200 uA // use wdt_enable () kwani inashughulikia kuwa WDP3 kidogo iko kwenye 5 ya rejista ya WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Kukatiza kwa watazamaji kuwezesha + kuweka upya bendera ya kukatiza -> inahitaji ISR (WDT_vect) sei (); // Wezesha kukatiza usingizi_cpu (); kusababisha kuseti upya, kwani wdt_enable () inaweka Mfumo wa WDE / Uangalizi wa Kuweka upya Wezesha ADCSRA | = ADEN; / * * Kwa kuwa saa ya saa inaweza kuzimwa rekebisha millis ikiwa tu haijalala katika hali ya IDLE (SM2… 0 bits ni 000) * / if (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis + = computeSleepMillis (aWatchdogPrescaler);}} / * * Usumbufu huu unaamsha cpu kutoka usingizi * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Hatua ya 6: Rekebisha Fuses

22 mA ya 27 mA hutolewa na BOD (BrownOutDetection / undervoltage detection). BOD inaweza kulemazwa tu kwa kupanga upya fuses, ambayo inaweza kufanywa tu na programu ya ISP. Kutumia hati hii unaweza kupunguza sasa hadi 5.5 µA na pia kupunguza muda wa kuanza kutoka kulala hadi milisekunde 4.

5 ya 5.5 iliyobaki areA huchorwa na kaunta inayotumika ya mwangalizi. Ikiwa unaweza kutumia seti za nje kuamka, ujumuishaji wa sasa unaweza kwenda chini kwa 0.3 µA kama ilivyoonyeshwa kwenye data ya data.

Ikiwa huwezi kufikia dhamana hii, sababu inaweza kuwa, kwamba mkondo wa nyuma wa diode ya schottky kati ya VCC na pullup ni ya juu sana. Kumbuka kuwa kinzani cha 12 MOhm pia huchota 0.3 µA kwa 3.7 volt.

Hii inasababisha matumizi ya wastani ya sasa ya 9 µA (miaka 2.5 na kitufe cha 200 mAh kiini 2032) ikiwa n.k. mchakato data kila sekunde 8 kwa milliseconds 3 kama hapa.

Hatua ya 7: Habari zaidi

Mchoro wa sasa wa bodi ya Digispark.

Mradi ukitumia maagizo haya.

Ilipendekeza: