Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Menguasai Mode Daya Rendah pada Arm Cortex‑M: Tips Praktis & Penghematan Energi

Dalam artikel saya sebelumnya, “Arm Cortex‑M low‑power mode fundamentals,” saya uraikan status daya rendah dasar yang tersedia pada setiap prosessor Cortex‑M dan cara menggunakan instruksi WFI dan WFE untuk masuk ke sleep. Pertanyaan logis berikutnya adalah: bagaimana mode-mode ini diimplementasikan pada mikrokontroler nyata, dan dampaknya pada anggaran daya keseluruhan sistem tertanam? Posting ini menyelami eksperimen praktis dengan papan NXP Kinetis-L Freedom untuk mengukur keuntungan dan trade-off.

Eksperimen Mode Daya Rendah

Cara paling andal untuk mengevaluasi perilaku daya rendah adalah menjalankan perangkat dalam berbagai status daya dan mengukur arus yang dihasilkan. Untuk studi ini, saya membangun kembali papan NXP Kinetis-L Freedom—platform yang telah saya gunakan dalam banyak produk dan kursus—untuk mengumpulkan data konkret. Meskipun mikrokontroler biasanya merupakan konsumen daya terbesar pada papan, mengukur arus seluruh sistem sangat penting: komponen lain (misalnya, regulator tegangan, sensor, dan modul komunikasi) dapat berkontribusi secara signifikan pada total arus. Mengoptimalkan MCU saja dapat memberikan manfaat besar, tetapi pandangan holistik mencegah drain tersembunyi.

Mulai dengan Pengukuran Baseline

Sebelum melakukan perubahan apa pun, saya menangkap profil arus baseline dengan menjalankan Kinetis-L dalam mode run normal, menyediakan semua periferal, dan menyalakan/mematikan LED setiap detik. Menggunakan IAR Embedded Workbench dengan debugger I-Jet dan I-Scope, saya amati arus stabil sekitar 16.9 mA saat LED mati dan sekitar 18.0 mA saat LED menyala (lihat Gambar 1). Titik pengukuran yang tepat sangat penting—titik uji yang berbeda dapat menghasilkan hasil yang sangat berbeda.

klik untuk gambar lebih besar
Menguasai Mode Daya Rendah pada Arm Cortex‑M: Tips Praktis & Penghematan Energi
Gambar 1. Pengukuran arus papan pengembangan dengan LED menyala/mati sekali per detik. (Sumber: Penulis)

Mengoptimalkan Energi dengan Mode Wait dan Deep Sleep

Mengaktifkan mode wait prosessor adalah cara cepat untuk menghemat daya. Menurut datasheet Kinetis-L, mode wait menarik antara 3.7 mA dan 5.0 mA pada 3 V, karena clock CPU dan periferal dinonaktifkan sementara flash tetap dalam kondisi doze low-leakage. Prosessor masih dapat tidur dalam 12–15 siklus clock saat interrupt terjadi.

void Sleep_Wait(void) { SCB_SCR &=~ SCB_SCR_SLEEPDEEP_MASK; asm("WFI"); }

Dengan hanya dua baris ini, arus papan turun dari 18.0 mA menjadi 15.9 mA—penurunan 11,6 %. Jika dipasok oleh baterai 680 mAh, waktu operasi perangkat akan bertambah dari 37,8 jam menjadi 42,8 jam—lima jam tambahan untuk perubahan kode minimal.

Kita dapat mendorong lebih jauh dengan masuk ke mode deep sleep:

void Sleep_Deep(void) { SCB_SCR |= SCB_SCR_SLEEPDEEP_MASK; asm("WFI"); }

Mengatur satu bit dalam SCB_SCR menurunkan arus menjadi 14.8 mA, penghematan 17,8 %. Pada baterai 680 mAh, waktu operasi naik menjadi 46 jam—manfaat yang signifikan dari hanya beberapa baris tambahan.

Memanfaatkan Mode Stop dan VLLS untuk Arus Mikroampere

Mode Stop dapat mengurangi konsumsi MCU dengan tambahan satu miliamper dengan menonaktifkan clock inti dan sistem. Ini memerlukan manipulasi register manajemen daya dan kemudian memanggil Sleep_Deep:

void Sleep_Stop(void) { volatile unsigned int dummyread = 0; SMC_PMCTRL &=~ SMC_PMCTRL_STOPM_MASK; SMC_PMCTRL |= SMC_PMCTRL_STOPM(0); dummyread = SMC_PMCTRL; Sleep_Deep(); }

Mode Very Low Leakage Stop (VLLS) Kinetis-L mendorong lebih jauh, menarik hanya 135 µA hingga 496 µA. Kode untuk mengaktifkan VLLS1 ditunjukkan di bawah:

void Sleep_VLLS1(void) { volatile unsigned int dummyread = 0; SMC_PMCTRL &=~ SMC_PMCTRL_STOPM_MASK; SMC_PMCTRL |= SMC_PMCTRL_STOPM(0x4); SMC_VLLSTRL = SMC_VLLSCTRL_LLSM(1); dummyread = VLLS_CTRL; Sleep_Deep(); }

Pada tingkat ini, mikrokontroler hampir tidak mengonsumsi energi, tetapi latensi wake-up meningkat secara dramatis.

Pertimbangan Latensi Wake-Up

Status daya rendah lebih rendah datang dengan waktu wake-up yang lebih lama. Mode stop standar memerlukan sekitar 2 µs plus latensi interrupt untuk melanjutkan operasi. Mode VLLS memperkenalkan penundaan boot-up 53 µs hingga 115 µs, yang mungkin tidak dapat diterima untuk aplikasi kritis waktu. Gambar 2 menggambarkan waktu transisi dari berbagai status daya rendah ke mode run.

klik untuk gambar lebih besar
Menguasai Mode Daya Rendah pada Arm Cortex‑M: Tips Praktis & Penghematan Energi
Gambar 2. Waktu transisi dari mode daya rendah ke berbagai mode pada Kinetis-L. (Sumber: datasheet Kinetis-L)

Kesimpulan

Semua mikrokontroler Arm mengekspos mode daya rendah standar, tetapi vendor silikon menambahkan variasi mereka sendiri untuk mencakup berbagai kasus penggunaan. Vendor biasanya menawarkan mode “buah rendah” yang menjanjikan penalti wake-up yang tidak signifikan, serta opsi daya ultra-rendah yang dapat menurunkan arus ke mikroampere. Pengembang harus menyeimbangkan penghematan energi dengan responsivitas yang diperlukan aplikasi mereka; satu mode daya rendah jarang merupakan solusi untuk semua kasus.


Menguasai Mode Daya Rendah pada Arm Cortex‑M: Tips Praktis & Penghematan EnergiJacob Beningo adalah konsultan, penasihat, dan pendidik perangkat lunak tertanam yang saat ini bekerja dengan klien di lebih dari selusin negara untuk secara dramatis mengubah perangkat lunak, sistem, dan proses mereka. Silakan hubungi dia di jacob@beningo.com, kunjungi situs webnya www.beningo.com, dan daftar untuk newsletter Embedded Bytes bulanan.

Tertanam

  1. Percepat Manufaktur Aditif dengan Pemantauan Printer 3D Real-Time
  2. Menskala Manufaktur Aditif Ber Seri: Bagaimana Additive MES Mendorong Efisiensi dan Pertumbuhan
  3. Memanfaatkan Data IIoT untuk Meningkatkan Keuntungan dalam Manufaktur Lean
  4. Menjelajahi Spektrum Realitas dalam Otomasi Industri
  5. Bagaimana Pemadaman Listrik Mengancam Sumber Listrik Anda—dan Cara Melindunginya
  6. Faktor Daya Rendah Ditinjau: Penyebab Utama & Cara Mengatasinya
  7. Mahir dalam Pengelasan Naval Brass: Teknik & Tips Keamanan
  8. Panduan Langkah demi Langkah Pengisian Kapasitor dengan Aman dan Efisien
  9. Potong Tagihan Energi dengan Mengoptimalkan Tingkat PDP dalam Sistem Udara Anda
  10. Meningkatkan Kekuatan Hidrolik: Strategi Terbukti untuk Ketahanan Lebih Tinggi