2007年07月02日

AVRで1セル昇圧は可能か?

前の記事 I2CPWR:はじめにで、1 セルは無理そうと書いた。本当に無理なのか検討してみることにする。

NiMH 1セルからの昇圧の場合、普通の ショットキーバリアダイオード(SBD)を使うと Vf が 0.3V ぐらいなので、0.9V で AVR が動く必要がある。あと重要なのがスイッチングに使うデバイス。低いゲート電圧(VGS)でスイッチングできる必要がある。電圧が上がるにつれ、VGS も上がるので、最初は電圧を上げていく分だけしか電流を流せなくても良い。ターゲットとした パワー MOS FET のデータシートを見てみると ... HAT3006R は、全然無理そうだ。2セルからの昇圧ですら厳しいかもしれない。FDS8958A の方が、低いゲート電圧で電流を流せるのだが、さすがに 0.9V は無理そうなかんじ。低ゲート電圧のものがないかというと、そうでもない。(どうやって入手できるかわからないが)、ON セミの NTMD2C02R2は、 1.5V でも 3A 近い電流を流せるので、0.9V でもかなり電流を流せそうだ。あと、IRF7338PbF も良さそう(こちらも入手方法不明)。

0.9VでAVRは起動するか?

もともと、ATtiny45V とか V の付いたシリーズでも、スペックは、1.8V 〜になっている。だから 0.9V で起動するかというのは、そもそも無理な話だ。でも、AVR のマージンはかなり広い。個体によっては、それより(ずっと)低電圧で動くかも知れない。

これを調べるために、まず 0.9V前後を出力できる電源が必要だ。それは、LM358Nを使って、(データシートにも書いてある)ボルテージフォロワで作った。最大で 20mA だが、AVR を動かすだけなので十分。AVR は、ATtiny45V を選択した。AVR の動作確認は、PORT に LED を (ドライバを通して)接続し、プログラムで 1Hz で 点滅 させることで行った。ドライバにはトランジスタを使ったが、LM358N のあまった 1つを使って作ることもできる。

内蔵RC発振器 8MHz の場合

1.45V までしか無理だった。1.40V だと起動する場合があるが LED の On/Off が途中で止まってしまったりした。-- 暴走しているということだ。

内蔵RC発振器 2MHz の場合

1.10V ぐらいまでしか無理だった。しかも LED の点滅の周期がやたら(10 倍ぐらい?)長くなる。内蔵RC発振器は電圧が下がれば周波数が落ちていくが、1.2〜1.1V ぐらいまで下がると急激に周波数が落ちるようだ。1.1V までなのは、VPOT(ONリセット閾値電圧)に引っかかったためのようだ。

結論は、0.9Vでは起動しない。しかし、NiMH1セル昇圧は絶対無理なのだろうか?

どうすればNiMH1セル昇圧が可能になるか?

まず、極低 Vf の SBD を使うのが重要。普通の半分だとすれば 0.15V も稼げることになり、ずいぶん楽になる。RB051L(max 3A)とかMBR120VLS(max 1A)とか良さそうだ。ちなみに普通といっているのは 11EQS04とか。
あと(海外では)一般的に 1A の SBD は、どうも 1N5819が定番らしい。いくつものメーカが出しているが、中には性能が良いものもある。ただし、MBR120VLS の方が Vf が低い。

次に、出力側のコンデンサの電荷だけで起動してしまうことを考える。出力側のコンデンサがフル充電されれば電流はほとんど流れない。そういう状態では Vf もかなり低くなっているので、0.9V よりは高い電圧のはずだ。

あと、電圧が上がりきるまで余計な負荷をかけないように出力スイッチが必要だ。

出力側のコンデンサの電荷だけで起動してしまうことを考えるなら、スイッチングには、高hFEのトランジスタが良さそうだ。たとえば、白色LED用昇圧回路によく使われる 2SC2500Cとか (hFE 300〜450) 。(2SC2500D の方が hFE が高く (420〜600) 入手できるならそちらの方が良い。)。Nch パワーMOS FET なら 低ゲート電圧のもの PMV30UN(SOT-23/SC-59, max 5.7A) とか良さそう。

あと、プログラムにも相当の工夫が必要そうだ。

まず、安全な電圧に達したかどうか判断する手段が必要だ。ADC は無理。試したところ、アナログコンパレータは OK そうだ。VCC 測定用の 1/2 VCC と 1.1V 基準電圧を比べてみると、2.2V を超えたときはじめて 1.1V 基準電圧の方が低くなるようだ。
安全な電圧に達すれば、ADC も使えるし、PLL発振器も使えるので普通に処理すればよい。そして、安全な電圧に達するまでは、特別な処理にして、電圧を上げることだけに専念する。

電圧を上げる処理では、CLKPR を設定して、1MHz か 2MHz で動かす。もちろん スタート時に 1/8 にする ヒューズビットの設定をはずしてはいけない。そして、クロックが1/10 に落ちているかも知れないことを考慮する必要がある。ひょっとしたらウォッチドックタイマは、内蔵RC発信器と特性が違うかも知れない。その特性の差を利用すれば、クロック周波数が (精度が悪くとも)わかるかも知れない。その上で、On 時間が長くなりすぎないようPWM の設定を変える。

あと、暴走対策も必要だし、電圧を上げるのに失敗したときのリトライ処理も工夫が必要そうだ。暴走対策について書いておくと、いついかなるときも暴走しても大丈夫なようにすることは、無理なはずだ。でも、暴走が想定されるパターンでほとんど安全に電源を切る(= スイッチングデバイスをOff にする)ぐらいのことはできるかも知れない。よくよく考えないとそれすら難しく、プログラムを考えるのは難易度が高い。

おわりに

実は、ちょっと実験していて、11EQS04と 2SC2500C を使って試したところ、充電直後の電池で無負荷なら昇圧できた。極低 Vf のSBDを使えばもっと安定しそうだし、上で書いたことを考慮すれば、もっと安定するだろう。NiMH1セルから昇圧できる可能性はあるのだ。まだ全然だめなので詳しくは載せないが進展があったら載せたいと思う。ちなみに、LMC555を補助的に使えば、スタートアップ時の問題はクリアできそうだ。しかし、部品点数が増えてしまうので AVR だけでやりたい。
もうすこしコメント。最も簡単な構成の専用ICの例として 共立が扱っている HT77XX シリーズがある。これと比べて極端に部品点数を増やしたくない。スイッチングデバイスと、電圧測定のための 抵抗2つはやむを得ない。出力スイッチは設計の都合でつけるが、HT77XX にない機能を付けるのでまぁ良いだろう。それ以外には(機能を付けるのは別として)部品を付けたくないのだ。使える ピン数を減らしたくないのが最も大きな理由。あまり基板の面積を使いたくないというのが次の理由。そうでなければライブラリとして意味がなくなってしまう。

それとは別に、乾電池をダイレクトにつなげば、1セルで AVR は動かせそうだ。その電圧でもアナログコンパレータぐらいは使えそうだ。NiMH 1セルだと、内蔵RC発振器の周波数が問題になる。セラミック発振子を使えば周波数が安定するが、1Mhz だと動かないかも知れない。いっそのこと ウォッチドックタイマ用の 128KHz 発振器で動かすことを考えた方が良いかもしれない。ATtiny2313V あたりを使って、1セルで長時間動かすような、なにか面白いものが作れるかも知れない。

あと、1.2V 〜 1.4V ぐらいで RC発振器の周波数がかなり変動する。この特性を利用して、AVR の CPU の機能を使わず CLK出力の機能だけ使って 8MHz までの VCO になるかも知れない。それがどういう場面で役に立つかわからないが ...
VCO .. といえば、PLL IC の 4046。SN74LV4046A なら 3.3V で 38Mhz まで 使えるらしい。↑の使い方を勧めるわけではないので誤解なきよう。
posted by すz at 16:58| Comment(5) | TrackBack(0) | I2CPWR

2007年06月27日

I2CPWR:はじめに

作ってみようと思っている装置の記事で

(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を使っても良い。間違って On しないように使わないほうはパターンカットできると良いかも知れない。 ただし、使わないほうの Source をチップ側でカットする必要がある。(ダイオードがあるのを忘れていた)
小電流しか流さず、効率が落ちて良い場合は、パワー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 で使おうというのは無理かもしれない。
posted by すz at 20:23| Comment(0) | TrackBack(0) | I2CPWR