TL431とMOSFETでバッテリープロテクタを作る

バッテリーの過放電を防止するため、バッテリーの電圧が一定値を下回ったらバッテリーを負荷から遮断する「バッテリープロテクタ」を、TL431とMOSFETを使って作ってみた。

スポンサーリンク

TL431を電圧検出に使う

TL431の等価回路

TL431のデータシートから拝借した等価回路は以下のような物。基準電圧とオペアンプが内蔵されている。

TL431図

TL431の内部では基準電圧がオペアンプの反転入力、REF端子が非反転入力に接続されており、REF端子の電圧がVrefの電圧である約2.5Vを上回るとCATHODE端子に流れる電流が急激に増える。REF端子とCATHODE端子を直結すると2.5Vのツェナーダイオードのように使える他、対象電圧を抵抗分圧してREF端子に入れるようにすれば2.5V以外の電圧に設定して使うことも出来る。

バッテリーの電圧低下を検出する回路

LTspiceで以下のような回路を組んだ。(TL431のSPICEモデルはLTwikiに置いてあった物を利用)

低電圧検出

電圧源V1は12Vのオフセットが付いた振幅2Vの正弦波であり、この電圧をR1とR2で抵抗分圧してTL431のREF端子に入力している。シミュレーションを実行すると電圧が12.7V未満の時はCATHODE電流が殆ど流れないが、12.7Vを超えるとCATHODE電流が急激に流れる。つまりしきい電圧12.7Vを境に回路の挙動を大きく変えられるという事だから、この回路を応用すればバッテリーの電圧低下を検出出来そうだ。

低電圧検出SIM

バッテリープロテクタ回路をLTspiceでシミュレーションする

上記の回路をベースに、バッテリーが12.7Vを超えた時だけNchパワーMOSFETがオンして負荷抵抗に電流が流れる回路を組んだ。パワーMOSFETは手元の在庫品を使っているが、負荷に流したい電流に応じて好きな物を使えば良いだろう。Q1も手元に在庫があるPNPタイプの小信号トランジスタを使ったが、同様の回路はPチャネルの小信号MOSFETを使っても作れる筈。

バッテリープロテクタ

この回路は以下のような動作をする。

  • バッテリーが12.7V未満:CATHODE電流が流れないのでQ1にもベース電流は流れずQ1はオフ。この時ゲート電位Gも0VとなりM1はオフのまま。
  • バッテリーが12.7V以上:CATHODE電流が流れ、Q1にもベース電流が流れてQ1がオン。ゲート電位が上昇するためM1がオンする。

この動作をLTspiceのシミュレーションで確認する。

バッテリープロテクタの動作1

負荷抵抗RLの電流を確認すると、期待通りにバッテリー電圧が12.7Vを超えた時だけ電流が流れている。

バッテリープロテクタの動作2

ブレッドボードに回路を組んで動かしてみる

LTspiceでシミュレーションした回路をブレッドボード上に組んだ。電源から負荷を遮断するしきい電圧は半固定抵抗で自由に設定可能になっている。負荷は抵抗ではつまらないので、スマホ充電用の5Vレギュレータを接続。

バッテリープロテクタ写真

半固定抵抗でしきい電圧は12.3V付近に設定。12.4Vであれば電源から電流が流れ、スマホの充電がされる。

バッテリープロテクタOff写真

安定化電源の電圧を少し下げると、レギュレータが電源から遮断されてスマホの充電が止まった。

バッテリープロテクタOn写真

動作安定化のためのコンデンサを入れたほうが良さそう

組んだ回路をバッテリーに繋いで実際に動かしてみると、以下の1. 2.が繰り返し起こって発振状態になってしまう場合がある。

  1. 負荷と遮断された状態でV+がしきい電圧を上回り、MOSFETがOnして電源と負荷と接続
  2. 負荷と接続して電源から電流が流れるとバッテリーの内部抵抗による電圧降下でV+がしきい電圧を下回り、MOSFETがOffして負荷と遮断

このような状態を防止するには回路にコンデンサを入れ、しきい電圧付近での動作を安定化させると良い。コンデンサを入れる場所はR2の両端などでも良いのだが、TL431のANODE端子とCATHODE端子の間に入れるのが良さそうな感触(このへんは用途や好みによるかも)。

バッテリープロテクタの安定化

シミュレーションを実行すると、プロテクタのしきい電圧を下回ってから実際に回路が遮断される迄のタイムラグが数百ms程度挿入されてOn/Offがバタつきにくくなっていることが確認出来る。

バッテリープロテクタの安定化sim

まとめ

TL431とディスクリート部品だけでバッテリープロテクタを作ることが出来た。当初はADコンバータで電圧測定して、マイコン制御して…みたいな事を考えていたのだが、ふと「全部アナログ回路で出来るんじゃね?」と考えてLTspiceでゴニョゴニョしてたらTL431以外特殊なICも使わずに作れてしまったという感じ。

とはいえ自分は回路設計の経験が浅く、この回路で良いのか悪いのか良く分からない。とりあえず動いているので、暫く使ってみて問題があったら記事を更新しようかと思う。

コメント

  1. kaeru より:

    とても参考にさせていただきました。助かりました。

    参考にして作成したもの:
     USB PDホストから5V出力された場合と、5V超出力の場合において電源経路を切り替える

    > 当初はADコンバータで電圧測定して、マイコン制御して…みたいな事を考えていたのだが
    私もATTiny10(秋月で30円)のAD変換で考えておりましたが、実際にやってみると正常ユースケースでは意図通りに動くのですが、
    ホストからの電力供給不足やコネクタ抜き差しなどでサージが発生した際に、電源経路切り替えが間に合わず、回路全体に高電圧がかかって壊れました。

    普通に考えたら、AD変換で過電圧保護などできるわけないです。完全に頭がバグっておりました。

    ひとまず、参考にして作成した回路は、ltspiceでのシミュレーションでも、オシロでの測定でも完璧な挙動をしております。
    ありがとうございました。

    • けん けん より:

      kaeruさん、はい、自分も電源制御にマイコンを使おうとして何個か壊しました(涙)
      こんなシンプルな回路でも用が足りてしまうと「アナログ最強」って思ってしまいますよね。
      コメント有難うございました。