電池で動作するデータロガー等の電源を考えてみました。
4本のニッケル水素単三電池で24時間以上、連続動作させる為、小電流で高安定のものが要求されます。
又、アナログ回路の為に負電圧も用意しました。
使用電圧範囲
最低電圧はニッケル水素電池の放電終了電圧1V×4=4Vとします。
最高電圧は充電直後の1.4V×4=5.6Vとします。
定格負荷電流
+側の負荷電流を30mA、−側の負荷電流を10mAとします。
最近のICは低消費電流ですので、これくらいで足りる事が多いです。
あまり、電流を流すと24時間の連続動作が出来なくなります。
電圧変動
制御は+側の電圧を制御しますので、+5Vの変動を全使用範囲で50mV以内とします。
−側は特に規定しませんが、結果を見ての対処とします。
効率
定格負荷の全電圧範囲で70%以上とします。
リップルノイズ
特に規定しませんが結果を見ての判断とします。
入力電圧が出力電圧より高かったり、低かったりするので、昇降圧コンバータか二次巻線のあるフライバックコンバータということになります。
一般的な昇降圧コンバータであるMC34063に負電圧の為の電圧インバータを付加した場合、効率70%に達するのは困難であると判断しました。
結局フライバックコンバータを自作することにしました。
二次巻線を二組巻けば、一発で±5Vが取れると安易に考えた為です。
フライバックコンバータであるので、二次巻線のあるトランスを作らなければなりません。
私はスイッチング電源の専門家では無いので、トランスの設計製作は出来ません。
そこで、アマチュアでも簡単に手に入るトロイダルコアを使用しました。
使用したコアはアミドン社のカーボニル鉄#3材でサイズがT−68のものです。
このコアはマルツ電波等で容易に入手出来ます。
#3材のコアは表面、側面が灰色塗装で裏面のみ未塗装のものです。
電源の容量に比べ若干、寸法が大きいような気がしますが、トロイダルコアは磁束が漏れない反面、飽和しやすいので寸法に余裕を持ったというのが理由です。
ただし、本音を言えば、サイズが小さいと巻きにくいということがあります。
トロイダルコアに関する参考書としては、CQ出版社の「トロイダルコア活用百科」がお奨めです。
この書籍の中にT−68#3のデータが載っています。
例えば、何回巻けば、どのくらいのインダクタンスになるかは計算で求められます。
#3材は50KHz〜500KHzで使用可能との事ですので、最低の50KHzで使用することにしました。
マイコンのポートでスイッチ素子(MOSFET)のゲートを直接駆動するため、あまり高い周波数は無理と判断した
為です。
周波数が低い、小電流ということで、必然的にインダクタンスが多くなり、巻数は増えます。
二次巻線は100回×2、一次巻線は60回と感覚的に決めてしまいました。
最後まで、この定数でいけましたが、トランスを巻いた後、単体で50KHzの方形波を加え、負荷を取って、状態を確認してあります。
巻数が多いので作業は面倒です。
少しでも作業を楽にする為に、巻枠を作って、予め、これに必要な長さを巻いておきます。
この後、巻枠の巻線を解きながらトロイダルコアを通して巻いていきます。
こうすれば、長い巻き線を絡ませることがなくなります。
写真に使用したコアと巻枠を示します。
単三電池は寸法を示す為のスケールです。
巻枠は細くて硬い線を使用して、もっと綺麗に作れば、さらに小さいコアでも使えます。
今回、2本のスズメッキ線を半田付けして作った為、太く、柔らかく、出来の良い物ではありませんが、あると無いとでは大違いです。
まず、2本のホルマール線を束にして100回巻きます。
片方の巻き線の巻始めともう一方の巻線の巻終わりを半田付けしてセンタータップにします。
これが二次巻線となります。
この上から一次巻線を60回巻きます。
線の太さは一次、二次とも0.26mmのものを使いました。
この太さのホルマール線が大量に家にあったからです。
注意点として、一次巻線と二次巻線の極性(巻き始め、巻き終わりの関係)を注意する必要があります。
巻き始めとは一次側と二次側の巻き方を合わせる為の相対的な基準です。
回路図は巻線の巻始めに黒点が入っています。
一次と二次の極性が逆であると、まともな動作をしません。
もし、動作がおかしいときは、一次巻線の接続を逆にしてみます。
回路図をクリックすると拡大表示されます。
拡大図から本文に戻るにはブラウザの←戻る釦を使用してください。
トランスさえ出来れば、後は簡単です。
制御はPIC12F683で行います。
8ビットモードのPWMで一次巻線をオンオフします。
基準電圧と出力電圧をコンパレータで比較し、出力が高ければデューティーを下げ、逆であればデューティーを上げます。
ポートで直接MOSFETのゲートを駆動しているので、ゲート静電容量の大きなFETを高速でオンオフするのは辛くなりますが、今回の素子、周波数では問題ありませんでした。
2SJ377は電池を逆に接続した時の保護用です。
電池の保護(ショート等の発火事故を防ぐ)の為に0.4Aのポリスイッチを入れてあります。
素子の保護は特に考えていませんが、必要であれば、遮断端子を活用してください。
GP3をLに落とせば、12F683はスリープし、電源を入れ直さないと再起動しません。
コンパイラはMikroCを使用しました。
コードサイズ2Kまでの無料版です。
MikroCの場合、コンフィギュレーションをソースファイルに書けません。
プロジェクト自体に設定が記録されるのですが、設定変更等で消してしまう可能性があります。
そこで、設定内容をコメントにしてソースファイルに残しておきます。
ソースファイルは短く、簡単ですので、以下に表示します。
1 ////////////////////////////////// 2 // SWREG+-5V PIC12F683 8MHz // 3 // 8BIT PWM // 4 // 2009/08/17 MikroC // 5 ////////////////////////////////// 6 7 // _FCMEM_OFF, _IESO_OFF, _BOD_ON, _CPD_OFF, _CP_OFF, 8 // _MCLEAR_OFF, _WDT_OFF, _INTRC_OSC_NOCLOCKOUT 9 10 unsigned char duty; //デューティー格納用(8ビット) 11 12 void main(void){ 13 T2CON = 0; //WDT確認用 14 OSCCON = 0x71; //8MHz 15 OPTION_REG = 0xcf; //WDT 1/128 16 ANSEL = 0x3; //アナログピンの設定 17 CMCON0 = 0x2; //コンパレータ設定 18 GPIO = 0; //出力を0に 19 TRISIO = 0xb; //GP2,4,5 を出力に 20 WDTCON = 0x3; //WDT ON 1/64 x (1/128) 21 asm CLRWDT; //WDT CLR 22 CCP1CON = 0xc; //PWM ACTIVE H 23 PR2 = 39; //周期(39+1) x 0.5u = 20uS 24 duty = 0; //デューティー0からスタート 25 CCPR1L = duty; //デューティーをセット 26 T2CON = 0x4; //T2 ON プリスケーラー無し 27 while(1){ 28 asm CLRWDT; //WDT CLR 29 if(CMCON0.COUT){ //出力電圧が高い時 30 if(duty > 0) duty--; //デューティーを下げる 31 } 32 else { //出力電圧が低い時 33 if(duty < 20) duty++; //デューティーを上げる 34 } 35 CCPR1L = duty; //デューティーをセット 36 Delay_us(40); //40uS待つ 37 if(!GPIO.F3)break; //遮断信号で終了 38 } 39 GPIO = 0; //一応出力を全部落として 40 T2CON = 0; 41 WDTCON = 0; 42 asm SLEEP; //スリープ 43 } 44
私はMikroCのソースを実機でデバッグ出来るデバッガを持っていませんが、この程度のソフトでは必要無いと思い
ます。
例えばwhile(1)ループの中で、空きピンにGPIO.F4 = ~GPIO.F4 を追加すれば、動作時間が出力L又はHの時間(1周期では無い)となり、オシロで観測出来ます。
この時間が、タイマー2の周期より短かったので、40uSのディレーを入れてあります。
デバッグの電源として、いきなり電池を使用してはいけません。
必ず、電圧と電流を設定出来る親電源を用意します。
この時使用した負荷抵抗は+側146Ω、−側458Ωです。(抵抗値は実測値)
PICの最大定格に近い7.2Vまで電圧を掛けましたが動作しています。
間違って、マンガン電池を入れた時のことを想定しました。
上の表のうち、入力電流をグラフにしたものです。
表にはありませんが、入力電圧3.02Vの時、入力電流は最大の98mAになります。
入力電圧4.8Vの時の入力電流が61mAですので、フル充電されたニッケル水素電池であれば、丸1日、連続動作できると思います。
グラフのように素晴らしい特性です。
電圧は+5Vを基準に制御しているので、負荷の軽い−5Vは若干、電圧が高く(−側に)なります。
電圧は安定していて、この程度なら問題ないと思います。
仕様で定めた入力範囲4V〜5.6Vでは77%以上になっています。
定格負荷より少し重い負荷を接続してみます。
+側電流を50mA、−側電流を20mAに想定してみます。
+側に97.6Ω、−側に248Ωの抵抗を付けてみました。
負荷が重い分、立ち上がりが悪くなっていますが、最初に決めた仕様は満たしています。
当然ながら入力電流は増えます。
負荷が重くなった分、立ち上がりは悪くなっています。
入力電圧4Vで出力電圧5V出ていますので、仕様は満たしています。
仕様電圧範囲では特に問題無いと思います。
定格負荷の時より若干、悪くなっています。
仕様で定めた入力範囲4V〜5.6Vでは75%以上になっています。
無負荷で電圧が上がってしまっては困るのでデータを取ってみました。
無負荷といっても回路内に負荷となる抵抗が存在します。
全く負荷が無ければ、発生電力を消費出来ないので、電圧の制御が出来ません。
+側の負荷は電圧フィードバック抵抗で、ボリュームの位置で値が変わりますが、20KΩとしました。
−側の負荷は47KΩの抵抗です。
無負荷時の入力電流は回路自体の電流となります。
電流値は親電源の電流計の表示で分解能1mAですので、小電流では精度が悪いです。
無負荷時の効率は意味がありませんが、定格負荷の入力フォームをコピーした為、数値として出ています。
本来なら、負荷が無いので効率は0になるはずです。
フィードバック抵抗等を負荷とみなした数値が出ています。
回路の使用電流で、電圧が高くなるほど増えます。
精度が悪いので参考程度。
約2Vで回路は動作を停止し、入力電流は60uA程度になります。
無負荷でも5Vに制御されていて問題ありません。
負荷が軽い為、立ち上がると同時に出力5Vとなります。
こちらも制御されていて問題ありません。
波形は定格負荷、入力電圧4.8Vのときの2SK2231のドレイン電圧です。
結構、高い電圧が掛かっていますが、FETにダメージを与えるほどではありません。
デューティーを固定すればハッキリした方形波になりますが、デューティーを制御すると、結構、乱れた波形になります。
無負荷では、デューティーの小さな波形になるはずですが、波形を撮り忘れました。
波形は定格負荷、入力電圧4.8Vのときの+5V電圧を拡大したものです。
この値を、もっと小さくするには、平滑容量の値を増やすか、LCフィルタを追加します。
最初、決めた仕様を満足する電源が出来ました。
+側だけを使っても問題ありません。
+と−の電流の合計が60mA以内であれば、余裕で使えると思います。
ただし、+側で制御しているので、−側の負荷が+側の負荷より重くならないようにしてください。
(通常の使用では問題無いはず。)