Mode tidur memungkinkan aplikasi untuk mematikan modul yang tidak digunakan di MCU, sehingga menghemat
kekuasaan. AVR menyediakan berbagai mode tidur yang memungkinkan pengguna untuk menyesuaikan konsumsi daya
untuk persyaratan aplikasi.
Untuk memasukkan salah satu dari lima mode tidur, bit SE di MCUCR harus ditulis ke logika satu dan a
Instruksi TIDUR harus dilaksanakan. Bit SM2, SM1, dan SM0 dalam Daftar MCUCR
pilih mode tidur mana (Idle, ADC Noise Reduction, Power-down, Power-save, atau Standby)
akan diaktifkan oleh instruksi TIDUR. Lihat Tabel 13 untuk ringkasan. Jika ada interupsi yang diaktifkan
terjadi saat MCU dalam mode tidur, MCU bangun. MCU kemudian dihentikan untuk empat
siklus di samping waktu start-up, menjalankan rutin interupsi, dan melanjutkan eksekusi
dari instruksi berikut SLEEP. Isi dari Register File dan SRAM tidak berubah
ketika perangkat bangun dari tidur. Jika reset terjadi selama mode tidur, MCU akan bangun
dan mengeksekusi dari Reset Vector.
Perhatikan bahwa mode Siaga Diperpanjang yang ada di banyak AVR MCU lainnya telah dihapus di
ATmega8, karena input TOSC dan XTAL berbagi pin fisik yang sama.
Gambar 10 di halaman 25 menyajikan sistem jam yang berbeda dalam ATmega8, dan distribusinya.
Angka ini membantu dalam memilih mode tidur yang tepat
Daftar Kontrol MCU
- MCUCR
MCU Control Register berisi bit kontrol untuk manajemen daya.
• Bit 7 - SE: Sleep Enable
Bit SE harus ditulis ke logika satu untuk membuat MCU masuk ke mode tidur ketika SLEEP
instruksi dijalankan. Untuk menghindari MCU memasuki mode tidur kecuali itu adalah programmer
tujuannya, disarankan untuk mengatur Sleep Enable (SE) bit sesaat sebelum eksekusi
Instruksi TIDUR.
• Bits 6..4 - SM2..0: Mode Tidur Pilih Bits 2, 1, dan 0
Bit-bit ini memilih antara lima mode tidur yang tersedia seperti yang ditunjukkan pada Tabel 13.
Sleep Mode SM2 SM1 SM0
Idle 0 0 0
ADC Noise Reduction 0 0 1
Power-down 0 1 0
Power-save 0 1 1
Reserved 1 0 0
Reserved 1 0 1
Standby(1) 1 1 0
Catatan: 1. Modus siaga hanya tersedia dengan kristal eksternal atau resonator
Modus menganggur Ketika bit SM2..0 ditulis ke 000, instruksi TIDUR membuat MCU masuk Menganggur
mode, menghentikan CPU tetapi memungkinkan SPI, USART, Analog Comparator, ADC, Two-wire Serial
Antarmuka, Timer / Penghitung, Watchdog, dan sistem interupsi untuk terus beroperasi. Tidur ini
mode pada dasarnya menghentikan clkCPU dan clkFLASH, sementara memungkinkan jam lain untuk berjalan.
Mode diam memungkinkan MCU untuk bangun dari interupsi terpicu eksternal maupun internal
yang seperti Overflow Pengatur Waktu dan Transmit USART Selesaikan interupsi. Jika bangun dari
Comparator Analog interrupt tidak diperlukan, Pembanding Analog dapat dimatikan oleh
pengaturan bit ACD di Kontrol Komparator Analog dan Daftar Status - ACSR. Ini akan
kurangi konsumsi daya dalam mode Idle. Jika ADC diaktifkan, konversi dimulai secara otomatis
ketika mode ini dimasukkan.
ADC Kebisingan
Mode Pengurangan
Ketika bit SM2..0 ditulis ke 001, instruksi SLEEP membuat MCU masuk ADC
Modus Noise Reduction, menghentikan CPU tetapi memungkinkan ADC, interupsi eksternal,
Two-wire Serial Interface address watch, Timer / Counter2 dan Watchdog untuk melanjutkan
operasi (jika diaktifkan). Mode tidur ini pada dasarnya menghentikan clkI / O, clkCPU, dan clkFLASH, sementara mengizinkan
jam lain untuk dijalankan.
Ini meningkatkan lingkungan kebisingan untuk ADC, memungkinkan pengukuran resolusi yang lebih tinggi. Jika
ADC diaktifkan, konversi dimulai secara otomatis ketika mode ini dimasukkan. Selain bentuk
Konversi ADC Menyelesaikan interupsi, hanya Reset Eksternal, Reset Watchdog, Brown-out
Setel ulang, antarmuka serial Serial Dua Antarmuka cocok mengganggu, Timer / Counter2 interrupt, an
SPM / EEPROM siap mengganggu, atau interupsi level eksternal pada INT0 atau INT1, dapat membangunkan
MCU dari mode ADC Noise Reduction.
Mode Power-down Ketika bit SM2..0 ditulis ke 010, instruksi SLEEP membuat MCU masuk ke Powerdown
mode. Dalam mode ini, Osilator Eksternal dihentikan, sementara interupsi eksternal,
Two-wire Serial Interface address watch, dan Watchdog terus beroperasi (jika diaktifkan).
Hanya Reset Eksternal, Reset Watchdog, Reset Brown-out, Antarmuka Seri Dua Kabel
alamat interupsi pertandingan, atau interupsi tingkat eksternal pada INT0 atau INT1, dapat membangunkan MCU.
Mode tidur ini pada dasarnya menghentikan semua jam yang dihasilkan, memungkinkan pengoperasian modul asynchronous
hanya.
Perhatikan bahwa jika tingkat memicu interupsi digunakan untuk bangun dari mode Power-down, yang diubah
tingkat harus diadakan untuk beberapa waktu untuk membangunkan MCU. Lihat “Interupsi Eksternal” di halaman 66
untuk detailnya.
Ketika bangun dari mode Power-down, ada penundaan dari kondisi bangun yang terjadi
sampai bangun menjadi efektif. Ini memungkinkan jam untuk memulai kembali dan menjadi stabil setelahnya
telah dihentikan. Periode bangun ditentukan oleh Sekering CKSEL yang sama yang mendefinisikan
Setel ulang periode Waktu habis, seperti yang dijelaskan di “Sumber Jam” di halaman 26.
Mode Hemat Daya Ketika bit SM2..0 ditulis ke 011, instruksi SLEEP membuat MCU masuk ke Powersave
mode. Mode ini identik dengan Power-down, dengan satu pengecualian:
Jika Timer / Counter2 adalah clock asynchronously, yaitu AS2 bit di ASSR diatur,
Timer / Counter2 akan berjalan selama tidur. Perangkat dapat bangun dari Overflow Timer atau
Output Bandingkan event dari Timer / Counter2 jika interupsi Timer / Counter2 yang sesuai
mengaktifkan bit-bit diatur dalam TIMSK, dan bit pengaktifan interrupt global di SREG diatur.
Jika timer asynchronous TIDAK clock asynchronously, mode Power-down dianjurkan
alih-alih mode Hemat daya karena isi register dalam pewaktu tidak sinkron
harus dianggap tidak terdefinisi setelah bangun dalam mode Power-save jika AS2 adalah 0.
Mode tidur ini pada dasarnya menghentikan semua jam kecuali clkASY, memungkinkan operasi hanya asinkron
modul, termasuk Timer / Counter 2 jika clock asynchronous
Modus Siaga Ketika bit SM2..0 adalah 110 dan opsi jam kristal / resonator eksternal dipilih,
Instruksi TIDUR membuat MCU masuk ke mode Standby. Mode ini identik dengan Power-down
dengan pengecualian bahwa Osilator terus berjalan. Dari mode Standby, perangkat akan aktif
dalam 6 siklus jam.
Meminimalkan Daya
Konsumsi
Ada beberapa masalah yang perlu dipertimbangkan ketika mencoba untuk meminimalkan konsumsi daya dalam AVR
sistem terkontrol. Secara umum, mode tidur sebaiknya digunakan semaksimal mungkin, dan tidur
mode harus dipilih sehingga sesedikit mungkin fungsi perangkat beroperasi. Semua
fungsi yang tidak diperlukan harus dinonaktifkan. Secara khusus, modul-modul berikut mungkin perlu khusus
pertimbangan ketika mencoba untuk mencapai konsumsi daya serendah mungkin.
Analog-ke-Digital
Konverter (ADC)
Jika diaktifkan, ADC akan diaktifkan di semua mode tidur. Untuk menghemat daya, ADC harus dinonaktifkan
sebelum memasuki mode tidur apa pun. Ketika ADC dimatikan dan dinyalakan lagi, berikutnya
konversi akan menjadi konversi yang diperpanjang. Lihat "Konverter Analog-ke-Digital" pada halaman 189
untuk detail tentang operasi ADC.
Komparator Analog Saat memasuki mode diam, Pembanding Analog harus dinonaktifkan jika tidak digunakan. Saat masuk
Mode ADC Noise Reduction, Pembanding Analog harus dinonaktifkan. Di tempat tidur yang lain
mode, Pembanding Analog secara otomatis dinonaktifkan. Namun, jika Pembanding Analog
mengatur untuk menggunakan Referensi Tegangan Internal sebagai input, Pembanding Analog harus dinonaktifkan
dalam semua mode tidur. Jika tidak, Referensi Tegangan Internal akan diaktifkan,
tidak bergantung pada mode tidur. Lihat “Pembanding Analog” di halaman 186 untuk detail tentang caranya
mengkonfigurasi Pembanding Analog.
Tidak ada komentar:
Posting Komentar