Dalam situasi apa saya harus menonaktifkan fitur Deteksi Brown-out pada mikrokontroler?


33

Ketika catu daya pada mikrokontroler jatuh di bawah ambang tertentu, kondisi kecoklatan terjadi dan memori RAM mungkin rusak. Asalkan setiap urutan power down dari rangkaian dapat berarti kondisi brown-out yang potensial, saya selalu mengaktifkan mekanisme Reset Deteksi Brown-out ketika bekerja dengan mikrokontroler.

Saya bertanya-tanya apakah ada situasi di mana tidak disarankan untuk mengaktifkan fitur Reset Brown-out?


4
Detektor brown-out juga dapat mengkonsumsi arus yang harus dipertimbangkan untuk aplikasi tenaga mikro.
HL-SDK

Mengingat berbagai kelemahan deteksi-BO yang dinyatakan dalam jawaban, pertimbangkan ini juga: Bisakah Anda membuktikan kepastian khusus dalam kasus khusus Anda? Dalam kasus-kasus tertentu Anda dapat menjamin persediaan yang cukup atau pemadaman total => menyimpan sumber daya untuk BOD
Tandai

Jawaban:


11

Seperti disebutkan, mengaktifkan sirkuit brown-out akan sering meningkatkan konsumsi saat ini. Lebih lanjut, karena pabrikan umumnya ingin memastikan bahwa sirkuit brown-out akan tersandung pada tegangan apa pun yang mungkin cukup rendah untuk membuat bagian-bagian lain chip berfungsi, banyak bagian akan dapat beroperasi pada tegangan yang lebih rendah dengan brown-out dinonaktifkan. . Sebagai contoh, pengontrol mungkin bekerja sebagian besar waktu turun menjadi 1,5 volt pada suhu kamar tetapi, dalam kondisi stres tertentu (seperti suhu tinggi) dapat mengalami kegagalan fungsi pada 1,99 volt. Untuk memastikan bahwa perangkat akan diatur ulang dalam kondisi apa pun di mana terjadi kegagalan fungsi, sirkuit berwarna cokelat mungkin dirancang untuk trip pada 2.1 volt +/- 100mV.

Jika perangkat dengan pengontrol semacam itu diaktifkan dari dua baterai AA basa, mengaktifkan sirkuit brownout dapat menyebabkan perangkat menjadi tidak dapat digunakan dengan tegangan baterai 1,1 volt per sel, dan kemungkinan akan menyebabkannya berhenti beroperasi pada saat tegangan mencapai 1,05 volt per sel. Menonaktifkan sirkuit brownout kemungkinan akan memperpanjang operasi hingga setidaknya 0,9 volt per sel, dan bahkan mungkin 0,75 volt per sel. Jika tidak ada kerusakan yang masuk akal yang dapat terjadi pada tegangan rendah dapat menyebabkan kerusakan melebihi peningkatan pembuangan pada baterai sampah, menonaktifkan sirkuit brownout akan menjadi cara sederhana untuk meningkatkan masa pakai baterai, bahkan jika itu tidak mengurangi penarikan arus dari baterai yang dapat digunakan.


22

Semuanya memiliki toleransi, sehingga level reset cokelat keluar harus diatur agak di atas level minimum di mana chip dijamin berfungsi dengan baik.

Oleh karena itu coklat keluar mungkin menendang sebelum chip rusak. Jadi Anda harus bertanya pada diri sendiri, untuk wilayah ini, di mana chip mungkin berfungsi OK tapi Anda tidak yakin, apakah Anda akan memilih

  • untuk membiarkan chip bekerja dan berharap yang terbaik (mungkin berhasil!), atau
  • untuk membiarkan chip diatur ulang (dan disimpan dalam reset) oleh sirkuit brown-out.

Jika biaya malfungsi tidak jauh lebih tinggi daripada biaya tidak berfungsi sama sekali pilihan pertama adalah yang lebih disukai. Pikirkan fitur ping di pesawat 'kotak hitam'. Dengan segala cara, biarkan terus jika ada kesempatan sekecil apa pun yang akan memberikan ping!

Di sisi lain, pertimbangkan pemicu bom atau airbag mobil. Jika ada kemungkinan sekecil apa pun untuk mati secara tidak sengaja karena tegangan daya rendah, lebih baik mematikannya sendiri. Itu tentu saja mengasumsikan bahwa penutupan berarti tidak menyala!

Ada situasi di mana tidak ada pilihan yang baik tersedia. Pertimbangkan peluncuran roket Ariane V pertama yang terkenal. Komputer kontrol arah tidak berfungsi (dalam hal ini bukan karena daya rendah). Apa yang harus dilakukan? Pergi paling mungkin berarti menyetir ke arah yang salah, tetapi berhenti berarti tidak menyetir sama sekali, yang memiliki hasil yang sama. Juga tidak ada prospek yang bagus untuk orang-orang di bunker kontrol yang mungkin roket mengembara ke :(


Seperti komentar Ross, cadangan tentu saja merupakan ide bagus untuk sistem misi-spiritual. Tapi itu menggeser masalah desain ke cadangan itu. Bagaimana jika itu gagal? (Dalam praktiknya sering ada 3, aktif sepanjang waktu, menggunakan suara mayoritas.) Dalam kasus Ariane 5 komputer primer dan cadangan gagal (Meskipun bukan karena kesalahan mereka sendiri, tetapi itu adalah cerita lain.) Apa yang terjadi selanjutnya adalah bahwa beberapa sistem lain (mungkin itu bahkan manusia di ruang kontrol) mendeteksi bahwa semuanya di luar kendali dan memicu penghancuran diri. Sebaiknya roket meledak di udara dan jatuh berkeping-keping kecil di laut yang membuatnya melanjutkan penerbangan dalam satu kesatuan dalam beberapa arah acak.


Untuk situasi roket, solusi terbaik adalah memiliki komputer cadangan yang akan mengambil alih jika yang pertama gagal, dan yang pertama ditutup, kan ??
Ross Aiken

beberapa teks ditambahkan
Wouter van Ooijen

Sebenarnya kisah Ariane 5 jauh lebih rumit, dan penanganan kesalahan adalah bagian dari alasan kegagalan tersebut. esamultimedia.esa.int/docs/esa-x-1819eng.pdf
starblue

1
Tidak, penanganan kesalahan bukan penyebabnya. Itu adalah penggunaan sistem yang terbukti (telah terbang di Ariane 4) dengan data di luar spesifikasi aslinya tanpa mengujinya dengan data baru . (Tes semacam itu awalnya direncanakan, tetapi kemudian dibatalkan dalam program pengurangan biaya;)
Wouter van Ooijen

10

Jika Anda tidak peduli tentang pengaturan ulang (misalnya, pengguna dapat dipercaya untuk mematikan dan menghidupkannya kembali jika hal-hal tidak bekerja dengan sempurna, dan tidak ada kerusakan yang mungkin terjadi) dan konsumsi daya penting, mematikannya dapat menghemat beberapa microamperes. (atau jika Anda benar-benar peduli, Anda dapat menggunakan sirkuit eksternal yang lebih baik daripada yang biasa-biasa saja).

Jika BOR internal tidak memadai untuk tugas (toleransi mungkin tidak sesuai, misalnya) maka mungkin juga mematikannya dan menggunakan sesuatu yang eksternal.

Persyaratan yang menarik untuk beberapa tujuan adalah Anda harus mengetahui tegangan maksimum di bawah ini yang hal-hal seperti EEPROMs dijamin tidak berfungsi, sehingga BOR dapat menghambat operasi dan menjamin tidak ada korupsi. Itu mungkin agak halus untuk beberapa sirkuit BOR bawaan.


10

Anda dapat memilih untuk menonaktifkan BOR jika ada bug di mana BOR tidak bekerja dengan benar.

Modul: Regulator Tegangan

Perangkat tidak dapat keluar dari status BOR jika terjadi BOR.

Lihat edisi 15 dalam PIC32MX534 / 564/664/764 Family Errata Silicon dan Klarifikasi Lembar Data .


8
Aduh. Bagian mana dari errata yang indah ini?
Spehro Pefhany

1
Bagaimana hal seperti itu membuatnya menjadi produksi?
Matt Young

1
Lucu sekali. Dan dengan lucu saya maksudkan hampir kriminal.
Ignacio Vazquez-Abrams

1
Perangkat khusus adalah PIC32MX664F dan hanya beberapa revisi silikon. Sebagian besar waktu itu akan keluar dari BOR biasanya hanya sekali dari setiap 20 atau lebih kali tidak.
mjcopple

@ Mat Young: Karena sebagian besar penggunaan mikrokontroler PIC ini, BOR hanya ada untuk mematikannya sebelum silikon mulai menjalankan instruksi acak ketika Anda menarik steker. Jika Anda memiliki reflash rutin dalam ROM, dimungkinkan untuk mencoba mem-flash dirinya sendiri tanpa sampah jika BOR tidak ada.
Joshua


2

There are situations where you might like to use an external, custom-built brown-out circuit instead.

There are microcontrollers where the resolution of brown-ot levels is quite small.

Mari kita asumsikan Anda bekerja dengan μc di mana dua tingkat brown-out tertinggi adalah 4,3 V dan 2,7 V (umum dalam kasus AVR). Anda telah menentukan bahwa pada frekuensi yang Anda gunakan, 2,7 V tidak aman. Namun, 4.3 V akan terlalu tinggi, karena akan membatasi lamanya waktu berjalan setelah listrik mati.

Saya sering harus bekerja dengan perangkat yang seringkali dapat kehilangan koneksi ke catu daya eksternal dan kemudian harus bertahan hidup dengan kapasitor atau baterai. Memiliki level 4.3-brown-out akan menyebabkan perangkat mati terlalu cepat. 2.7 akan mengarah pada korupsi data. Namun, jika misalnya, 3,5 V akan menjadi tingkat brown-out yang aman, Anda mungkin ingin membuat sirkuit brown-out eksternal yang berfungsi dengan menarik garis reset mikrokontroler Anda. Dalam hal ini, sirkuit brown-out internal tidak digunakan dan dapat dinonaktifkan.

In case you have more processors in the same system, it makes sense to use a single external reset controller for all of them. In this case, disabling the individual brown-out detectors in the processors is not only useful for the marginal advantage of saving some power, but is required to avoid the situation where some processors are in reset and others are still running.


1
I know you're not picking on AVR, but I feel compelled to mention that 1) different AVR lines have different BOR thresholds, and 2) AVRs make the reset signal externally visible on nRESET so if you're very careful you can use one as a reset controller.
Ignacio Vazquez-Abrams

1

We had to toggle the VBOR off and back on during one part of startup due to a bug in the silicon on the microcontrollers we were using. Charging up the caps on the voltage pump would drain the device to momentarily just above minimums and the VBOR kept tripping. So we turned off the VBOR during powerup and turned it on about 10ms later.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.