100均で USB コネクタの電池BOX (単三 x2)があるのを知り、入手しようと思っている。型番は EP-024CHA 。
JR7CWK'sぶろぐ で詳しく紹介されている。販売店はシルクだそうだが、通販で扱っている店もあるようだ。
使用 IC は、BL8530 。aitendo で
3.0V タイプを扱っている。HT77xxA と同じようなもの。ピン互換性はあるが、周波数が違うため、最適なインダクタも違う。
自己消費が少ない(負荷なしで 12 uA)ので電源スイッチなしでも問題なさそうだし、完全に空になるまで動作する(起動電圧は、0.8-0.9 V)から 一次電池で使うのに向いている。
LX の電流制限が 0.7A なので、肝心の 携帯充電に向いているかどうかは分からない。500mA 流すのは無理だと思う。自作機器のバッテリーとかにするのなら良さそう。
ただ 二次電池を使うのはどうだろう。HT77xxA も同じだが、過放電が怖い。なにか対策は出来ないのだろうか?
リセットICを使う方法(まとめ)
必要なもの
1) 1.8V以下 で 出力を H にする (Active-High) 低消費電流(数 uA以下)の リセットIC
2) 低電圧で動作する Pch MOSFET
リセットIC の出力を MOSFET の GATE に接続する。MOSFET が ON のときは、数十 mΩ の抵抗が 入っているのと等価。OFF になった場合 HI-Z 。低消費電流のリセットIC を選べば この状態での電池の減りは気にしなくて良くなる。(自己放電の方が多そう)
(充電とかで) 高い電圧を 入力すると FET 内のダイオードを通して電流が流れる。(ある程度充電されて) 電池の電圧が 1.8+α になると ON になる。
リセットICは入手が難しい。1個単位で買えるものは限られる。特に Active-High のものは 品種が少ないので、さらに入手が難しい。
Active-Low なら GND 側に Nch MOSFET を付けることになる。
必要なもの2
1) 1.8V以下 で 出力を L にする (Active-Low) 低消費電流(数 uA以下)の リセットIC
2) 低電圧で動作する Nch MOSFET

ちなみに、リポ電池も、 2.85 - 3.0V のリセットIC を使えば同じように過放電保護が出来そう。
ちなみに、
TrustFire Protected 10440の場合、こんな保護機能が入っている。
- With integrated PCB Protection
- Over current protection current: 4A
- Over current protection voltage: 0.2V
- Over charging protection voltage: 4.25V +/- 25mV
- Over discharging protection voltage: 2.5V +/- 50mV
過放電保護以外に過充電保護と過電流保護があるようだ。過電流を流すと危険なので、保護することは重要かも知れない。MOSFET の性能で電流を流せないだけという気もちょっとする。
意外だったのは、過放電保護が 2.5V なこと -- 2.85V を死守しないといけないかと思っていた。なら、リポ電池で、2.7V の
NCP300HSN27Tも使えそう。
AVRを使う方法
リセットICは入手が難しいし 電圧毎に用意しないといけない。ADC 付きの AVRで、低消費電流になるように使えば、良いのでは?
とは思う。... だが、AVR の内蔵基準電圧は、精度が悪い ± 10% ぐらい。
外付けの基準電圧を付けるにしても結構高い。しかも 最低電圧も結構あり 1.8V で動くようなものは 入手できない。たとえば
MAX6001の最低電圧は、2.5V 。
レギュレータを探してみると ...
XC6221の 1.5V のものが安くて良さそう。消費電流も 25uA と割と少ない。SHUTDOWN も出来るから、さらに減らすこともできる。
ちなみに、2.3V 以上で良いなら
MCP1700が良さそう。安いし 精度も高く、さらに 消費電流が 1.6 uA 。
結局のところ、基準電圧も入手が難しいので リセットIC で 過放電保護回路を作って完結させてしまうのが良さそう。
充電機能も付けるには
MyCharger Stick のような製品がある。こういった機能を付けるにはどうしたら良いのだろう。
ここでは、2 cell NiMH だけを考えることにする。
最も簡単そうなのは、電流制限付きの 2.8V 定電圧回路。
MC34063A とかで 作れることは作れる。
- ピン 6-7 間 の抵抗値で ピーク電流を 制限する。ピーク電流 /2 が 最大出力電流。300 mV だから、0.33 Ωで 1A 。ただし精度はあまり高くない。± 20% ぐらい?
- ピン 5 が FB (1.25V) 精度は ± 2% (25℃)
- インダクタのインダクタンスは、電流が大きいほど、入力電圧と出力電圧の差が小さいほど、小さな値にできる。
- セリアで売っている 片山利器製USBポート付シガーソケット専用DC充電器 をバラして インダタクタと一緒に流用するのもアリかも知れない。
まず、電流検出抵抗(R1)が、0.15Ω なので、0.3 Ωに変更。これで Ipk が 1.0A (最大出力 500mA) に制限できる。インダクタは 変更する必要はないが、計算してみると 5V 入力の場合 22 uH まで小さくできる。... というか小さくしないと (制限値まで)電流を流せないかも。
出力電圧の調整は難しい。精度のよいテスターで 小負荷で 2.8V になるように 調整しないといけないのはもちろんだが、温度が変化しても 2.8V を超えないようにしないといけない。
AVR とかで制御する場合は、FB を H レベルにすることで 出力を止める。定電流駆動だけ使えば良いから 2.8V きっかりにこだわらなくても良さそう。
2.8V が上限になるようにちゃんと調整さえできれば、過充電の心配はしなくて良さそう。ただし、電池が変になっていないという前提があるし、充電完了が分からないという問題もある。
AVR を使って PWM で 充電回路を作る方法もあるが、管理だけするのも アリだと思う。充電回路などは危険なので 確実に作れないとマズい。
AVR での処理は、
- 充電時間の上限の管理。
- (できたら)電池の温度の管理。
- 定期的に充電を止めて、電圧の測定。
正確に電圧を測定して、ある電圧になったら完了とかで良いのではないかと思う。もっとちゃんと作るには、たとえば MCP73831/2 のデータシート (pdf/日本語)のアルゴリズムを参考にしたら良いと思う。
この場合は 基準電圧として TL431 などを使っても 問題ないと思う。
ところで、AVR を使うなら やはり AVR で充電したいような気もする。どうするのが良いのか考えておこう。
まず、定電流の充電。
Pch MOSFET 22uH
5V 1.8V 〜 2.8V
Vin --------+- S D --+---- L ----+--- Vout
R1 G | |
PWM ----R2 -+-----+ D↑ C
| |
--+-- --+---
Vf = 0.4V
とりあえずこんな回路を考える。インダクタは 22uH を使うことを前提にしてしまう。
電圧の範囲も 入力 5V 、出力 1.8V 〜 2.8V を前提にしてしまう。
この条件で L に流す最大電流を 1A にするには、どうするのか?
MC34064A のデータシートを見ていると
Ton : Toff = Vout + Vf : Vin - Vsat - Vout
という関係になるらしい。
Vsat = 0 としてあてはめると
Ton : Toff = 1.8 + 0.4 : 5.0 - 1.8 = 2.2 : 3.2
= 2.8 + 0.4 : 5.0 - 2.8 = 3.2 : 2.2
あと、
Ton(max) = L x Ipk / (Vin - Vsat - Vout)
という関係もある。L = 22uH , Ipk = 1A とすると、
Ton(max) = 22 / 3.2 (uS) = 6.9 (uS) (Vout = 1.8V)
(Ton + Toff) = 16.9 (us) (59.3 kHz)
Ton(max) = 22 / 2.2 (uS) = 10 (uS) (Vout = 2.8V)
(Ton + Toff) = 16.9 (us) (59.3 kHz)
たとえば、8MHz で動かしていれば 1周期 135 クロック。Vout によって L 時間 55 〜 80 クロックで変化させる。
注意)これはあくまで目安。実際のL が 22 uH より小さい場合 1A より電流が流れてしまうかも知れない。誤差を考慮しないといけない。
こんな感じの処理で良いが、時々充電を止めて 電圧をちゃんと測定する前提なら、もっと 単純化しても良さそう。
ところで、充電回路 だが、電源につながっていない場合、Pch MOSFET のボディダイオードを通して バッテリーから電流が流れ込む。逆流防止用のダイオードが別に必要。

ちょっと検討してみたのだが、逆流防止用のダイオードを入れるのなら、最初からトランジスタにした方が良いような気がしてきた。
あと、3.3V レギュレータの
S-812C33AY-B-G を 基準電圧に使うのが安くて良いかも。
2SA1160 は、TO-92形の背が高いタイプ。耐圧は10V しかないが パルスで -4A 流せる。hFE も大きめ。似たタイプだと TO-92 の 2SA1300 がある。マルツで扱っている。ちなみにコンプリは、2SC2500(2SA1160),2SC3279(2SA1300)
この回路の通りだと、電源につながっていないときに、バッテリー から ADC3 を通じて AVRに電流が流れ込む、ちょっとまずい。ADC3 と BAT(+) の間に 100K Ωを入れるのが良さそう。
(以下 発散しすぎなメモ)
前にも書いたのだが、Pch MOS FET を使って スイッチを作り、1.8V 以上でないと On にしないという保護回路を付ける。自作するなら、ADC 付きの マイクロコントローラがあれば簡単。電池の電圧を (1秒に1回とか)ときどき測定して 1.8V 以下になったら FET を OFF にする。待機しているときは、電力を消費しないように工夫する。
補足:
ディスクリート で組むのは難しい。原理は簡単でも、低消費電力の基準電圧とか入手性が悪い。ときどきしか 基準電圧を ON にしないようにして、平均の消費電力を減らしたほうが自作には向いているのだ。
この程度の処理なら、Tiny13(A) で十分。秋月で
120円だし入手性も問題ない。
ただ、低電圧で駆動できる Pch MOS FET の入手が難しい。秋月なら
IRLML6402がなんとか使えるかも知れない。ただし、09/12/19 現在は在庫切れ。デジキーなら
PMV65XPとかが買えるが...
具体的に検討してみよう。まず、コントローラを Tiny13A と決める。AVR の VCC は電池に直結。Pch FET は、470k Ωで プルアップして AVR の PORT につなぐ。
PORT を 出力にして L にすると、電源 ON 。このとき 2.4V なら プルアップだけで 5uA 消費する。BL8530 が 12 uA だから馬鹿にできない。... もう少し大きな値にした方が良いかも。
さて、あとは 電池電圧を測定する回路。1.1V 基準電圧使うとして、VCC を 100K , 33K ぐらいで 分圧して ADC に入力することにする。... 抵抗値はあまり大きくできない。これでも大きすぎかも知れないぐらい。常時接続はできないので VCC ではなく、PORT に接続することにする。PORT を H にしたときだけ 測定可能ということになる。
この基本回路で 3 pin 使った。あと 2 pin 使える。
付けるなら、スイッチ + LED 。
__
VCC --- R --- LED -+-o o--- GND
|
PORT
こうかな。SW 押しても LED が点灯しなければ 本当に電池がない。SW の 長押しで 電源 On/Off 。SW 付けない場合もあるし、初期状態は On 。
On にした後、数秒は LED を付ける。あと Off にしたら やはり数秒点滅。
あと 1pin あるが、CE 付きの昇圧 IC 用に On にしたら H にするようにしたら良いと思う。CE = L にしても 昇圧を止めて 電池電圧 - αの出力にするだけだが、Pch MOS FET の代替としての意味は多少あるだろう。
HT77XX や BL8530 でも 5pin タイプのものがあり、それには CE が付いている。BL8530 では、0.9V 以上にならないと On にしないようだ。HT77XX では 2V と書いてある。... がこんなところで基準電圧を使うわけでなさそうだから鵜呑みには出来ない。
aitendo で 扱っている PT1301 はピン配置も周波数も全然違うのだが、LX に 最大 1.5A も流す。これで USB電池 BOX を作れば、5V 500mA (以上の)の出力にできるかも。こいつにも CE は付いている。ただ、負荷なしの消費電流は若干多く 56 uA (+ FB 用分圧抵抗分)
回路はこんなもの。あとはプログラム。いかに電力を削減できるかやってみるのは面白そう。
ちなみに、BOD は使わない方が良い。使うと 内部基準電源が使われて消費電流が 20uA 弱増える。WDT(+ 4uA) のがマシ。AVR 全体として平均 10uA なら上出来で、50uA ぐらいを取り敢えずは目指せば良いと思う。
さらに書いておくと、電池BOXの EP-024CHA は、 USB 側に抵抗が入っている。USBの Battery Charging v1.1 規格に沿って いるのだと思う。(
pdfのzip) 。ちゃんと理解できていないが、結果として 100 uA ほどの消費電流になっているらしい。対応機器を充電するのでなければ、取ってしまった方が待機時の電流消費が減って嬉しいかも。
EP-024CHA の改造ネタはこんなところ。いずれ挑戦したい。
追記:
いろいろ書いたのだが、デジキーで
NCP303LSN16T1というのを見つけた。
NCP303 は、いわゆるリセットIC で消費電流が 0.4 uA と非常に小さい。ある電圧以下になると、オープンドレイン出力を On にする。だが、逆の論理の出力も持っていて、ある電圧以下になると、H を出力できる。この型番は、1.6v 以下を検出するものだが、1.8V の
NCP303LSN18T1などもある。LSN の部分が HSN になると 論理が逆になる。NCP300-302 もあってなかなかヤヤコシイ。
それはともかく、これに Pch MOS FET を直結するだけで バッテリーの 過放電保護ができそう。
PMV65XPと合わせて買うと良いかも。
まぁ、AVR で組めば応用ができるので、意味がなくなったとまでは思わない。... だがしかし。
追記: 同期型 昇圧 IC を探してみた。
NCP303 を買うとしたら、ついでに 同期型 昇圧 IC というのも買えば、外付けの Pch MOS FET なしでも off に出来て嬉しいのではないか? ..と思って探してみたら、
SC120SKTRT というのが見つかった。一個 68円と安い上に、外付けのショットキーバリアダイオードも不要。3.3V 固定のモードと 1.8V 〜 5.0V 可変のモードを持っていて応用範囲も広い。
最大入力電流は、1.2A だそうだ。インダクタは、4.7hH 。2.4V → 5V 昇圧で 200mA まで 効率 80% 。300mA ぐらいが限界のような感じ。
なんか勘違いしていたかも。同期型でも off のとき 電池の電圧分は出力に流れるはず。
さらにさらに、これに合うインダクタを探してみたら... 太陽誘電の
CB2518T4R7MRとか、
CB2518T4R7M とかが見つかった。10個で 170円! ... デジキーってインダクタは高いものばかりだと思っていた。CB2518T4R7MR は、4.7 uH 1.2A 、Rなしは、1.1A 。
CB2518T で検索すると いろいろ出てくる。あと安そうなのは、
CBC3225T の 10個 305円 とか
NRG4026T、
NR4018T の 10個 430 円とか。
ここから、ちょっと脱線して、デジキーついでメモ
CB2518T220K は、22uH , max 580mA 。aitendo で扱っている
XZ5121は、LX が 300mA のようなので、十分使えそう。デジキーで買える同じピン割り当ての
AP5724(78円) は、750 mA 。...なのだが推奨インダクタに、22uH , 510mA のものがあるので 使えるはず。BL8530 も 最大 700mA で、インダクタンスが 10uH 〜 100uH (標準 27uH)と なっているので大丈夫そう。
XZ521, AP5724, BL8530 , PT1301 は LX の電流を検出して制御している。だから最大絶対定格は関係なく制限値が重要。インダクタに流れる電流はノコギリ状なので、平均値は制限値 より小さい。インダクタの最大絶対定格より、制限値が 1-2 割大きくても問題ないらしい。
HT77xxA は周波数が低いから 22uH では小さすぎる。... ただし使えないとまでは行かないようだ。CB2518T470K だと 47uH, 420 mA で、ちょっと不安。NRG4026T470M の 47uH, 650mA ぐらいが良さそう。
HT77xx は、LX の電流制限をしていないように見える。HT77xxA では、その機能が入り周波数が、115kHz → 200kHz になった。ただ、電流の制限値が書かれていない。
まとめると
4.7uH 10uH 22uH 47uH
CB2518T 1.1A 0.82A 0.51A 0.42A
CB2518T(R) 1.2A x x x
NRG4026T 1.6A 1.3A 0.9A 0.65A
SC120(1.2MHz,1.2A)
PT1301E(500kHz,1.5A)
XZ5121(1MHz, 0.3A)
AP5724(1.2MHz, 0.75A)
BL8530(350kHz, 0.7A)
HT77xxA(200kHz, ?)
HT77xx(115kHz,-)
注) XZ5121,AP5724 が高い周波数にもかかわらず、高インダクタンスなのは、高電圧向け(LED 6直列)のため。電圧を低くして電流を流す場合は 10uH, 4.7uH とかにすべきだと思う。
...たぶん。
こんな感じか。
色々調べてみて、SC120が気に入った。安いし、ダイオードもいらない。
過放電保護を入れる場合でも Pch MOSFET がいらない。 電圧は可変にできるが 3.3V で良いなら分圧抵抗もいらない。同期式で効率も良いし。マッチするインダクタも安そうだし。
ちょっと SC120 をどう使うか検討してみよう。
1)LED ライトとか昇圧付き電池BOXの過放電保護
2セルの NiMH 前提として、1.8v 以下になったら自動的に OFF
NCP300LSN18T1/NCP302LSN18T1 の Reset Output を EN に接続。
他の CE 付きの昇圧 IC の場合も同じ。Pch MOS FET をつなぐなら、HSN にする。
リチウムイオン用に Pch MOS FET をつなぐ ならNCP300HSN30T1 ?
NCP301/NCP303は、オープンドレインなので、Reset Output をプルアップする。(抵抗値は、1MΩ とか)
2)AVR の電源として使う
__
BAT+ ---------o o----+--- C ---GND
|
+--- R -- GND
|
PORT(ADC) --+-- EN
R 1M
C 1u
こうかな?
ボタンを押すと 電源が入る。1 秒以内に勝手に Off になるので
起動したら とりあえず PORT を pull-up 。
電源を切る場合は、HI-Z にすればしばらくして off になる。
ボタンのセンスは ADC 。通常は ほぼ VCC レベルだが、ボタンを押せば BAT+ まで落ちる。
過放電保護をしたければ、AVR で処理を入れれば良い。
他の CE 付きの昇圧 IC の場合は、電源側に Pch MOSFET を入れて...
__
GND ---------o o----+--- C ---BAT +
|
+--- R -- BAT +
|
PORT ----+-- GATE
PORT --------- EN(CE)
R 1M
C 1u
こうかな? ... ちょっと適当。電源 On はできるけど、センスはできない。昇圧 On はPORT でするか、常に On。
さらに ...バッテリーの過放電保護ができる 昇圧 IC を探してみた。
見つけたのは、
NCP1421。1 個 198 円もするのだが、バッテリーの電圧が ある電圧以下だと OFF にできる機能付き。これはちゃんと OUT を切り離す。あと1.2V ±1.5% 電圧リファレンス出力もある。
nch は、1.5A 制限で 1.2 MHz 。ただ 0.65mm ピッチ 8pin で気軽に使えないかも。
ちなみに電圧リファレンスも探してみたが、MAX6006(A/B) (1.25V), とか TLV431(A/B) (1.24V) があるものの 100円とか それ程安くない。消費電流も 55uA とか常に On するにはちょっと多い。
レギュレータの方が安いぐらい。1.2V なら MCP1700T-1202E とか NCP585HSN12T1G とか。
そういえば、SOT-23-5 タイプのレギュレータで BYPASS 端子があるものがある。調べてみると、内部リファレンス電圧がそのまま出力されている。電圧は定義されていないが、実測して使えば使えそうな気がする。秋月だと、SI91841DT-285 2.85V ±1.5% 5個 100円。あと、TAR5SB33 3.3V ±3% 10個 280円とか TAR5SB50 5.0V ±3% 10個 300円 とかは NOISE と書いてあるけど 同じみたい。
デジキーで探すと、TC1015-3.3V 3.3V 100mA ±0.5% 10 個 360円 とかもある。(他に TC1014,TC1185 も)。ただし、こっちは 470PF 標準で、上のチップの 1/20 の容量しか付けないので、リファレンス電圧の出力電流も一桁低そう。AVR の AREF に付けても大丈夫なのか不明。
規格外の使い方なので、危険ではある。特に VCC として利用した上で BYPASS を AVR の AREF に接続する場合、設定を間違えるとレギュレータがスルーになって回路全体がダメージを受けるかも知れない。注意が必要。