私は、ネオピクセルストリップやAdafruitピクシーを含むいくつかの異なるデバイスを統合する、低電力バッテリーベースのAVRベースのプロジェクトに取り組んでいます。デバイス全体が静止しているときは、LiPoのバッテリー寿命を最大化するために、0.1mA未満の電流を引き出したいです。
私はこれをすべて機能させました(測定値0.035mA)。しかし、必ずしも「正しい」方法で実行したかどうかはわかりません。これに基づいて製品を構築する予定なので、正しく実行したいと考えています。
データピンから流れる電流によってVCCが切断されると、デバイスの「寄生的な」電力供給が中心的な懸念事項になります。たとえば、Pixie(シリアルを介して通信する)には、パワーダウンモードがなく、「オフ」の場合でも約1ミリアンペアが消費されます。そのため、VCCを切断するために小さなリレーを配置したところ、シリアルピンがまだpixieに電力を供給していることがわかりました。他の場所でのヒントは、多くのチップが電力保護のためにデジタル入力ピンをVCCにシャントするダイオードを持っていることを示唆しました。これを解決するには、シリアルライブラリを一時停止し、実際にはスリープ中にdigitalWrite(PIN、LOW)を実行する必要がありました。
WS2812bストリップについても同様です。VCCを切断しても、データピンからデバイスに電力を供給できます。また、NチャネルMOSFETでGNDを切断した他の設計では、データ線を介してグラウンドに電流が逆流するという逆の現象が発生しました。(これはPJRCの投稿ごとにダイオードで解決する必要がありました。)WS2812bは、実際には、消灯しているときでも、それぞれ約1ミリアンペアかかります。
したがって、質問:データピンが混在しているシステムのスリープ中に、プロジェクトの一部からVCCとGNDを切断する一般的な「クリーンな」方法はありますか?ベストプラクティスは何ですか?
いくつかのアイデア:
- VCCをGNDに強制します(方法はわかりませんか?Hbridge?)。(これを行うと、ハイになっているデータピンはどうなりますか?)
- すべてのデータピンとこれらのデバイスの間にトライステートバッファーを配置し、スリープ中にトライステートバッファーを高インピーダンス状態にし、PまたはNのMOSFETでのみVCCまたはGNDを切断します
- N mosfetのみでGNDを切断し、すべてのデータピンにダイオードを配置します
- VCCとGNDの両方を切断し、それらを「高インピーダンス」状態(電力用のトライステートバッファーのように)にする何らかの種類のパワーラッチはありますか?そうすると、電流はデータラインから「流出」することができません。
このような「負荷切断」問題を処理する最もクリーンで反復可能な方法を誰かに教えてもらえますか?(言うまでもなく、私はこの問題を少しの運でグーグル検索することに何時間も費やしてきましたが、負荷切り替えに関するこのテクニカルノートは見つけましたが、それはバックフィードと寄生電力には対処していません)