Saya baru-baru ini belajar tentang pengatur waktu pengawas, dan saya mencoba menerapkan satu untuk rangkaian saya untuk tujuan mengatur ulang mikrokontroler (AVR) saya jika hang (yaitu, tidak menanggapi pengawas).
Berdasarkan beberapa penelitian, tampak bagi saya bahwa ada sekitar empat opsi:
- Hubungkan mikrokontroler saya dengan IC khusus pengawas waktu khusus .
- Hubungkan mikrokontroler saya dengan mikrokontroler tambahan (beberapa sangat mendasar, murah), yang terakhir dikodekan untuk tujuan berdedikasi tunggal pengawas waktu.
- Letakkan sirkuit pengawas berbasis timer 555 saya sendiri dan hubungkan ke mikrokontroler saya.
- Gunakan kapabilitas pengawas waktu internal pada mikrokontroler saya.
.
Manakah dari pendekatan di atas yang akan Anda peringkat lebih tinggi dan mengapa?
Saya ingin menetapkan waktu pengawas sekitar 6 detik, berdasarkan kriteria tertentu untuk cara saya membuat sisa desain dan kode saya (perangkat akan menjadi baterai, suhu logger berkala bertenaga baterai).
Sedikit catatan : Preferensi saya adalah Opsi 1, untuk kesederhanaan, namun, berdasarkan pada pasangan yang saya temukan, bagian-bagian ini tampaknya mahal (saya ingin solusi di bawah paling banyak 1,25 USD), atau hanya memungkinkan hanya kurang dari 2 detik untuk periode waktu pengawas.
sumber
Jawaban:
Seperti pjc50mengatakan 6 detik adalah waktu yang lama. Sebuah mikrokontroler yang khas akan mengeksekusi puluhan juta instruksi pada waktu itu, dan kemudian banyak kesalahan. Misalkan Anda mengendalikan beberapa beban dengan PWM, dan siklus kerja 10% yang rendah membuat pembuangannya rendah. Mikrokontroler menghasilkan pisang dan output macet pada tingkat tinggi, siklus tugas 100%. Beban tidak menyukainya, dan mati. Anda tidak ingin menunggu 6 detik untuk itu terjadi. Seharusnya ada beberapa bagian dari kode Anda di mana Anda melewatkan lebih banyak frekuensi. Loop utama mungkin sesingkat 10 ms, maka Anda dapat mengatur batas waktu pengawas di 100 ms, misalnya. Jika Anda menendang anjing sekali setiap 10 ms, maka batas waktu berarti Anda melewatkannya 10 kali! Sekali, OK, tapi sepuluh kali bencana, dan Anda harus mengambil tindakan. Beban akan dimatikan setelah 100 ms, bukan 6 detik,
sumber
sumber
Jika sirkuit / perangkat Anda tidak mengendalikan perangkat keras yang sangat penting, Anda mungkin dapat menggunakan pengawas internal. Kalau tidak (atau sebenarnya, bagaimanapun juga) periksa dua artikel hebat dari Jack Ganssle ini:
http://www.ganssle.com/watchdogs.htm
http://www.ganssle.com/articles/watchdogsredux.htm
Ngomong-ngomong, jika Anda tidak bisa menyetel anjing penjaga ke interval yang lama, Anda bisa mencoba pendekatan bangun cukup sering untuk menendang anjing penjaga, tetapi hanya melakukan pengukuran penuh / menulis catatan harian sekali-sekali.
sumber