(3)I2C 高機能電源
PWM で降圧型DC/DC コンバータを作り、定電圧と定電流の機能を持たせてホストから機能設定とか電圧/電流をモニタできるようにする。できれば、NiMHの充電器として使えるようにしたいし、逆に充電したNiMHから昇圧できる機能もつけたい。コイルは共用できるはずでスイッチには Pch+NchのMOS FET を使う。AVR は 手持ちのATtiny26L..でできるとうれしい。なにを選択するにせよ、昇圧時は、自己消費が大きいとあまりうれしくないので、そのあたり工夫してみたい。
と書いた。いますぐ作るつもりはないのだが、基板を起こしたときのために、回路だけは考えておこうと思う。
なぜこういうものを作りたいかというと、電源系が電子工作で作品を作るうえでのひとつのネックだと思えるからだ。携帯できるものを考えたとき、電源専用 IC を使えば比較的簡単に解決できるのかも知れない。ただ、たぶん(作った時点でも)入手性が悪い。時間が立てばさらに入手性が悪くなる。もし、AVR で電源系を自由にできれば、長期間有用だ。なにより、電源用 IC を入手するために苦労しなくて良い。そういう理由で 電源制御をライブラリとして持ちたいと考えていた。
たとえば、かつて 現品.com で MAX722を 3 個100円と格安で入手したのだが、Digi-key ではすごく高い(しかも 最低 50個単位)。 そういうものを電子工作の作品で使うと、だれも作ろうとは思わないだろう。だから、適当な試作ならともかく、作品では使えないことになる。
USB910Aのカテゴリで、AVR の ADC の特性だの 消費電流だのを調べたり、小さなDC-DC コンバータの実験をしていたが、実は、電源制御をライブラリとして持つための予備調査だったりする。作ってみようと思っている装置のなかで、これだけ作れていないが、実は一番思い入れがあるのだ。
どんな回路を考えているか

いわゆる のハーフブリッジの回路を考えてみる。
PWM1 だけ動作させた場合は、IN → OUT の降圧型 DC-DC コンバータだ。

PWM2 だけ動作させた場合は、OUT → IN の昇圧型 DC-DC コンバータになる。

この基本的な回路をベースに、制御の方法を変えて多目的に使おうというわけだ。
どんな部品を考えているか
パワーMOS FET は、8-SOIC で Pch と Nch が入っている製品がある。私が持っているのは、HAT3006R と FDS8958A。どちらもかつて現品.com で購入したものだ。ラジコン四駆とかサーボモータ(の改造)でよく使われている/た ものなので、型番を知っている人も多いかも知れない。もし 昇圧・降圧のどちらかしか使わないのであれば、入手性の良い Pch+Pch型のFDS4935とか Nch+Nch型のNDS9936、μPA2753GRを使っても良い。
小電流しか流さず、効率が落ちて良い場合は、パワーMOS FET 内の ダイオードを流用できる。大電流を流したり、効率を良くしたい場合は、ショットキーバリアダイオードを外付けする。
ショットキーバリアダイオードは、RB051L-40 を入手している。3A 流せて VF がかなり低い。これも かつて現品.com で購入したもの。1A でよければ、秋月の RB160L-40が良さそうだ。
コイルは22uH 〜 47uH を考えているのだが、最近入手性が良くなった。秋月では、TSL0709S 22 uH(max 1.3A) が 4 個 100円だし、千石でも LHLC10NB 22uH(max 2.8A) が 1個 84 円で買える。このあたりをターゲットにしたい。そういえば、LHLZ06NB 22uHは、max 1.2A だ。こんなに小さくて大丈夫なのか不安だが、秋月のと同程度に使えるかも知れない。
電流測定用の抵抗も、現品.com で入手済みだったりする。チップ抵抗の 0.1 Ω(MCR25)、0.3 Ω(MCR100)、0.82 Ω(MCR100)。0.1 Ωだけ 1/4W だが、これでも 2.5A 測定できる。大電流の場合は、これを使う予定だが、秋月で扱っている40mΩチップ抵抗も考慮しておきたい。
大電流がながれるところは、表面実装の部品ばかりだが、表面実装の部品が性能的に良いと思うし、第一それしか入手性がよくない。
例外はコイルだが、表面実装なら高さを低く作れる。実は、コイルも 6.6mm 角 3.2mm 高の ミツミ C6-K3L 22uH (max 1.1A) (pdf)を入手済み。これまた 現品.com で、今どこで入手できるかわからない。LHLZ06NB 22uHが使えるなら別に使う必要はないのだが、こういうのが使えるようパターンを工夫しようと思う。
ちなみに 千石ではスミダの表面実装コイルを(高いものの)扱っている。この中で、CDR104R (pdf)ぐらいは対応できたほうが良いかも知れない。
制御する AVR は、250k Hz の PWM を持っている ATtiny461 系 を前提にする。基板を作るとき DIP じゃなくて SOIC にするかも知れない。機能を落とせば ATtiny45 系でも使えるはずだ。あと できれば ATtiny26L でも使えるものにしておきたい。
内蔵基準電源は、あてにならないことがわかったので TL431を使う。
どんな機能を考えているか
I2C デバイスとして機能するようにするのが前提で、その機能さえあれば、ソフト次第で、ホストから機能を設定したり、ログを取ったり自由にできる。いまはこの機能については検討しない。
入力側 電圧 ... これは 5V を想定する。ただ 12V を入力したいときもあるかも知れないので、AVR にレギュレータを付けられるようにしておくと良いかも知れない。
出力側 電圧 ... 0V 〜 5V の範囲のみにする。
降圧型 DC-DC 出力電流 ... これはコイルに依存する。3A 以上のものは入手性が悪いので、3A 以内だけ考えておく。
降圧型 DC-DC 制御機能 ... 定電流や定電圧 制御はあたりまえとして、1〜3 セル バッテリー充電も範囲に入れる。できたらモータ制御も考慮したい。
昇圧型 DC-DC 制御機能 ... バッテリーからの昇圧だけ考える。1 セルは無理そうなので、2〜3 セル がターゲット。
基本制御のための 入出力
PWM1 と PWM2 は、OC1A , OC1B を使う。PWM1 は 出力側が無接続なら安全なので、ISP と兼用の OC1A 。PWM2 は専用の OC0B。
入力と出力電圧測定用にまず ADC を 2 つ。基準電圧は 2.5V なので、分圧する。
次に 出力電流測定用に 差動入力の ADC を 1ペア(2つ)。昇圧時は逆に電流が流れることになる。ATtiny461系なら +/- を逆にできるし、符号付きの機能もあるので問題ない。ただし、ATtiny26L だと 3pin 必要なので、それを考慮するかも知れない。
これらの値を測定して、PWM の制御にフィードバックをかければ、DC-DC コンバータの機能は作れるはずだ。
電流モード制御のための 入出力
同期整流ははなからあきらめているのだが、オプションとして、電流モード制御ができるように考えておきたい。
電流モード制御とは、コイルに流れる電流も測定して制御に組み込むもので、普通は敷居値を超えたら (その瞬間に)PWM を OFF にするとかになる。ADC では追いつかないから、コンパレータを使って割り込みを起こす。250 kHz で毎回割り込みを起こしていたらたいへん(というか無理)なので、敷居値超えの割り込みで回数だけ記録しておいて、パラメータを調整して起きないようにしていくとかそういう制御になるだろう。
昇圧型 DC-DC では、FET と GND の間に抵抗をいれて、その電圧と敷居値の電圧を コンパレータに入力する。この電圧は TL431 の基準電圧から分圧して作っても良いのだが、調整が面倒だ。ATtiny461系なら、もうひとつ PWM が使えるので、PWM で敷居値用の電圧を作ったらどうか。LPF の カットオフ周波数をおもいっきり低くして、ときどき ADC で実際の電圧を測定すれば問題ないはずだ。ちなみに ATtiny461系では、コンパレータとADCを共用できる。
回路図案
というようなことを考えて整理すると次のような感じになる。

このピンを ATtiny26L も考慮して、どうわりあてるか決めていけば、基板は起こせるはず。
追記:
(1)できるだけ、無駄な電流を消費しないようにしておきたい。そういうことを考えると TL431 の電源は、VCC 直結ではなく、PORT にすべきだと思う。忘れそうなのでメモ。
(2)上の回路だと、バッテリー駆動時 OUT の電圧がそのまま IN に出てきてしまう。そのため、出力制御の PNP Tr か Pch パワー MOS FET がもうひとつ必要になる。これも忘れそうなので、メモ。ただのスイッチでスイッチング特性とか関係ない。SC-59 の PNP Tr 2SA1313(max 500mA) とか、Pch パワー MOS FET 2SJ557(max 2.5A) とか選択できるようにしておけばよいだろう。(他にも PMV65XP(max 3.9A) とか IRLML6402PbF(max 3.7A) とか良いものは何種類もある)あと、スイッチを IN の外側に付けるとして、スイッチのさらに外に電圧センスがほしくなりそうだ。電源が供給されていれば、On にすべきだし、されていなければ昇圧した電圧が上がってきてはじめて On にすべきだ。
(3)上の回路には、コントローラのVCC をどこから取るか書いていない。IN の電圧(スイッチの外、5V 以上ならレギュレータを通した後) と OUT の電圧の高いほう? そうすると、昇圧時 スイッチをOn するまで高い電圧にならない。それは困るので、スイッチの外、内 の電圧の高いほうを レギュレータに通して それと OUT の電圧の高いほうにしないといけない。
追記:回路図案2
上に書いたことを再度整理して、ピンを割り当ててみた。ATtiny461のピンを全部割り当てることになった。そのままだと、ATtiny26L で IN→OUT の電流測定ができなくなるので、3 つめのPWM で作るAIN(-) 電圧 と、ADC2 (ADC1-ADC2 差動用) を共用することにした。3 つ目の PWM はそもそも ATtiny26L はもっていないから、問題ない。
あと、12V 入力はパス。回路図書いていて面倒になってしまった。
IN のスイッチの回路は、FET が書いてあるが トランジスタ用。FET を使う場合は、ダイオードを省略できる。

追記2:パワーMOS FET の選択について
Pch+Nch の 8-SOIC タイプのパワーMOS FET を使おうと思った理由は、ずいぶん前に 現品.com で安く入手できたからだ。1種類だけ買っておけば、ハーフブリッジとして使う以外にも Pch にも使えるし、Nch にも使える。ストックするのに最適だ...なんて考えたためだ。今でも FDS8958Aとかは、2種類買うより安い。 でも、NTMD2C02R2 や IRF7338PbF みたいな新しいものを入手するのは難しい。SOT-23(SC-59)タイプなら、Nch の PMV30UN( max 5.7A) とか NTR4501N( max 3.2A) とか Pch の PMV65XP( max 3.9A) とか いろいろ選択枝がある。すなおに、2種類買ってストックした方が良いような気もしてきた。
そうそう、ミニッツレーサ?(ラジコン四駆?)の改造では、Pch+Nch の SP8M4がはやりらしい。これを2段にしたりもするらしい。確かにこのタイプで最も電流が流せるようだ。ただ、ゲート電圧が高そうで、昇圧型 DC-DC で使おうというのは無理かもしれない。