リチウムイオンバッテリの電圧を測定する(したがって、残容量)


14

私が取り組んでいるのは、自分で作ったArduinoボード(Arduinoブートローダーとコードエディターを使用するという意味で)を3.3Vで実行し、対応するMicrochipによってUSB充電されるリチウムイオンバッテリーから電力を供給している充電器IC。

私が達成しようとしていること:バッテリー容量を1分ごとに測定したい。私はLCDを接続しているので、アイデアは、全体的なセットアップにより、特定の瞬間にバッテリーがどのように動作するかを知ることができるということです。バッテリーのデータシートには、電圧対放電レベルの曲線があります。そのため、バッテリーの電圧を測定することで、残りの容量を見積もることができます(非常に大雑把ですが、十分です!)

私がしたこと:

  • (編集:抵抗値が更新され、@ stevenvhと@Jonnyの提案に基づいてP-MOSFETスイッチが追加されました)。

  • バッテリーV_plusから分圧器を接続し、大きな「部分」をArduino / Atmegaチップ上のアナログ読み取りピン(ADC)に接続しました。

  • 分周器は33 KOhm-to-10 KOhmであるため、3.3 Vレベルのマイクロコントローラーから最大4.1ボルトのLi-ionバッテリーを測定できます。

  • また、nチャネルMOSFETに接続されたI / Oピンの1つを使用して、測定が必要な場合にのみ分周器を流れる電流を切り替えることができます。

  • これは大まかな概略図です(@stevenvhと@Nickの提案に基づいて2回更新されます)。

ここに画像の説明を入力してください

私の質問:

  • 現在の設定はどうですか?

  • 私の唯一の制約は次のとおりです。(1)上記のように、電圧測定値に基づいてバッテリー容量の大まかな測定を行いたい。(2)分圧器が充電ICのバッテリーの存在の読み取りを妨げるのを防ぎたい(元のセットアップでは、バッテリーがない場合でも分圧器が存在を誤読することがありました)。


1
「大きな抵抗値を使用しました」。入力ピンには漏れ電流が流れる場合があり、一般的な最悪の場合の値は1 uAです。分割器に流れる電流が少ないと、読み取り値が歪む可能性があります。
-stevenvh

そのため、ディバイダを流れる電流は小さいが、最大漏れ電流を少なくとも1桁上回るほど十分に高い電流が必要です。
ボードバイト

または、同様の質問に対するこの回答で提案したように、FETを使用して分周器のオンとオフを切り替えます。
-stevenvh

FETが所定の位置にある場合、分周器のオフ「状態」で、これは充電器ICのバッテリーの存在の誤読の問題を解決するかもしれないと思いますか?(ところで、その人が今日も質問を投稿した
なんて偶然

1
あなたは間違った側に間違ったFETを持っています。これをオフに切り替えると、R1には電流が流れないため、入力ピンには最大電圧がかかります。ハイサイドにP-MOSFETが必要なため、オフに切り替えるとI / Oピンがグランドに引き下げられます。
-stevenvh

回答:


12

ここに画像の説明を入力してください

これはニックの回路図に非常に似ているようで、おそらく彼が投稿したときにそれを描くのに忙しかったでしょう:-)。

まず、ハイサイドでN-FETを使用できない理由:ソースよりも数ボルト高いゲート電圧が必要であり、4.2 Vだけで十分であるため、動作しません。

プルアップにはより高い値がありますが、100kΩの値でも可能です。10kΩを使用すると、測定時に400 µAの不要な追加電流が発生します。世界の終わりではありませんが、どちらの場合も1つの抵抗器ですので、もっと高い値を使用してください。

MOSFETの場合、要件がそれほど厳しくないため、さまざまな部品を選択できます。たとえば、Pチャネルの場合はSi2303、N チャネルの場合はBSS138などの安価なものを検討できます。


正式な回答をありがとう!この特定の組み合わせにはいくつかの用途が考えられると思います。これに基づいて、質問の回路図を更新しました。また、N-FETの説明に感謝します。
ボードバイト

ここで使用する適切なNチャネルMOSFET(理想的にはSMDタイプ)の例として何をお勧めしますか?IRF530は大きく、安価すぎないようです。(Pチャネルについては、Si2303がSMDに入っているので、すでに世話をしています。)
boardbite

1
@Inga-電流は必要ないので、オン抵抗はそれほど重要ではありません。ゲートのスレッショルド電圧を見てください:3.3 Vでオンになっているはずですが、それでも電流をシンクする必要はなく、選択肢はたくさんあります。のBSS138は、私が見つけることができる最も安いの一つであり、そしてきれいに行います。
-stevenvh

7

@Inga。これは答えというよりもコメントです。しかし、写真を投稿したいので、回答として投稿しています。

マイクロコントローラー(uC)は+ 3.3Vで駆動されます。提案されているP-MOSFETのドレインは、+ 4.1Vにも達する可能性があります。現在描かれているように、+ 3.3Vのロジック信号ではP-MOSFETを完全にオフにすることはできません。以下の回路図のQ6は、+ 4.1Vに耐えるオープンドレイン出力を形成します。

C14はインピーダンスを下げ、A / Dに表示されます。

ここに画像の説明を入力してください

[...]バッテリー電圧(したがって、残容量)

バッテリー電圧の検知は、残りの容量を検知する正確な方法ではない場合があります。ポータブル機器(携帯電話、ラップトップ)では、バッテリーの入出力電流を測定することでバッテリー容量を推定します。このタスクを支援する専用のバッテリー残量計IC(たとえばbq27200など)は多数あります。

ローサイドに単一のNチャネルMOSFETを、上側に2つの抵抗分割器を配置してみませんか?
[以下のコメントから]

ローサイドスイッチには、バッテリー電圧(V bat)がマイクロコントローラーの供給電圧(V cc)よりも大きい場合に問題があります)。ローサイドスイッチがオフの場合、分圧器のグランド端はフロートし、分圧器はもはや分圧せず、完全なバッテリ電圧がマイクロコントローラのADCピンに現れます。これにより、uCが破損する可能性があります。また、バッテリーが放電する漏れ経路も作成します。
V bat > V ccの場合、ハイサイドスイッチが必要です。

1 V ccを簡単に使用しますが、この説明はV dd、AV cc、AV ddにもます。疑わしい場合は、もちろんデータシートを参照してください。


ニックありがとう!それは理にかなっており、回路図を更新しました(燃料計はオプションですが、いくつかの基本的な電子機器と実験、したがって分圧器のアイデアを学ぼうとしています)
boardbite

ローサイドに単一のN Mosfetと、上側に2つの抵抗分割器を配置してみませんか?P MOSFET駆動するためにN型MOSFETを使用する必要がある理由を見ることができない
ルイス・カルロス・

1
@Luis回答を編集し、コメントに回答を追加しました。
ニックアレキセフ

4

Ad.A:バッテリー電圧を検出するために単純な分圧器を使用することは十分に公正だと思います。ただし、抵抗を慎重に選択する必要があります。ATmega328データシートによると、ADC入力の内部インピーダンスは100kΩ です。「図23-8。アナログ入力回路」を参照してください。分割器のインピーダンスがADC入力に匹敵する場合、ADC入力回路は基本的に分割器の別のノードのように動作します。ADC測定値にオフセットが生じる場合があります。

レール間で最大10kΩの分圧器を使用すると、ADC入力インピーダンスを無視できるほど低くなりますが、最大410µAしか使用しません。アプリケーションにとってそれが大きすぎる場合は、もちろん、より大きな抵抗を選択できますが、ADCがあり、Vcc / 2に接続されていることに注意してください。


その説明は理にかなっています。確かに、0.4 mAはそれほど多くありません!私はできるだけ理想主義になろうとしていました:)このディバイダーがあると、バッテリーがあるかどうかの充電器ICの読み取りに影響するかもしれない理由について何か推測がありますか?
ボードバイト

私の推測では、分圧器があるプラスのバッテリーピンとUSBからの+ 5Vの間にまだ接続があると思います。あなたの特定の回路はわかりませんが、Arduinoの回路図を見れば、どこに行くのかを推測できると確信しています。
ジョニーB良い

必要に応じてFETを使用して分周器を接続/切断するというステファンのアイデアに従えば、すべてがうまくいきません。MOSFETには、分圧器にとって完全に無視できる抵抗があります。USBが接続されているかどうかを監視するには、おそらく別のADCが必要でしょう。
ジョニーBグッド

ありがとうございました; 2つの提案に基づいて質問を更新し、回路図を追加しました。USB供給監視に関しては、充電ICにはすでにこのためのステータス出力があります!
ボードバイト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.