マイクロコントローラーのブラウンアウトリセットとは何ですか?誤ったパワーダウンを防ぐ方法
ブラウンアウトリセットは、起動後のマイクロコントローラーの信頼性を高めるための重要な機能です。通常、電源の問題を解決するために使用されるこの記事では、ブラウンアウトリセットが別の問題を防ぐ方法を示します。
ブラウンアウトリセットのレビュー
マイクロコントローラの「電圧低下」とは、電源電圧が部分的かつ一時的に低下して、信頼性の高い動作に必要なレベルを下回ることです。多くのマイクロコントローラには、電源電圧がこのレベルを下回ったことを検出し、デバイスをリセット状態にして、電源が戻ったときに適切に起動するようにする保護回路があります。このアクションは、「ブラウンアウトリセット」またはBORと呼ばれます。同様の機能は低電圧検出(LVD)と呼ばれ、より複雑で、複数の電圧レベルの検出を追加し、リセットがトリガーされる前に割り込みを生成できます。
BORは、多くの場合、制御レジスタのビットによって有効になります。通常、ステータスビットはBORがリセットを引き起こすときにセットされます。このステータスビットはリセット後も存続し(電力が低くなりすぎない場合)、プログラムが問題を検出して追加のリカバリを実行したり、イベントをログに記録したりできるようにします。
BORが無効になっている場合はどうなりますか?これは、着実に低下する電源電圧の描写です。おそらく、これは電源の劣化またはバッテリーの放電です。
V1は通常の電源電圧です。 V2は、マイクロコントローラが確実に動作しない可能性があるポイントです。動作が完全に停止するポイントとしてV3を示します。 V2とV3の間には、問題が発生する可能性があり、操作の信頼性が低い「危険ゾーン」があります。電源が危険ゾーンに出入りしている間、デバイスは何年も正常に動作する可能性があります。その後、障害が発生します。 BORレベルはV2より上に設定され、危険ゾーンをデバイスのリセットに置き換えます。リセットは良くありませんが、(通常は)不確実よりも優れています。
次に、電源は正常に動作しているが、BORを使用して別の問題を解決した状況について説明します。
ブラウンアウトリセットの別の用途を見つける(難しい方法)
18個の光センサーへの+ 5V電力を制御するモジュールにPICマイクロコントローラーと18個の電圧レギュレーターを含む回路を設計しました。 12個のモジュールがアレイ内の204個のセンサーを制御しました。モジュールは、ハワイのマウナケアにある大型の天体望遠鏡の補償光学システムの一部です。これがモジュールの内部です。
写真提供:すばる望遠鏡
マイクロコントローラーはボードの中央近くにあり、18個のリニア電圧レギュレーターがエンクロージャーの壁に取り付けられています。モジュールとセンサーは水冷プレートに取り付けられ、センサーアレイ上にある光学ベンチから熱を逃がします。光センサーからのパルスはモジュールに入り、そこで差動RS-485信号に変換され、画像の中央上部にあるコネクタに出力されます。さらに、モジュールに入るRS-485制御信号があります。すべてのRS-485信号は、約10メートル離れたシャーシ内の回路に接続します。重要な点は、モジュール内のすべての回路が同じ+ 5V電源で動作することです。
これは、問題の中心となるマイクロコントローラーとRS-485ラインドライバーおよびレシーバーのクローズアップです。黒のモジュラージャックは非同期のシリアルインターフェースで、RS-485 I / O信号をさらに2つ追加します。
モジュールはベンチで広範なテストを受けました。問題はありません!彼らは実験室で何ヶ月にもわたるシステムテストを経験しました。完全!大きなイベントは望遠鏡での最初のテストでした。失敗!電源を入れ直したときに、モジュールの約半分で通信が失われました。デバッガーを接続し、マイクロコントローラーがコードを実行および実行していることを確認しましたが、変数が破損しており、シリアルインターフェイスが機能していませんでした。非常に奇妙です。
まず、深夜に高度13,589フィート(4,138メートル)、気温40°F(4°C)でデバッグするのは楽しいことではありません。ただし、先に進みましょう。これが問題を示す図です。
右側は、マイクロコントローラーと+ 5V電源に接続されたRS-485ラインレシーバーを備えたモジュールです。左側には、ケーブルのもう一方の端にあるラインドライバーがあり、常に電源がオンになっています。実際には、ドライバーとレシーバーが両方向に進んでいますが、私は単純化しています。モジュールの電源(VCC)がオフのとき、リモートラインドライバーとレシーバーはまだオン(VDD)でした。信号は電源のように機能し、モジュールインターフェイスデバイスを介して直接+ 5V電源に、またはマイクロコントローラピンのESD保護回路を介して到達しました。マイクロコントローラーの電源が完全に切れるのを防ぐのに十分な電力があり、デバイスは危険ゾーンにありました。
モジュールの電源がオンになったとき、マイクロコントローラは通常のパワーオンリセットシーケンスで起動しませんでした。実行を開始しましたが、問題がありました。以前のテストでこれが表示されなかったのはなぜですか?水冷プレートを覚えていますか?望遠鏡の冷却剤は、実験室の冷却剤よりもかなり冷たかった。私の理論では、一部のモジュールの問題を明らかにするには、より低い温度で十分でした。
修正は簡単でした。 BORを有効にするステートメントをコードに追加すると、問題は解決しました。ちなみに、問題を解決するのにかかったよりも、レポートを書いてプロジェクトマネージャーにすべてがうまくいったことを納得させるのにはるかに長い時間がかかりました。
誤ったパワーダウン
これが一般的な問題を示す図です。
電源がオフになっているとき、電圧は完全には下がりません。代わりに、他の電源が供給電圧を危険ゾーンに保ちます。この電圧の説明の1つは、「FalsePower」です。この状態を検出してリセットを引き起こすBORはありません。パワーオンリセット回路がトリガーされない可能性があるため、電源を再度オンにしたときに、デバイスが通常のパワーアップシーケンスを実行しない場合があります。電源が最小値を下回り、リセットがないため、その後の動作は不確実です。
私の場合、マイクロコントローラーはMicrochip PIC16F877-20I / Lでした。この部品は、動作温度範囲が-40°C〜 + 85°Cの工業用バージョンです。 16MHzクロックの場合、電源範囲は+ 4.0V〜 + 5.5Vです。モジュール内の動作電圧(V1)は堅固な+ 5Vでした。マイクロコントローラーの誤電力電圧(V2)は、望遠鏡で動作しているとき、約+ 1.5V でした 。問題がなく、確認することもわからなかったため、ラボでは測定しませんでした。さらに、望遠鏡からシステムがダウンすることはなかったため、ラボの状態で確認する機会はありませんでした。
他に2つの関連する仕様があります。 「RAMデータ保持電圧」(\ [V_ {DR} \])は+ 1.5V、「標準 」。内部パワーオンリセットを保証するための「VDD開始電圧」(\ [V_ {POR} \])は0V、「通常 」。これらすべてを一緒に折りたたむと、デバイスが危険ゾーン内に十分にあったことがわかります。電圧が\ [V_ {POR} \]をはるかに上回っていたため、パワーオンリセットは期待できませんでした。また、False PowerはRAM保持電圧(\ [V_ {DR} \])であったため、FalsePowerがデバイスを存続させるという期待はありませんでした。デバイスの残りの部分が何をしていたか誰が知っていますか?
BORをオンにすると問題が解決したのはなぜですか?ブラウンアウトリセットトリガーの仕様(\ [V_ {BOR} \])は、+ 3.7V〜 + 4.35Vの範囲で、通常は+ 4.0Vです。 False Powerレベルは、BORのトリガー電圧をはるかに下回っています。問題が解決しました。ただし、マイクロコントローラーがラボで動作し、多くの電源サイクルで正常に動作した理由については、まだ謎があります。
結論
この状況の説明は、「False Power-Down」と呼ばれるMicrochipアプリケーションノート(AN607)の最後にあります。他のどこにも文書化されていません。
False Powerは、次のようなソースから発生する可能性があります。
- 外部シグナル(私の場合)
- 回路内の複数の電源装置
- 完全に放電するのに時間がかかるコンデンサ
GPIOピンに直接適用されたFalsePowerが十分に高く、ESD保護回路を介してデバイスに入ると、 BORが有効になっている場合でも問題が発生する可能性があります。 。また、非常に低電力の設計では、一部のデバイスのディープスリープモードと比較して大量の電力を消費するため、BORをまったく使用しない理由があります。私の結論は、BORとその後継であるLVDはますます複雑になっているだけであり、False Powerは、設計者が設計のこのトリッキーな部分で考慮すべきもう1つのことを提供します。
産業技術