VIVITABLOG

VIVITAで活躍するメンバーの情報発信サイト

Lipo/Li-ion充放電制御回路の実験

こんにちは、VIVIWARE社の新居です。

今回は社内で試作していたLipo電池の充放電制御回路を紹介します。どうしても回路が複雑になってしまうのですが、そこが面白いと思ったからです。ただし、いつも通り以下の点にご注意ください。

今回紹介する方法が実際に使えるほど検証したわけではありません。実際に試す場合には各自でよく考えてすすめてください。

はじめに

さて、最近は自作する人のあいだでは、充電式電池のLipoやLi-ion電池が一般的になってきたと思います。秋葉原でも手に入りますし。 ただ、実際に使う場合には充放電が必要ですよね。そのための充放電制御回路の載っているモジュールも少しは売っていますが、あまり種類がありません。で、実際に設計すると結構色々考えることが出てきます。

そこで、今回の試作でどんなことに気をつけたかを紹介します。

Lipo電池の特性

まず、Lipo電池は以下のような特性があります。

  • 充電では3.0V以上であれば充電開始でき、4.2Vになったら充電終了
  • 4.2V以上の電圧が入ると壊れてしまいます!
  • 放電では一定の電流以上流したり、3.0V以下になると壊れてしまう!

そのために、充放電制御回路では以下の様な条件が必要になります。

  • 最初は定電流制御、後半は4.2V定電圧充電をおこなう
  • 電池が壊れる前に出力を自動的にOFFする必要がある
  • 使っていないときにはなるべく低消費電力にする必要がある

Lipo電池以外にLi-ion電池でも上記と同じ特性をもつものでしたら、同一回路で利用可能です。

今回試作するLipo充放電回路について

  • 負荷としてはRaspberry pi zeroなどを想定して、5V 0.5A出力可能
  • Lipo電池としては3.7V600mAhの容量をもち、出力1A程度の出力が可能
  • Lipo電池には安全回路が内蔵されているタイプを使う
  • 充電はUSB経由でおこなう

最初に思いつく回路として、充電ICと負荷をつなぐと、以下のような構成になりそうです。

ただつないだだけの充電制御

しかしこの回路では、上記の条件を満たせません。出力電圧も変化するのでRaspberry piは動かなそうです。 条件を満たすようにするには以下のような構成になりそうです。

最小限充放電制御

この回路を順次設計してみます。

ロードスイッチ

まずは最も大切なのは、使っていないときには低消費電力で、ユーザーのスイッチ動作で電源をON/OFFするためのスイッチです。 一般的にロードスイッチと呼ばれる種類の中で、電池マネージメントに特化したTOREX社のXC6194シリーズを使ってみました。 このICは最近の製品で一般的な、電源スイッチを一度押すとON、5秒押すとOFFという挙動をIC1つで実現できます。 また、負荷が1Aを超えたり、電圧入力によるshutdownなどほとんど全ての機能を1つで実現できます。

低電圧シャットダウン

バッテリー電圧が下がりすぎたときには自動shutdownをおこなうために、電圧比較ICと比較電圧源が必要です。 ここでは簡単のために、ロームのRESET ICを使ってみました。この出力をロードスイッチのshutdown端子につなぎます。 3.0Vにしたら結構早くshutdownしてしまうため、今回は2.9V版を利用しています。

入力保護回路

入力保護回路ですが、自作回路がショートした場合などに備えます。また静電気で壊れにくいようにESD対応チェナーダイオードを入れておきます。 手持ちの部品で作ったので、ヒューズは1Aでチェナーは6.2Vになりました。

また、今回は考慮しませんでしたが、入力逆接した場合の保護もこの方式で可能です。(今回利用したESD用のダイオードの順方向電流が規定されていないので、この回路ではうまく動くかは不明です。逆接時に正しくヒューズが溶断するようにダイオードを選ぶと良いと思われます)

Lipo充電回路

1セルのLipoの充電ICは色々ありますが、値段が安いということで、MCP73831を利用しました。 このICはいくつかオプションがありますが、充電終了電圧4.20Vのタイプが秋月電子に売られているので、購入してみました。

DCDCコンバータ

最後の5V昇圧回路については、サイズが小さくて値段が安いということで、秋月電子で販売されているAE-XC9306を利用します。 これにはEN端子が付いているので、XC6194の出力にそのままつなぐ事ができました。

回路設計

上記のブロックを組み合わせて充放電制御回路としました。U4は分かりにくいですが、shutdownする条件を計算するロジックです。低電圧と判定されたときに、 XC6194からPG(power good)が出ていたらshutdown信号を出力する、低電圧出ない場合にはマイコンからのshutdownを受け付けるようになっています。

その他にLEDを付けました。電源スイッチを押すと点灯、電源スイッチ長押しで消灯します。また、マイコンから点灯を制御できるようにもしてあります。

Raspberry piと組み合わせられるように、ピンヘッダ経由で幾つかの信号を受け渡しできるようにしました。

  • GPIO2: LED端子(outputモードにすることで制御可能)
  • GPIO3: スイッチ状態(inputモードで電源スイッチを押したことを検出可能)
  • GPIO4: shutdown端子(outputモードにして、1を書き込むと電源がshutdownする)

これらを組み合わせて回路を設計しました。

おまけ:micro USB電源だけコネクタというものが秋月に売っていて、便利なので使ってます。この MRUSB-2B-D14NI-S306 とかかれた部品ですが、普通のユニバーサル基板にUSB電源を供給したり、今回のようなUSB電源入力端子にもってこいです。

これらを基板に載せてみました。

完成品はこのようになりました。

動作確認

スイッチにより電源をON/OFFして、Lipoの充電・放電を制御できることを確認しました。 一応、異常時に停止することも確認できました。 また、負荷としてRaspberry pi zeroを動かすことができました。 ただし、出力容量は500mAしかないので、私の使っていた環境では動きましたが高負荷時にもうまく動くかはわかりません、、、

まとめ

以上のように、Lipoの充放電制御回路を試作してみました。 あまり販売されていませんが、今回のように考えることで、自作回路にLipo充電回路を内蔵することも可能です。

最後にもう一度。実際に実験する場合にはくれぐれもいろいろ考慮して、安全に注意して実験を進めてみてください。