close

Meminimalkan Konsumsi Daya pada Mikrokontroler

Sama seperti bensin/solar penting untuk sepeda motor, truk dan mobil (ya, tidak termasuk Teslas!) untuk bergerak, begitu juga tenaga listrik untuk sebagian besar aplikasi elektronik dan lebih lagi, untuk aplikasi berbasis sistem tertanam yang biasanya baterai ( energi terbatas), antara lain, dari ponsel biasa hingga perangkat rumah pintar.

Meminimalkan Konsumsi Daya pada Mikrokontroler

Sifat daya baterai yang terbatas menyiratkan kebutuhan untuk memastikan tingkat konsumsi daya perangkat ini harus wajar untuk mendorong adopsi dan penggunaannya. 

Terutama dengan perangkat berbasis IoT di mana perangkat diharapkan dapat bertahan selama 8 – 10 tahun dengan sekali pengisian daya tanpa penggantian baterai.

Tren ini telah membuat penerapan pertimbangan daya rendah dalam desain sistem tertanam dan selama bertahun-tahun, desainer, insinyur, dan produsen di beberapa titik telah mengembangkan beberapa cara cerdas untuk mengelola daya yang dikonsumsi secara efektif oleh produk, untuk memastikan bahwa komponen bertahan lebih lama pada muatan tunggal. 

Banyak dari teknik ini berfokus pada mikrokontroler, yang merupakan jantung dari sebagian besar perangkat. Dalam artikel hari ini, kita akan mengeksplorasi beberapa teknik ini dan bagaimana teknik ini dapat digunakan untuk meminimalkan konsumsi daya di mikrokontroler. 

Meskipun Mikroprosesor mengkonsumsi lebih sedikit daya tetapi dapat digunakan di mana saja pada Mikrokontroler, ikuti tautan untuk mempelajari bagaimana Mikroprosesor berbeda dari Mikrokontroler, untuk mengetahui perbedaannya silahkan baca 4 Perbedaan Mendasar Antara Mikrokontroler dan Mikroprosesor

Teknik Hemat Daya untuk Mikrokontroler

1. Sleep mode

Sleep mode (umumnya disebut sebagai mode daya rendah) bisa dibilang merupakan teknik paling populer untuk mengurangi konsumsi daya di mikrokontroler. Sleep mode umumnya melibatkan penonaktifan sirkuit atau jam tertentu yang menggerakkan periferal tertentu dari mikrokontroler.

Tergantung pada arsitektur dan pabriknya, mikrokontroler biasanya memiliki jenis sleep mode yang berbeda, dengan setiap mode memiliki kemampuan untuk menonaktifkan lebih banyak sirkuit internal atau periferal dibandingkan dengan yang lain. Sleep mode biasanya berkisar dari deep sleep atau off, hingga mode idle dan doze.

Beberapa mode yang tersedia dijelaskan di bawah ini. Perlu dicatat bahwa karakteristik serta nama mode ini dapat bervariasi dari pabrikan ke pabrikan.

  • Mode Diam/Tidur

Ini biasanya yang paling sederhana dari mode daya rendah untuk diterapkan oleh desainer. Mode ini memungkinkan mikrokontroler untuk kembali ke operasi penuh pada tingkat yang sangat cepat. 

Oleh karena itu bukan mode terbaik, jika siklus daya perangkat, mengharuskannya untuk meninggalkan sleep mode sangat sering, karena sejumlah besar daya diambil, ketika mikrokontroler keluar dari sleep mode. Kembali ke mode aktif dari mode siaga biasanya berbasis interupsi. Mode ini diimplementasikan pada mikrokontroler dengan mematikan pohon jam yang menggerakkan sirkuit CPU sementara jam frekuensi tinggi utama MCU tetap berjalan. 

Dengan ini, CPU dapat melanjutkan operasi segera setelah pemicu bangun diaktifkan. Clock gating telah digunakan secara ekstensif untuk memotong sinyal dalam mode daya rendah untuk mikrokontroler dan mode ini secara efektif membuka sinyal clock di seluruh CPU.

  • Mode siaga

Mode Siaga adalah mode daya rendah lainnya, mudah diterapkan oleh desainer. Ini sangat mirip dengan mode idle/sleep karena juga melibatkan penggunaan clock gating di CPU, tetapi satu perbedaan utama adalah memungkinkan perubahan isi ram yang biasanya tidak terjadi pada mode sleep. 

Dalam mode Siaga, periferal berkecepatan tinggi seperti DMA (akses memori langsung), Port Serial, periferal ADC dan AES tetap berjalan untuk memastikan dapat segera berjalan setelah CPU aktif. 

Untuk MCU tertentu, RAM juga tetap aktif dan dapat diakses oleh DMA yang memungkinkan data disimpan dan diterima tanpa campur tangan CPU. Daya yang ditarik dalam mode ini bisa serendah 50uA/MHZ untuk mikrokontroler berdaya rendah.

  • Deep sleep mode

Deep sleep mode, umumnya melibatkan penonaktifan jam frekuensi tinggi dan sirkuit lain di dalam mikrokontroler yang hanya menyisakan sirkuit jam yang digunakan untuk menggerakkan elemen penting seperti pengatur waktu pengawas, deteksi brown out, dan sirkuit power on reset. 

MCU lain dapat menambahkan elemen lain untuk meningkatkan efisiensi secara keseluruhan. Konsumsi daya dalam mode ini bisa serendah 1uA tergantung pada MCU tertentu.

  • Mode Berhenti/MATI

Mikrokontroler tertentu memiliki variasi yang berbeda dari mode tambahan ini. Dalam mode ini, osilator tinggi dan rendah biasanya dinonaktifkan dan hanya menyisakan beberapa register konfigurasi dan elemen penting lainnya yang aktif.

Fitur dari semua sleep mode yang disebutkan di atas berbeda dari MCU ke MCU tetapi aturan umumnya adalah; semakin dalam tidur, semakin banyak jumlah periferal yang dinonaktifkan selama tidur, dan semakin rendah jumlah daya yang dikonsumsi, meskipun, ini biasanya juga berarti; semakin tinggi jumlah energi yang dikonsumsi untuk mendapatkan sistem kembali. 

Dengan demikian terserah kepada perancang untuk mempertimbangkan variasi ini dan memilih MCU yang tepat untuk tugas tersebut tanpa membuat kompromi yang memengaruhi spesifikasi sistem.

2. Modifikasi Dinamis Frekuensi Prosesor

Ini adalah teknik lain yang sangat populer untuk secara efisien mengurangi jumlah daya yang dikonsumsi oleh mikrokontroler. Ini adalah teknik tertua dan sedikit lebih rumit daripada sleep mode. 

Ini melibatkan firmware yang secara dinamis menggerakkan jam prosesor, bergantian antara frekuensi tinggi dan rendah karena hubungan antara frekuensi prosesor dan jumlah daya yang dikonsumsi adalah linier (seperti yang ditunjukkan di bawah).

Penerapan teknik ini biasanya mengikuti pola ini; ketika sistem dalam keadaan idle, firmware menyetel frekuensi clock ke kecepatan rendah yang memungkinkan perangkat menghemat daya dan saat sistem perlu melakukan perhitungan berat, kecepatan clock dinaikkan kembali, silahkan caba Apa itu Mikrokontroler? Penjelasan Secara lengkap

Ada skenario kontraproduktif untuk memodifikasi frekuensi prosesor yang biasanya disebabkan oleh firmware yang dikembangkan dengan buruk. Skenario seperti itu muncul ketika frekuensi clock dijaga tetap rendah saat sistem melakukan perhitungan berat. 

Frekuensi rendah dalam skenario ini berarti sistem akan membutuhkan lebih banyak waktu daripada yang diperlukan untuk melakukan tugas yang ditetapkan dan dengan demikian akan secara akumulatif mengkonsumsi jumlah daya yang sama yang coba dihemat oleh perancang. Jadi, perhatian ekstra harus diberikan ketika menerapkan teknik ini dalam aplikasi kritis waktu.

Meminimalkan Konsumsi Daya pada Mikrokontroler

3. Struktur Firmware Pengendali Interupsi

Ini adalah salah satu teknik manajemen daya yang paling ekstrem di mikrokontroler. Hal ini dimungkinkan oleh beberapa mikrokontroler seperti, inti ARM cortex-M yang memiliki bit sleep-on-exit dalam register SCR. 

Bit ini memberikan mikrokontroler kemampuan untuk tidur setelah menjalankan rutin interupsi. Meskipun ada batasan jumlah aplikasi yang akan berjalan lancar dengan cara ini, ini bisa menjadi teknik yang sangat berguna untuk sensor medan dan aplikasi berbasis pengumpulan data jangka panjang lainnya.

Sebagian besar teknik lain menurut saya sendiri adalah variasi dari yang telah disebutkan di atas. Misalnya teknik clocking periferal selektif pada dasarnya adalah variasi dari sleep mode di mana perancang memilih periferal untuk dihidupkan atau dimatikan. 

Teknik ini membutuhkan pengetahuan yang mendalam tentang mikrokontroler target dan mungkin tidak terlalu ramah bagi pemula.

4. Firmware yang Dioptimalkan Daya

Salah satu cara terbaik untuk mengurangi jumlah daya yang dikonsumsi oleh mikrokontroler adalah dengan menulis firmware yang efisien dan dioptimalkan dengan baik. 

Ini secara langsung mempengaruhi jumlah pekerjaan yang dilakukan oleh CPU per waktu dan ini, dengan ekstensi berkontribusi pada jumlah daya yang dikonsumsi oleh mikrokontroler. 

Upaya yang harus dilakukan saat menulis firmware untuk memastikan pengurangan ukuran kode dan siklus karena setiap instruksi yang tidak perlu dijalankan, adalah sebagian dari energi yang tersimpan dalam baterai yang terbuang. Di bawah ini adalah beberapa tip umum berbasis C untuk pengembangan firmware yang dioptimalkan;

  1. Gunakan Kelas "Static Const" sebanyak mungkin untuk mencegah penyalinan runtime dari array, struktur, dll. yang menghabiskan daya.
  2. Gunakan Pointer. Membuat chart mungkin adalah bagian paling sulit dari bahasa C untuk dipahami oleh pemula tetapi mode ini adalah yang terbaik untuk mengakses struktur dan serikat secara efisien.
  3. Hindari Modulo!
  4. Variabel lokal di atas variabel global jika memungkinkan. Variabel lokal terkandung dalam CPU sementara variabel global disimpan dalam RAM, CPU mengakses variabel lokal lebih cepat.
  5. Tipe data yang tidak ditandatangani adalah teman terbaik Anda jika memungkinkan.
  6. Gunakan "hitung mundur" untuk loop jika memungkinkan.
  7. Alih-alih bidang bit untuk bilangan bulat yang tidak ditandatangani, gunakan masker bit.

Pendekatan untuk mengurangi jumlah daya yang dikonsumsi oleh mikrokontroler tidak terbatas pada pendekatan berbasis perangkat lunak yang disebutkan di atas, pendekatan berbasis perangkat keras seperti teknik kontrol tegangan inti, juga bisa.

Kesimpulan

Menerapkan produk berdaya rendah dimulai dari pilihan mikrokontroler dan itu bisa sangat membingungkan ketika Anda mencoba membahas beragam opsi yang tersedia di pasar. 

Saat memindai, lembar data dapat bekerja dengan baik untuk mendapatkan kinerja umum MCU, tetapi untuk aplikasi kritis daya, ini bisa menjadi pendekatan yang sangat mahal. 

Untuk memahami karakteristik daya mikrokontroler yang sebenarnya, pengembang harus mempertimbangkan spesifikasi listrik dan fungsionalitas daya rendah yang tersedia untuk mikrokontroler. 

Desainer seharusnya tidak hanya memperhatikan konsumsi arus oleh masing-masing mode daya yang diiklankan oleh lembar data MCU, Tetapi juga harus melihat waktu bangun, sumber bangun, dan periferal yang tersedia untuk digunakan selama mode daya rendah.

Penting untuk memeriksa fitur mikrokontroler yang akan Anda gunakan untuk memastikan opsi yang Anda miliki untuk implementasi daya rendah. 

Mikrokontroler telah menjadi salah satu penerima manfaat terbesar dari kemajuan teknologi dan sekarang ada beberapa mikrokontroler berdaya sangat rendah yang memastikan Anda memiliki sumber daya untuk membantu Anda tetap dalam anggaran daya Anda. 

Belum ada Komentar untuk "Meminimalkan Konsumsi Daya pada Mikrokontroler"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel