Kysymys:
Herääminen syvästä lepotilasta
vicatcu
2010-12-01 03:49:57 UTC
view on stackexchange narkive permalink

Useimmat mikrokontrollerit (esim. AVR: t, MSP430: t, PIC: t jne.) tukevat useita erilaisia ​​lepotiloja. "Syvin" lepotila on se, joka käyttää pienintä virrankulutusta (esim. "Virta pois", "Sammuta"), mutta kaikki kellojärjestelmät yleensä pysäytetään näissä tiloissa ja minusta tuntuu, että ainoa tapa " herätä "heistä tapahtuu ulkoisen ärsykkeen kautta (esim. pin-vaihdon keskeytykset, sirun nollaus). Puuttuuko minulta jotain? Onko olemassa hämmästyttävän vähän virtaa kuluttavia menetelmiä jaksottaisen herätyssignaalin tuottamiseksi MCU: lle?

Olettaen, että tavoitteeni on minimoida virrankulutus (eli nukkua syvästi niin kauan kuin mahdollista, pysyä hereillä mahdollisimman lyhyesti) samalla kun ajoittain herääminen suorittamaan toiminto, mikä on yleinen tapa saavuttaa tällainen käyttäytyminen? Asiat voidaan yksinkertaistaa edelleen olettaen, että toimintoni on valtioton (minun ei tarvitse muistaa mitään menneisyydestä sen suorittamiseksi).

Minulla on ollut jonkin verran menestystä WDT: n käyttämisessä MSP430: ssa tämän vaikutuksen saamiseksi. Tein juuri pääohjelmani tehtäväksi, ja viimeinen rivi antaa vahtikoiran ajastimen päättyä tietyn ajan kuluttua ja siirtyä LPM4.5: ään tai mihin tahansa "syvän unen" tilaan kutsutaan. Tuloksena on, että toiminto suoritetaan, MCU nukkuu, WDT vanhenee ja siru nollautuu ad nauseum. Näyttää toimivan, mietitkö vain, onko olemassa "parempi", "tyylikkäämpi" vai "energiatehokkaampi" tapa saada tällainen käyttäytyminen?

En ole vielä kokeillut tätä lähestymistapaa AVR: llä , mutta mielestäni WDT on enemmän "tehonälkäinen" AVR-laitteissa kuin MSP430: ssä, joten se ei ehkä ole yhtä houkutteleva pienitehoisessa työssä. Ehkä ei ole "universaalia" lähestymistapaa pienitehoiseen toimintaan, ja sinun on käytettävä tietyn tuotevalikoiman tarjoamia työkaluja? Tiedän, että uudella picoPower-linjalla on paljon whiz-bang -ominaisuuksia, kuten tapahtumajärjestelmä ja unikävely, jotka joissakin tapauksissa tuskin vaativat suorittimen olevan hereillä, jos pystyt tekemään sovelluksestasi sopivan tähän rakenteeseen ...

Okei tarpeeksi vaelluksestani, anna tässä mitä sinun on sanottava :)

Muokkaa Konkreettisia esimerkkejä tekniikoista olisi myös hienoa!

Oletko nähnyt http://focus.ti.com/lit/wp/slay015/slay015.pdf? Joitakin mielenkiintoisia kohtia absoluuttisten lepotilalukujen lisäksi.
Neljä vastused:
markrages
2010-12-01 04:05:34 UTC
view on stackexchange narkive permalink

Suurin osa mikroista tukee pienitehoista 32,768 kHz: n kellokideoskillaattoria, jolla on jonkinlainen esiasteikko ja ajastimen keskeytys. Aseta esilaajennus niin, että ajastin laskee hitaasti ja keskeytys tapahtuu haluamallasi ajanjaksolla.

Joissakin mikrossa on myös sisäänrakennettu pienitehoinen RC-ajastin, jos tarkka ajoitus ei ole kriittinen.

Kaikkien pienitehoisten mikrojen tietolomakkeessa luetellaan teho, kun 32,768 oskillaattori (eikä mitään muuta) on käynnissä. Se on melko lähellä nollaa. Voit tehdä matematiikan nähdäksesi, onko tämä hyväksyttävää, ja verrata sitä vahtikoiran vetämään virtaan.

OK, esimerkiksi msp430f2013: ssa, tarkastellaan tehoa taulukossa.

0,5 μA on melkein nolla, vaikka se on viisi kertaa todellinen POIS-tila.

Lisätietoja saat katsomalla taulukkoon.
Siirtyminen LPM4: stä (kaikki pois päältä) LPM3: een ( oskillaattorin käyttö) on ero 0,5 μA: n ja 1 μA: n välillä.

Oletetaan, että akku on CR2032 ja kapasiteetti 225 mAh. Sitten valmiustila LPM4: ssä on noin 50 vuotta ja LPM3: ssa noin 25 vuotta. 25 vuotta on tarpeeksi pitkä monille sovelluksille, koska ON-virta (itse mittauksen aikana) hallitsee kulutusta.

alt text

voit valita konkreettisen esimerkin ... :)
valmis, msp430f2013- ja cr2032-soluille.
Käytämme Cr2032: ta työssäni ACLK: n kanssa numerossa 32768, heräten joka toinen sekunti. Käytämme lähetinvastaanotinta 90 sekunnin välein. Suoritamme lämpötilan mittauksen 10 sekunnin välein. Voimme kestää yli 4 vuotta uudella CR2032: lla.
mikeselectricstuff
2010-12-01 05:27:03 UTC
view on stackexchange narkive permalink

Joissakin osissa on melko pienitehoiset oskillaattorit (muutama uA) herätystä varten, ja joissakin PIC-laitteissa on myös laitteisto, joka sallii tapin hyvin hitaasti nousevan jännitteen heräämisen - tämä voi johtua ulkoisesta kondensaattorista, joka on asetettu ennen nukkumista lataudu vaaditulla herätysajalla.

Thomas O
2010-12-01 05:48:16 UTC
view on stackexchange narkive permalink

PIC-laitteilla, joissa on RTC, voi olla, että RTC on asetettu hälytystilaan, joten se herättää MCU: n tiettynä ajankohtana ulkoisella 32,768 kHz: n kristallilla. He vetävät ~ 450nA IIRC: tä RTC + -tilassa, mutta vain 20nA, kun RTC on pois päältä.

FlashCactus
2016-02-29 16:16:52 UTC
view on stackexchange narkive permalink

AVR-vartija-ajastimet eivät ole niin huonoja kuin luulet ajattelevasi. ATTiny13A-tietolomakkeen mukaan virranotto virrankatkaisutilassa @ 3V on 2μA ilman WDT: tä ja 4μA kanssa. Toki, se on 2x enemmän, mutta virta itsessään on riittävän pieni noin 6,2 vuoden toimintaan, mikä on suunnilleen sama aika kuin akun kuluminen itsestään joka tapauksessa (lähde: parasta ennen -päivämäärä).

Lisäksi käytännössä kaikki muut, jotka kiinnität μC: n ympärille, vetävät paljon enemmän. Itse asiassa tällaisen pienitehoisen piirin suunnittelun hankalin osa on sulkea kaikki nykyisen kaavion virrat lepojakson aikana.

Herätysviive on myös mukavasti konfiguroitavissa, ~ 12 ms - 8 s , jos muisti ei palvele. Todellisella taajuudella ei ole mitään havaittavaa eroa, jos käytetään lyhyitä keskeytysrutiinia: pääsin pääsemään ADC: n päälle, ottamaan näytteitä 1K-potista, laskemaan joitain juttuja tuloksista ja menemään takaisin nukkumaan ilman huomattavaa muutosta kokonaiskulutuksessa ( tasoitettu suurella kondensaattorilla kompensoimaan yleismittarini hitautta).

Huomaa, että WDT ei ole tarkka ajanottotyökalu, joten sinun kannattaa kytkeä ulkoinen RTC. Ne voivat kuluttaa vain nanoamppeja, joten sen pitäisi olla hyvä pariliitos. Itse asiassa, jos kyseinen RTC pystyy tuottamaan säännöllisiä pulsseja, voit käyttää sitä herätyslähteenä WDT: n sijasta tapin käyttämisen kustannuksella.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
Loading...