Bagaimana menerapkan sakelar daya lunak yang dapat dikontrol oleh mikrokontroler?

16

Saya ingin merancang rangkaian sedemikian rupa sehingga mikrokontroler dapat beralih pin GPIO dan menutup seluruh sistem (termasuk mikrokontroler itu sendiri) ke bawah. Dan ketika pengguna menekan tombol sesaat, daya dibawa kembali.

Apakah ini mungkin?

cksa361
sumber

Jawaban:

11

teks alternatif

Contoh ini menggunakan Maxim MAX1835 step-up , tetapi dapat diterapkan pada yang lain juga yang memiliki pin shutdown.

Rangkaian biasanya dimatikan. Ketika pengguna menekan tombol, baterai dimasukkan ke pin -SHDN, memungkinkan regulator dan menyalakan 3.3V ke mikrokontroler. Mikrokontroler kemudian menempatkan logika 1 pada lead POWER ON, menahan power on setelah pengguna melepaskan tombol. Ketika mikrokontroler ingin mematikan dirinya sendiri, itu menetapkan lead POWER ON ke 0.

tcrosley
sumber
2
Sangat penting, saya pikir, sedang melonggarkan saklar itu.
Kortuk
2
@ Kortuk, poin bagus. Saya berasumsi mikro akan menyala cukup cepat sehingga bisa menimpa saklar sebelum bouncing pertama, dengan asumsi mendorong pin tinggi adalah hal pertama yang mikro lakukan. Jika itu tidak terjadi, orang dapat menambahkan kapasitor pada lead -SHDN untuk menciptakan waktu yang konstan untuk menghidupkan (meskipun ini juga akan menyebabkan sedikit penundaan dalam mematikan). 10 nF satu mungkin perlu dibiarkan untuk penindasan kebisingan (itu termasuk dalam skema sampel lembar data). Atau seseorang dapat menambahkan sirkuit RC tambahan hanya untuk sakelar.
tcrosley
Saya telah melihat beberapa pantulan gila pada sakelar sebelumnya.
Kortuk
Masalah yang lebih besar yang beralih bouncing adalah perilaku prosesor saat power-down. Khususnya, mungkin baik untuk memastikan bahwa prosesor hanya dapat menghidupkan suplai ketika VDD-nya berada di atas titik di mana operasi yang benar dijamin. Saya harus men-tweak beberapa sirkuit auto-power-down yang kadang-kadang akan gagal karena prosesor menjalankan kode acak ketika VDD jatuh di bawah tegangan operasi yang valid. Kode acak dapat mengatur output "daya hidup" tinggi, yang pada gilirannya akan menghidupkan kembali perangkat, menjalankan kode pada alamat acak.
supercat
1

Salah satu cara untuk melakukan ini adalah memasuki mode tidur nyenyak pada mikrokontroler.

Banyak mikrokontroler yang mendukung dibangunkan oleh interupsi eksternal, seperti tepi pada pin IO.

Toby Jaffey
sumber
maka saya juga akan mendapatkan gambar arus diam dari daya suplai regulator ke mikro kan?
cksa361
Iya. Kamu akan.
Toby Jaffey
@ cksa361, beberapa micros ini adalah nano atau mikro amp. Saya menggunakan MSP430 dan kami menyimpannya sekitar 3-5 microamps.
Kortuk
0

Ya, ini tentu saja mungkin, tetapi bagaimana Anda mencapainya tergantung pada jenis beban yang akan dihidupkan dan dimatikan.

Ini mungkin sesederhana hanya menggunakan relay yang terhubung ke PIN output mikrokontroler (melalui transistor dan dioda perlindungan), dan saklar tombol yang terhubung ke pin yang dikonfigurasi sebagai input.

Berikut ini contoh diagram sirkuit sederhana: skema relay dikendalikan oleh mikrokontroler

Saat menggunakan sakelar tombol tekan sesaat, berhati-hatilah pelepasan , Anda harus menerapkan penundaan pada kode mikrokontroler Anda untuk memastikan bahwa Anda memeriksa status tombol tekan selama periode waktu tertentu (mis. 1 ms) sebelum mengalihkan relai Anda kembali. Jika tidak, maka mikrokontroler dapat mengambil beberapa sinyal dan mengganti relai beberapa kali dalam waktu yang sangat singkat, dan Anda akan menemukan bahwa tombol Anda bekerja sebentar-sebentar.

MEMPERBARUI Saya baru saja melihat hasil edit Anda tentang mematikan mikrokontroler juga. Bisakah Anda memberi lebih banyak informasi tentang apa yang sebenarnya Anda coba lakukan? Sulit untuk menjawab pertanyaan Anda tanpa memahami keseluruhan sistem.

Jika Anda ingin mematikan mikrokontroler juga, maka Anda perlu cara untuk mendapatkan daya kembali ke mikrokontroler. Mungkin Anda bisa menggunakan relay untuk memberi daya pada segala sesuatu termasuk mikrokontroler, dengan cara itu mikrokontroler dapat mematikan dirinya sendiri, tetapi tidak menyala kembali. Kemudian tombol push Anda dapat dihubungkan di sakelar relai Anda, untuk secara efektif menyingkatnya sehingga memberi cukup waktu untuk menyalakan dan menahan relai terbuka sendiri.

BG100
sumber