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
この記事へのコメント
ATtiny45VのVPOTは0.7V〜1.4V(TYP 1.0V)なので
VCCが1V以下では使えないと考えた方がいいと思います。
Posted by ぱど at 2007年07月03日 00:26
なるほど、1.1V からしか動かないのは、VPOT(ONリセット閾値電圧) が関係していそうですね。そもそもこの記事は無理なのを承知でやるとどうなるか...というつもりで書いたのですが、誤解されるかも知れないですね。冒頭に説明を載せることにします。
Posted by すz at 2007年07月03日 18:51
回答ありがとうございます。
>無理なのを承知でやるとどうなるか...
もちろん理解しておりますが
VPOTについては言及されていなかったので余計とは思いながら差出口を挟ませて頂きました。

これからも更新楽しみにしております。
Posted by ぱど at 2007年07月05日 00:15
スイッチングTrにタクトスイッチをパラで付けて、手動クランキング(?)スタート、という話をhackadayかなんかで見たことがあるような。
Posted by at 2007年11月16日 00:12
ショートさせても大丈夫なように大きな内部抵抗で、mHクラスのコイルを使うならいけるかも。

たとえば LHLC10NB 1mHだと、1.8Ω/480mA なので、1.2V - 0.2V(Tr分) でショートさせても 最大 550mA で、たぶん大丈夫。
Posted by すz at 2007年11月20日 17:17
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/30760407
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック