- Mga Diskarte sa Pag-save ng Kuryente para sa Mga Microcontroller
- 1. Mga Mode sa Pagtulog
- 2. Dynamic na Pagbabago ng Frequency ng Processor
- 3. Makagambala sa Straktura ng Firmware ng Handler
- 4. Power Optimised Firmware
- Konklusyon
Tulad ng gas (petrol / diesel) na mahalaga para sa mga bisikleta, trak at kotse (oo, hindi kasama ang Teslas!) Upang lumipat, gayundin ang lakas ng kuryente para sa karamihan ng mga application na electronics at higit pa, para sa mga naka-embed na application na nakabatay sa system na karaniwang baterya (limitadong enerhiya) pinapatakbo, mula sa regular na mga mobile phone hanggang sa mga smart home device bukod sa iba pa.
Ang Limitadong likas na katangian ng lakas ng baterya ay nagpapahiwatig ng pangangailangan upang matiyak na ang rate ng pagkonsumo ng kuryente ng mga aparatong ito ay dapat na makatwiran upang hikayatin ang kanilang pag-aampon at paggamit. Lalo na sa mga aparato na nakabatay sa IoT kung saan ang isang aparato ay maaaring asahan na tatagal hanggang 8 - 10 taon sa isang solong singil nang walang kapalit na baterya.
Ang mga kalakaran na ito ay gumawa ng pagpapatupad ng mababang pagsasaalang-alang sa kuryente sa disenyo ng mga naka-embed na system at sa paglipas ng mga taon, ang mga tagadisenyo, inhinyero at tagagawa sa maraming punto ay nakabuo ng maraming matalinong paraan ng mabisang pamamahala ng kuryente na natupok ng mga produkto, upang matiyak na magtatagal sila sa isang solong singil. Marami sa mga diskarteng ito ay nakatuon sa microcontroller, na siyang puso ng karamihan sa mga aparato. Sa artikulong ngayon, susisiyasatin namin ang ilan sa mga diskarteng ito at kung paano ito magagamit upang mabawasan ang pagkonsumo ng kuryente sa mga microcontroller. Bagaman ang isang Microprocessor ay kumonsumo ng mas kaunting lakas ngunit maaari itong magamit sa paglagay sa Microcontroller saanman, sundin ang link upang malaman kung paano naiiba ang Microprocessor mula sa Microcontroller.
Mga Diskarte sa Pag-save ng Kuryente para sa Mga Microcontroller
1. Mga Mode sa Pagtulog
Ang mga mode ng pagtulog (karaniwang tinutukoy bilang mababang mga mode ng kuryente) ay masasabing pinakatanyag na pamamaraan para sa pagbawas ng pagkonsumo ng kuryente sa mga microcontroller. Karaniwan silang nagsasangkot ng hindi pagpapagana ng ilang mga circuitry o orasan na naghihimok ng ilang mga peripheral ng mga microcontroller.
Nakasalalay sa arkitektura at tagagawa, ang mga microcontroller ay karaniwang may iba't ibang uri ng mga mode sa pagtulog, na ang bawat mode ay nagtataglay ng kakayahang hindi paganahin ang mas panloob na circuitry o paligid kung ihahambing sa iba pa. Ang mga mode ng pagtulog ay karaniwang saklaw mula sa mahimbing na pagtulog o pag-off, sa mga mode na idle at doze.
Ang ilan sa mga magagamit na mode ay ipinaliwanag sa ibaba. Dapat pansinin na ang mga katangian pati na rin ang pangalan ng mga mode na ito ay maaaring magkakaiba mula sa tagagawa hanggang sa tagagawa.
ako Idle / Sleep Mode
Karaniwan itong ang pinakasimpleng ng mababang mga mode ng kuryente para ipatupad ng mga taga-disenyo. Pinapayagan ng mode na ito ang microcontroller na bumalik sa buong operasyon sa isang napakabilis na rate. Samakatuwid hindi ito ang pinakamahusay na mode, kung ang ikot ng kuryente ng aparato, kinakailangan itong iwanan ang mode ng pagtulog nang madalas, dahil ang isang malaking halaga ng lakas ay iginuhit, kapag ang microcontroller ay lumabas sa mode ng pagtulog. Bumalik sa aktibong mode mula sa standby mode ay karaniwang nakagambala batay. Ang mode na ito ay ipinatupad sa microcontroller sa pamamagitan ng pag-off ng puno ng orasan na nagdadala sa CPU circuitry habang ang MCU pangunahing mataas na dalas ng orasan ay pinananatiling tumatakbo. Sa pamamagitan nito, agad na maipagpapatuloy ng CPU ang pagpapatakbo kaagad ang activation ng paggising ay naaktibo. Ang gating na orasan ay nagtatrabaho nang malawakan upang maputol ang mga signal sa mababang mga mode ng kuryente para sa mga microcontroller at ang mode na ito na mabisang nag-i-gate ng mga signal ng orasan sa CPU.
ii. Standby Mode
Ang Standby Mode ay isa pang mababang mode ng kuryente, madali para sa mga taga-disenyo na ipatupad. Ito ay halos kapareho sa idle / sleep mode dahil nagsasangkot din ito ng paggamit ng gating ng orasan sa buong CPU, ngunit ang isang pangunahing pagkakaiba ay pinapayagan itong baguhin ang nilalaman ng ram na hindi karaniwang nangyayari sa idle / sleep mode. Sa Standby mode, ang mga high-speed peripheral tulad ng DMA (direktang pag-access sa memorya), Serial Ports, ADC at AES peripheral ay pinananatiling tumatakbo upang matiyak na magagamit kaagad pagkatapos ng paggising ng CPU. Para sa ilang mga MCU, ang RAM ay pinananatiling aktibo din at maaaring ma-access ng DMA na pinapayagan ang data na maiimbak at matanggap nang walang interbensyon ng CPU. Ang lakas na iginuhit sa mode na ito ay maaaring mas mababa sa 50uA / MHZ para sa mga mababang power microcontroller.
iii. Deep Sleep Mode
Ang mode ng malalim na pagtulog, sa pangkalahatan ay nagsasangkot ng hindi pagpapagana ng mga orasan ng mataas na dalas at iba pang mga circuitries sa loob ng microcontroller na iniiwan lamang ang circuitry ng orasan na ginagamit upang himukin ang mga kritikal na elemento tulad ng timer ng bantay, brown out detection at ang lakas sa pag-reset ng circuitry. Ang iba pang mga MCU ay maaaring magdagdag ng iba pang mga elemento dito upang mapabuti ang pangkalahatang kahusayan. Ang pagkonsumo ng kuryente sa mode na ito ay maaaring mas mababa sa 1uA depende sa partikular na MCU.
iv. Stop / OFF Mode
Ang ilang mga microcontroller ay may iba't ibang mga pagkakaiba-iba ng karagdagang mode na ito. Sa mode na ito, kapwa ang mataas at mababang oscillator ay karaniwang hindi pinagana na nag-iiwan lamang ng ilang mga rehistro ng pagsasaayos at iba pang mga kritikal na elemento.
Ang mga tampok ng lahat ng mga mode sa pagtulog na nabanggit sa itaas ay naiiba mula sa MCU hanggang MCU ngunit ang pangkalahatang tuntunin ng hinlalaki ay; mas malalim ang pagtulog, mas maraming bilang ng mga peripheral na hindi pinagana habang natutulog, at mas mababa ang dami ng natupok na kuryente, bagaman, karaniwang nangangahulugan din ito; mas mataas ang dami ng natupok na enerhiya upang ma-back up ang system. Nakasalalay sa taga-disenyo na isaalang-alang ang pagkakaiba-iba na ito at piliin ang tamang MCU para sa gawain nang hindi gumagawa ng mga kompromiso na nakakaapekto sa pagtutukoy ng system.
2. Dynamic na Pagbabago ng Frequency ng Processor
Ito ay isa pang malawak na tanyag na pamamaraan para sa mabisang pagbawas ng dami ng lakas na natupok ng isang microcontroller. Ito ang pinakamatandang pamamaraan at medyo mas kumplikado kaysa sa mga mode ng pagtulog. Ito ay nagsasangkot ng firmware na pabagu-bago sa pagmamaneho ng processor na orasan, alternating pagitan ng mataas at mababang dalas habang ang ugnayan sa pagitan ng dalas ng processor at ang dami ng natupok na kuryente ay linear (tulad ng ipinakita sa ibaba).
Ang pagpapatupad ng diskarteng ito ay karaniwang sumusunod sa pattern na ito; kapag ang sistema ay nasa isang idle na estado, itinatakda ng firmware ang dalas ng orasan sa isang mababang bilis na pinapayagan ang aparato na makatipid ng ilang lakas at kapag kailangang gumawa ng mabibigat na pagkalkula ang system, ibabalik ang bilis ng orasan.
Mayroong mga hindi produktibong sitwasyon sa pagbabago ng dalas ng processor na kadalasang resulta ng hindi magandang binuo firmware. Ang mga nasabing senaryo ay lumitaw kapag ang dalas ng orasan ay itinatago sa isang mababang habang ang system ay gumaganap ng mabibigat na pagkalkula. Ang isang mababang dalas sa senaryong ito ay nangangahulugan na ang system ay kukuha ng mas maraming oras kaysa kinakailangan upang maisagawa ang itinakdang gawain at sa gayon ay maipon na ubusin ang parehong dami ng lakas na sinusubukang i-save ng mga taga-disenyo. Sa gayon, kailangang mag-ingat nang labis kapag ipinapatupad ang diskarteng ito sa mga kritikal na aplikasyon sa oras.
3. Makagambala sa Straktura ng Firmware ng Handler
Ito ay isa sa pinaka matinding pamamaraan ng pamamahala ng kuryente sa mga microcontroller. Ginagawa itong posible ng ilang mga microcontroller tulad ng, ang mga core ng ARM cortex-M na mayroong sleep-on-exit na bit sa rehistro ng SCR. Ang bit na ito ay nagbibigay ng microcontroller na may kakayahang matulog pagkatapos ng pagpapatakbo ng isang nakakagambalang gawain. Habang may isang limitasyon sa bilang ng mga application na tatakbo nang maayos sa ganitong paraan, maaaring ito ay isang napaka kapaki-pakinabang na pamamaraan para sa mga sensor ng patlang at iba pang, pangmatagalang, nakabatay sa mga aplikasyon ng batay sa data.
Karamihan sa iba pang mga diskarte sa aking sariling opinyon ay mga pagkakaiba-iba ng mga nabanggit na sa itaas. Halimbawa ang pumipili na peripheral na orasan na pamamaraan ay mahalagang pagkakaiba-iba ng mga mode ng pagtulog kung saan pipiliin ng taga-disenyo ang mga peripheral upang i-on o i-off. Ang pamamaraan na ito ay nangangailangan ng isang malalim na kaalaman sa target na microcontroller at maaaring hindi masyadong magiliw sa baguhan.
4. Power Optimised Firmware
Ang isa sa mga pinakamahusay na paraan ng pagbawas ng dami ng lakas na natupok ng isang microcontroller ay sa pamamagitan ng pagsusulat ng mahusay at na-optimize na firmware. Direktang nakakaapekto ito sa dami ng gawaing ginagawa ng CPU bawat oras at ito, sa pamamagitan ng extension ay nag-aambag sa dami ng natupok na kuryente ng microcontroller. Ang mga pagsisikap ay dapat gawin habang sinusulat ang firmware upang matiyak na nabawasan ang laki ng code at mga pag-ikot ng bawat hindi kinakailangang tagubilin na naisakatuparan, ay isang bahagi ng enerhiya na nakaimbak sa baterya na nasayang. Nasa ibaba ang ilang mga karaniwang tip na batay sa C para sa na-optimize na pag-unlad ng firmware;
- Gamitin ang Klase na "Static Const" hangga't maaari upang maiwasan ang pagkopya ng runtime ng mga arrays, istraktura atbp na kumokonsumo ng lakas.
- Gumamit ng mga Puro. Marahil sila ang pinakamahirap na bahagi ng wikang C upang maunawaan para sa mga nagsisimula ngunit sila ang pinakamahusay para sa mahusay na pag-access sa mga istruktura at unyon.
- Iwasan ang Modulo!
- Mga lokal na variable sa paglipas ng mga pandaigdigan na variable kung maaari. Ang mga lokal na variable ay nakapaloob sa CPU habang ang mga variable ng mundo ay nakaimbak sa RAM, mas mabilis na na-access ng CPU ang mga lokal na variable.
- Ang mga hindi naka-sign na uri ng data ay ang iyong matalik na kaibigan kung posible.
- Magpatibay ng "countdown" para sa mga loop kung posible.
- Sa halip na mga patlang na bit para sa mga hindi naka-sign na integer, gumamit ng mga bit mask.
Ang mga diskarte para sa pagbawas ng dami ng lakas na natupok ng isang microcontroller ay hindi limitado sa mga diskarte na batay sa software na nabanggit sa itaas, ang mga diskarte na batay sa hardware tulad ng diskarteng pangunahing kontrol ng boltahe, mayroon, ngunit upang mapanatili ang haba ng post na ito sa loob ng isang makatuwirang saklaw, makatipid kami ang mga ito para sa isa pang araw.
Konklusyon
Ang pagpapatupad ng mababang produkto ng kuryente ay nagsisimula mula sa pagpili ng microcontroller at maaari itong maging lubos na nakalilito kapag sinubukan mong subaybayan ang magkakaibang mga pagpipilian na magagamit sa merkado. Habang ang pag-scan sa pamamagitan ng, ang datasheet ay maaaring gumana nang maayos para sa pagkuha ng pangkalahatang pagganap ng mga MCU, ngunit para sa mga kritikal na aplikasyon ng kapangyarihan, maaari itong maging isang napakamahal na diskarte. Upang maunawaan ang totoong mga katangian ng kuryente ng isang microcontroller, dapat isaalang-alang ng mga developer ang mga pagtutukoy ng elektrikal at ang mababang pag-andar ng kuryente na magagamit sa microcontroller. Ang mga taga-disenyo ay hindi lamang dapat mag-alala tungkol sa kasalukuyang pagkonsumo ng bawat isa sa mga mode ng kuryente na na-advertise ng datasheet ng MCU, dapat nilang tingnan ang oras ng paggising, mga mapagkukunan ng paggising, at mga peripheral na magagamit para magamit sa panahon ng mababang mga mode ng kuryente.
Mahalagang suriin ang mga tampok ng microcontroller na balak mong gamitin upang matiyak ang mga pagpipilian na mayroon ka para sa mababang pagpapatupad ng kuryente. Ang mga Microcontroller ay naging isa sa pinakamalaking beneficiary ng pagsulong ng teknolohiya at mayroon na ngayong maraming mga ultra-low-power microcontroller na tinitiyak na mayroon kang mapagkukunan upang matulungan kang manatili sa loob ng iyong badyet sa kuryente. Ang bilang ng mga ito ay nagbibigay din ng maraming mga tool sa software ng pagsusuri ng kuryente na maaari mong samantalahin, para sa mabisang disenyo. Ang isang personal na paborito ay ang linya ng MSP430 ng mga microcontrollers mula sa Texas Instrument.