Raspberry Piを安全にパワーダウンする回路


8

車のXBMCサーバーとしてRaspberry Piを使用したい。XBMCのドキュメントによると、電源を切断する前に必ずshutdownコマンドを使用する必要があります。車を止める前にPiにログインしてシャットダウンする(妻に伝える)必要はありません-できるようにしたい

コンデンサとおそらくダイオードを使用して電源が切断されたことを検出する(そしてGPIOピンの1つに割り込みを発生させる)ことで、簡単な回路を作成できるはずだと考えていましたが、コンデンサは十分長い電流を提供しますシステムが適切にシャットダウンするため。

これは正しく、十分に見えますか?

下書き

回路は、12.6〜11.7Vのカーバッテリーで駆動されます。Raspberry Piは5V(5.25〜4.75V)で、700〜1200mAを消費します。まだ計時していませんが、シャットダウンプロセスにはおそらく5秒ほどかかると思います。

だから私が知る必要があるのは:

  • XBMCが適切にシャットダウンするのに十分な長さのPiを維持するのに十分な電荷を蓄積するには、どのような種類のコンデンサが必要ですか?

  • Rasperry PiのGPIOポートが3.3Vである場合、使用するのに最適なコンパレータ/オペアンプは何ですか(出力を5から3.3に下げるために2つの抵抗を使用できると思います)

  • GPIOラインを通常ハイまたは通常ローにすると何かメリットがありますか?


このIC:linear.com/product/LTC2935はあなたに興味があるかもしれません。
Bitrex 2013年

3
以下の回答の概念に従って、アイデアは大丈夫​​ですが、非常に大きな大文字が必要になります。また、常に何かからPiに電力を供給し、イグニッションを使用してシャットダウンを開始したり、タイマーを使用して1分程度で完全に電力を供給したりすることもできます。
PeterJ 2013年

それは@PeterJの良いアイデアです-おそらくもっと安くなるでしょう。回答の形で詳しく説明していただけますか?
ニコラスアルビオン

イグニッションがオフになってから数秒間、コンデンサーからRPiに電力を供給するのではなく、555で制御および電力供給されるリレーを使用してバッテリーに切り替える方がおそらく理にかなっていると思います。:私は別の質問を作成しましたelectronics.stackexchange.com/questions/61877/...
ニコラス・アルビオン

回答:


4

別の方法としては、Raspberry Piに継続的に電力を供給し、イグニッションラインを使用してパワーダウンシーケンスを開始します。私は過去にそれをやったことがありますが、正確な解決策がPiに適用されないシステムでは一般に:

最高の効率のためにDC-DCコンバーターを使用します。多くの例がありますが、以下は使用に便利な例の1つであり、6.5Vから32Vの入力から5Vで1Aを供給できます。

http://www.digikey.com/product-detail/en/V7805-1000/102-1715-ND/1828608

車の電源はかなり過酷な場合があるため、入力に30V TVSダイオードを使用して、アノードがグラウンドにあり、カソードが12V入力にあるチャンキーショットキーダイオードを使用して、スパイクから保護し、負電圧から保護することができます。車の電源とシステム間の接続に直列に接続された通常のヒューズまたはPTCリセット可能ヒューズ。それ以外の場合は、すでにすべてが整っているはずの車をUSB充電器に「ハッキング」できる可能性があります。

Raspberry Piが通常のアイドルモードで何を描画するかはわかりませんが、おそらくUSBが供給できる最大値である500mAを下回り、おそらく100mAです。その回路を使用すると、5Vで100mAを使用し、12Vで50mAを下回るとします。自動車のバッテリーは通常50Ahのオーダーなので、バッテリーを50%まで消耗させるには約20日かかります。自動車が定期的に使用されている場合は、おそらくこれ以上進む必要はありません。走らせたままにして、使用していない周辺機器の電源を切るだけで済みます。

それ以外の場合は、いずれかの方法でイグニッションの変化を検出し、両方にPiに通知し、シャットダウンしてから1分後に電源を切る必要があります。最も実用的な方法は、おそらくFETを駆動する外部マイクロコントローラーを使用することです。ディスクリートロジックで実行することもできますが、イグニッションが高くなったときに電力が再度供給されることを確認する必要もあります。そのため、これは完全に簡単な演習ではありませんが、部品コストは大きなキャップを使用するよりも低くなります。


ありがとう、あなたの答えは私に「シャットダウンコントローラーラズベリーパイ」をグーグルに導いた。私はこれを$ 42で見ていましたが、Raspberry Pi用に特別に設計されたものを見つけました。それはたったの$ 15で、彼は車用に設計されたものを持っています。
ニコラスアルビオン

Raspberry PiモデルAは300ma(+各USBポートで最大100ma)を消費し、モデルBは700maを消費します。
通行人2013年

また、ボタンを接続して、ラズベリーpiの電源がオンになるたびにpythonアプリを実行することもできます。次に、Pythonアプリでボタン関数os( "halt")を使用して、ラズベリーpiをシャットダウンします。それは私がやったことであり、それはうまく機能しています。それがXBMCでどのように機能するかはわかりません。
mozcelikors

3

シャットダウンと電力使用に関するRaspberry Piの動作に詳しくないので、主に、指定した数値に依存し、式を残します。

あなたが示す指数放電曲線は抵抗器-コンデンサー回路のものですが、線形レギュレーターは物事を少し異なって動作させます。RPiが常に指定した最大電流1200 mAを消費するとします。この場合、その電流は常にレギュレータを流れ、回路の実効抵抗は、コンデンサが放電するにつれて常に変化(減少)します。これは、リニアレギュレータの動作範囲内にある限り当てはまります。その領域に到達する前にRPiをシャットダウンする必要があるため、問題ありません。

コンデンサの微分方程式である: Cについて解くために再配置することができる:

I=CdVdt
C=IdtdV
  • は単にRPiの平均電流です。この場合、1200 mA、つまり1.2 Aであると想定します。
  • dtは、RPiをシャットダウンするのにかかる時間です。あなたの例では、これは5秒です。
  • dVはコンデンサ電圧の変化です。開始電圧は最低仕様電圧11.7 Vであり、終了電圧は7.0 Vであると想定します。7805リニアレギュレーターが適切に動作するには2ボルトのヘッドルームが必要であるため、終了電圧を7.0 Vに設定します(5.0 V + 2.0 V = 7.0 V)。これにより、dV = 11.7 V-7.0 V = 4.7 Vになります。

これにより、次の結果が得られます

C=1.2A5s4.7V=1.28F

はい、それは1.28ファラドです(ここではマイクロやミリはありません)。これはおそらく、いくつかの低電圧キャップを購入し、それらを直列に配置することを含むでしょう

したがって、もう1つの問題は回路です。コンパレータの正入力が負入力電圧に近づく(出力が変化する)ため、入力電圧がすでに死んでいます。設計どおり、コンパレータは切り替わりません。

あなたがしたいことは、コンデンサとダイオードの前に入力電圧を測定し、その電圧をトリムポットで設定できる「基準」と比較することです。以下の回路例を参照してください。

概略図

この回路のシミュレーションCircuitLabを使用して作成された回路


そうです-コンパレータの正入力をダイオードD1の反対側から供給するつもりです。12V電源が切断された(ラジオとアクセサリーがオフになっている)瞬間にGPIOピンが割り込みをトリガーする必要があります。…基準電圧は0ですね。TVSダイオードの目的は何ですか?
ニコラスアルビオン

ここに複数ありますが、この仕事に最適でしょうか?i.ebayimg.com/images/g/lF8AAOSwBP9UYdRb/s-l300.jpg
feedc0de

@danbruわからない、それは画像であり、データシートではない。eBayコンデンサーが5.5Vで実際に1.5Fであると思われる場合でも、必要な容量を得るために複数を直列および並列に配置する必要があります。
W5VO 2016

@ W5VO静電容量をテストする簡単な方法はありますか?
feedc0de

2

注:以下の回答は、SDカードのファイルシステムの使用のみが破損する可能性があることを前提に書かれています。その後、SDカード自体の内部状態がファイルシステムのレベルを下回っている可能性があり、時間切れの停電による破損のリスクがあるという多くの事例証拠が明らかになり、回避できない場合があります。ファイルシステムレベル。


まったく別のアプローチを考えたくなります。その原因の1つは問題を解決することです。基本的に、piから電力を取り除いても基本的に問題はありません。問題は、コミットされていない可能性のあるファイルシステムの状態であり、ファイルシステムの破損につながり、ボリュームを修復または再イメージ化するまで、ブートに失敗します。

しかし、これは次のいくつかの組み合わせによって、ソフトウェア側で修正できるものです。

  • SDカードにさらにパーティションを作成し、ブートパーティションまたはオペレーティングシステムパーティションを書き込み可能モードでマウントしないでください。さらに一歩踏み出したい場合は、SDカードの書き込みは一切行わず、変更可能なすべてのデータをUSBスティックに保存してください。

  • ジャーナリングファイルシステムを使用して、運用中に実際に変更されるデータを保存します。

  • バックアップカードを手元に置いておくだけで、オプションで、接続されたカードからの自動バックアップおよびリカバリスキームが可能で、常に1つのカードのみが書き込み可能にマウントできるというルールがあります(ブート/オペレーティングシステムの最初のルールと組み合わせて)パーティションは書き込み可能ではありません)

最終的には、デザイン哲学の問題に行き着きます。

A)電力損失から守らなければならないデリケートなシステムで、破損が少ない

または

B)予期しない停電が原因で回復不可能な破損が発生しないように設計されたシステム。

ほとんどの組み込みシステムは(B)に沿っています。


読み取り専用のSDカード上の個別のパーティションで問題が完全に解決するわけではありません。SDカードのウェアレベリングは、カードのすべてのブロックを破壊する可能性があります(ブロックを交換する場合)。このウェアレベリングはSDに完全に隠されており、それを制御する方法はありません。実際、読み取り専用のファイルシステムパーティションでは、書き込み回数が最も少なく、ウェアレベリング時に何と交換するかについての主要なターゲットになります。
ダロン

ところで、クリーンなシャットダウンを保証できない限り、SDカードは堅牢な組み込みソリューションを設計することは不可能であるという結論に達しました。仕様は、埋め込まれたユースケースを本当に吸い込んでいます...埋め込まれたAREの数を考えると、それはかなり悲しい状況です。
ダロン

@darron:問題を回避する方法はたくさんあるので、悲しいです。たとえば、仕様に「shutdown」コマンドが指定されていて、どのデバイスもそれを受信して​​から250ミリ秒以内に安全な状態にする必要がある場合があります。シャットダウンコマンドが「バックグラウンドでのデフラグ」操作の途中で完了したとしても、ほとんどの実用的なSDカードの実装では、このような仕様で問題はなかったと思います。
スーパーキャット2013年

@darron-SDカードにまったく書き込みを行わない可能性について言及したのは、特にパーティション間の問題が原因でした。
Chris Stratton、

正常にシャットダウンすると、XBMCは再生中の曲/フィルムの現在のポイントをディスクに保存し、再起動時に同じポイントから再開できるようにします。「お父さん、すでにこのビットを見たことがあります。その人が何かをしているビットに引っ張って早送りできますか?」
ニコラスアルビオン

0

他の人が指摘したように、これまでに提案された回路にはいくつかの問題があり、電源を保持するのに十分な大きさのコンデンサを得ることができます。小さな回路を作成したい場合は、押しボタン式のラッチ式電源オン/オフコントローラーを検討してください。XBMCサーバーをオフにするには、シャットダウンするようにPiに通知するボタンを押して、正常にシャットダウンするために必要なことを実行してから、回路にGPIO信号を発行して、それ自体の電源をシャットダウンします。これにより、SDカードを安全にシャットダウンするなど、RPiが必要な時間を確保できます。回路は、リレーやタイマーほど複雑である必要はありません。

これは、コントローラとしてデュアルmosfetのみを使用する簡単な回路です。回路はウェブページに記載されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.