製作目的

今まで電源回路の実験には、抵抗による負荷を利用してきました。
まあ、5V~12V程度で数百mAが殆どでしたし、
780X等のシリーズレギュレータ専用ICばかりだったので、
その都度目的に合わせて基板上に並列に抵抗で製作していました。
それでも今までそれほど不便では無かったです。
しかし、いろいろ電源回路を実験しようと思ったら、
あると便利、と言うか無いと不便な事に、今頃気が付きました。
と言う訳で、1A位を目標に電子負荷装置を作ってみる事にしました

参考文献
marutsuオンライン 「電子負荷装置の製作」
PowerMosFET EKI04047 データシート Sanken社


目標

①1.5V~18Vの電源の負荷で、1A位まで吸い込み可能
  負荷デバイスはパワーMOSFETを使用
②デジタル電流計を付ける
  20ピンのPIC16F1709+7セグLED3個位で製作
  0~999mA表示で1mAの解像度とする
  極力部品点数が少なくなる様に工夫する。
③ポータブル性を考慮して、ACアダプタと電池で駆動可能
  単3電池あるいは充電電池6本位?・・・ (^_^;)
④安価に製作できること
  7セグLEDは高価なモジュール類は使用しないで作る事に・・・
  久々にダイナミック駆動で構成する
  放熱必須のため金属ケースや放熱器が必要なのがネック・・・
  今回はジャンク箱に転がっていた小ケースに収納しました。

↑ 本機回路図
メイン基板とサブ基板に部品配置
7セグと2SA1015はサブ基板へ



↑ 使用したアルミケース
長らくジャンク箱に転がっていた物
例によってケース加工は苦手・・・



↑ 秋月C基板をサブ基板に
ランド面に7セグLEDを配置
LED底部に取り付け前の事前配線有



↑ サブ基板の部品面
2SA1015をも配線しています



↑ 秋月B基板のメイン基板



↑ 使用した放熱器
これもジャンク箱に転がっていた物
ドリルで穴開け、EKI04047を取付
これをケース背面に固定


↑ ケースに部品取付と配線
7セグLEDを扱うと配線が多くなる
ハードウエア概要

 前記の目標を元に数日漠然とハードウエアをイメージしてみました・・・
電源トランスの無い、電流出力がショートされた電源装置みたいなもん?
ならばTRかFETで電流制御すれば良さげな感じ・・・
そんな中、「電子負荷」を検索すると、「marutsu」と言う部品屋さんを発見
そのサイト内にFETを使用した電子負荷装置の製作が公開されていました。
お~、これなら当局でも理解できそうだ (^^♪
と言う訳で、当局らしくPICマイコン+パワーFETと言う路線に決定!
扱った事の無いアナログ回路があるので、イメージだけでは設計できず、
今回主役のパワーFETの素朴な実験を行いました。
実験結果より、PICでそこそこ制御可能な事を確信
プログラムをイメージしながら、極力簡単な回路もイメージしたら・・・
左記の回路図で20ピンのPIC16F1709で制御します。
4連の7セグLEDは74HC138の下位2bitで桁4つを選択
7セグLEDは別の小基板に取り付け、主基板と接続します。
パワーFETと各種ボリウムは放熱器やケースに直付です。
当初は28ピンPICだけですべてを行う事を考えましたが、
20ピンPIC+16ピンデジタルIC(3to8デコーダ)の構成としました。

メイン基板
秋月のB基板を使用する事に、C基板ではちょっと苦しいと思われた。
さらに7セグLEDは別基板ですし、余裕で部品配置できました。

4連7セグLED
秋月で購入した、OSL40562-IRと言うアノードコモンのLEDです。
4連のダイナミック用なので、これをPICで制御します。
これのみ秋月のC基板に乗っける事にしました。
桁セレクトはデコーダIC、74HC138でPICの必要ピン数を減らしています。
今回、小数点は不要なので、DPへの配線はしていません。
さらにPIC内臓オペアンプを使用する関係上、
セグメント制御ポートはRCポートとRBポートに分散してしましました。
後程、これが原因で少々ハマりました・・・

電流センサ
と言うと大袈裟ですが、1Ω10Wのセメント抵抗を使用しています。
これは主基板に直付しています。
定格上、3Aまで流せる事になります。
抵抗値はさほど正確では無く、自身の発熱で抵抗値も変化する強者です・・・
まあ、それ程正確な電流値を求めて無いし、安価なので良しとしました。
これはFETのソース-GND間に挿入しています。
発生電圧はPIC内臓OPA1で2倍に増幅してから、ADCに入力します。
半固定抵抗でOPA1の増幅度を少し可変できます。
これで1Ω抵抗値の誤差を調整しますが、無いよりはマシ程度です・・・
発生電圧を2倍する理由ですが、
PIC内臓ADCはFVRの1V出力を使用できません
FVRを2Vにすると、ADC分解能は2mVとなります。
そのため、セメント抵抗の発生電圧を2倍にする事で分解能を1mVとします
これで入力電流0-1Aがセンサ出力0-2Vとなります。
面倒では無いので、ついでに入力電圧も測ろうかと思ったのですが、
ケース上の表示場所も無いし、PICのピン数も足らずに断念
まあ、無くともそんなに不便ではないし・・・

パワーFETバイアス回路
ただのボリウム2個で調整します。
メイン調整ボリウムとファイン調整ボリウムとなります。
このバイアス電源は5VでPICアナログ出力から供給します。
これでPICによるドレイン電流制御を掛けます。
FETチェッカーの時の様な3ボリウム構成にしようかと思ったのですが、
操作性は良くなりますが、2連ボリウムが必要となるので没。
当局としては気に入った方法なのですが・・・
これは電流制限設定ボリウムでも言える事です。

定電流(ドレイン電流制限)回路
ただのボリウムをPICのアナログ(ADC)入力しただけの超シンプル回路
このボリウムで制限電流(定電流)を設定します。
PIC内部では電圧計データから8bitDAC+OPアンプを介して、
設定された電流値となる様にFETバイアス回路へフィードバックします。

電圧計回路
電流センサの発生電圧をPICのアナログ入力に接続しただけです。
PIC内部でもFVRの電圧を基準としてAD変換する超シンプル構成です。
このADC入力は、本機入力電圧計として使おうかと思ったのですが、
PICピン数が足りないので、電流センサに直付になりました。
7セグのドットを光らせても良かったのですが、
どの道、結果的に大して役には立たない部分となりました。
PIC16F1709プログラム

アッセンブラ ソースファイル

 PIC16F1709_POWER_MOSFET02.asm

HEXファイル

 PIC16F1709_POWER_MOSFET02.hex

使用ツール

 MPLAB X IDE Ver4.01
ソフトウエア概要

7セグLED駆動ルーチン
 各セグメントはRC0-1、RB6-7、RC4-6の7ポートを割り当て。
 桁(LED)選択はRA0-1の2ポートを割り当て。
 ダイナミック制御はTIMER0のインタバル割り込みを使用しました。
 割込み間隔、すなわち各桁LEDおよび無表示時間は1msとしています。
 セグメントデータ生成ルーチンでセグメントデータを生成、
 そのセグメントデータを割り込みルーチン内でLED制御しています。
 つまり、ISRに来る度に下記の動作を繰り返します。
 LED4発光→LED3発光→LED2発光→LED1発光→LED無発光

A/Dコンバータ制御ルーチン
 入力チャンネルを3つ使用、それぞれADC1、ADC2、ADC3とします。
 ADC1ではOPA1出力電圧を取り込みます。
 ここで生成した測定データを電流計としてLEDに表示します
 FVR出力を基準電圧として、10bit分解能で電圧測定します。
 FVR=2Vで2mV/digit、FVR=4Vで4mV/digitとなります。
 OPA1出力が接続されている事を前提として、数値補正します。
 それを電流値変数「FDA(0-1)」の16bitに収納
 結果、0~1Aは1mA/digit、1~2Aは2mV/digitで表示します
 ADC2では電流センサの生データ電圧を取り込みますが、不要かも
 実際、使用しません・・・
 これもADC1同様にFVR出力を基準電圧として動作します。
 直接電流センサに接続されている事を前提として数値補正します。
 0~2Aは2mA/digit、2~4Aは4mA/digitで表示します。
 それを電流値変数「FDA(0-1)」の16bitに収納
 ADC3ではボリウムによる可変数値を得るのみです。
 基準電圧はVDDを使用、電流制限値を決めます。
 それを制限電流値変数「FDB(0-1)」の16bitに収納

定電流制御ルーチン
 電流値変数「FDA(0-1)」と「FDB(0-1)」を比較し、
 両者ほぼ同値となる様にDAC1値を上下させます。
 FDA(0-1) < FDB(0-1)の場合DAC1値はFFHのままです。(初期値)
 FDA(0-1) > FDB(0-1)になった場合DAC1値は現在値より1つ下げます
 FDA(0-1) < FDB(0-1)になった場合DAC1値を現在値より1つ上げます

セグメントデータ生成ルーチン
 電流値変数「FDA(0-1)」の16bitから各桁セグメントデータを生成
 まず、FDA(0-1)をBCD変換
 BCD変換された各桁十進数値を各桁のセグメントデータに変換


オペアンプ1(OPA1)
 入力+ピン(RB5)、入力-ピン(RB4)、出力ピン(RC2)となっています。
 増幅度は2倍で、1Ωのセメント抵抗を電流センサとしています。
 電流センサの発生電圧を2倍してADC1に送ります。
 DMM測定値と同じになる様にVR1で微調整します。(注2)
 実はデバッグ時に問題が発生しています。(注3)

オペアンプ2(OPA2)
 DAC1出力の電圧バッファとして使用します。
 出力ピンは(RC3)となっています。
 よって、OPA2入力はDAC1出力と設定します。
 ここは電流制限ルーチンから制御されます。

注1)
ADC入力0Vでも出力が0Hにならず、LED表示も0mVでは無く2~3mVを表示
オペアンプ出力の雑音電圧かなと思いましたが、
これはADC1でもADC2でも変わらず

注3)
症状1
 OPA1入出力ピンにパルスが発生し、測定入力が0Vにも関わらず、
 ADC1出力は数mVあるいは30mV付近表示をチラチラ動く
症状2
 測定入力電圧が0V~25mVまでは出力は0V、
 測定入力電圧が26mV越えで、いきなり出力が26mVとなるジャンプ現象
 一旦30mV以上から電圧を下げて来る分には、
 ちゃんと0mV~25mV以下も出力されます。
 電流センサの発生電圧には問題無く、OPA1の動作の問題の様です。

症状1の対策
 ADC1ルーチンに問題は無しで、OPA1出力を漠然とオシロで観察
 すると、OPA1出力30mV以上では、被さって見えなくなるが、
 出力0mVとすると、きれいなパルス2つが、1msごとに発生している
 このパルスが表示に影響していると思われました。
 因みに、電圧測定をADC2に切り替えると、症状は発現しません。
 この「きれいなパルス」でピンときました・・・ (^_^;)
 原因は割込みルーチンのI/Oポート処理にありました。
 7セグLEDのセグメント処理はRCポートとRBポートに跨っていました。
 それをLATレジスタにバイト単位で処理していました。
 OPA1入出力ポートのLATレジスタにも、書き込みする事となります。
 LATレジスタはポートから切り離されているはずです
 しかしPIC内部でわずかに電圧が漏れるようです。
   MOVWF LATB
 とバイト単位でやっていた所を
   BSF LATB,6
 と、LEDセグメント接続のすべてのポートをビット単位処理に書き直し
 これで無事解決しました・・・
 28ピンPIC等の多ピンを使用して、バイト単位で処理していたら
 症状も発現せず、この事項にも気付かないままでした。
 (実は当初、28ピンPICを使用する事を考えていた・・・)

症状2については思案中

↑ 試運転その1
まずは電源をONします
7セグSWをLIMIT電流表示側に、
黄色のLIMIT_LEDは点灯
LIMITボリウムで1500mAに設定



↑ 試運転その2
LOADターミナルに実験用AVRを接続
7セグSWをLOAD電流表示側に
LOADボリウムで1248mAを吸い込み
電源出力は12Vです。



↑ 試運転その3
LOAD、FINEボリウムを目一杯回す
白色のCC_LEDが点灯
吸い込み電流は約1500mAで推移
(画像が数値変動で分かりずらい)
電源の出力電圧は12Vです。

さらにLIMITボリウムを最大値に、
すなわち、2046mAに再設定
すると、吸込電流は1800mA超に、
その後じわじわと吸込電流が増え、
数分後に白色のCC_LEDが点灯し、
電流制限が掛ります。
FETは急速に触れない程熱くなり、
放熱器も徐々に熱くなります。
この時間差が恐ろしいです。
これより、電流制限回路が無いと、
目を離した隙にFETの熱暴走の
可能性がいつでもあると思われます。



↑ 18V入力 2500mA吸い込んでます
FETおよび抵抗が、かなり発熱します
これはプログラム実験段階です。
現在は2046mAまでの吸込みです。



↑ 側面 標準DCジャック入力



↑ 背面 放熱器
FETは放熱器に取り付け
直流的には浮いています。
中央ネジはかなり熱くなります。
組立

当初はバラック状態で動作試験を行い、デバッグを行いました。
概ね動作する事を確認してから、ケース加工を行いました。
最後まで悩んだのは、電流制限(定電流)用のボリウムでした。
これをファイン付の2つにするか1つで我慢するかどうかです。
結局、定電流を主操作にする訳でも無いし、ケースも小さいので1つに・・・
さらに、ヒューズも省略・・・ (^_^;) オイオイ
結構手抜きとなりましたとさ
実験より当該FETは、この回路で最大電流が2A~3A(18Vmax)程度
PICと電源IC、あるいはセメント抵抗が破壊されない限り、
FETに4A超のドレイン電流は流れないと思います。
標準モードでは、最大でも2Aで電流制限が掛ります。
電圧18Vで2A流すと、FETは32W、セメント抵抗が4Wの電力消費となります
共に定格内ですので大丈夫だとは思いますが・・・
ただ、FETはかなり発熱します。
基本仕様

(1)入力電圧
   0~18V(これ以上も可能だと思うが実験していない)
(2)入力電流
   最大2A(これ以上は定電流動作になります))
(3)電流制限設定
   10mA~2046mA 2mA/digit
   設定値を中心に約10%位変動します
   サンプリングおよび比較演算は約5ms間隔
   電流制限値設定はLIMITボリウムで設定
   設定値を表示するにはスイッチで切り替え(黄色LED点灯)
   定電流動作時は白色LED点灯
(4)入力電流計
   0mA~1000mA 1mA/digit
   1000mA~2000mA 2mA/digit
   サンプリングは約5ms間隔
   表示反映は約100ms間隔
(5)電源
   ACアダプタ 9V~12V
   標準DCプラグ CENTER+
(6)注意事項
   ①電源スイッチは、下記の条件でONにして下さい。
    7セグスイッチをLOAD側(OFF側)にしてある事
    LOAD、FINEボリウムは最少にしてある事
   ②電源投入後、7セグスイッチをLIMIT側にして、
    LIMITボリウムを最大にしても2046mAである事を確認
    それ以上に設定できる場合は電源を切り、①をやり直してください。
   ③表示されるLOAD電流値は0mAになりません。
感想・考察

目標③の電池駆動は早々に諦めました・・・
使用したケースに基板と電池ケースが共存しない事が判明

MOS FETによる電子負荷装置は簡単な回路で構成できます。
しかし、素のFETの電流立ち上がりは、急峻でちょっと恐怖感があります。
まさにスイッチング・デバイスと言った感じです。
その、わずかな可変抵抗領域を使うので、微妙な制御が求められます。
バイアス抵抗(ボリウム)とFETだけでは、ちょっとのミスで・・・
しかし、ソース抵抗で電圧帰還を掛けると可変抵抗領域が広くなります。
たったこれだけですが、これはかなり有用な方法でした。
さらに電流センサにもなるし、一石二鳥です。

定電流(電流制限)動作はウエイトを入れており反応がゆっくりです。
実験中は500msの大ウエイト挿入し、その挙動を楽しんでいました
電圧を無視して設定値に、のそのそと電流が動く様は面白かった
これって、PICいじめ?
しかし、このルーチンは簡単な割に非常に有用で安心感があります。
当局にとって、今回の影の主役的存在です。

2Aの電流は少ない様に見えて、結構多いです。
当局レベルではそんなに使用用途が無かった気がします。
500~600mA程度でも十分だったかな・・・

とりあえず(無理やり?)完成したので良かったです。
特に電流制限機能は、DAC制御ではだめかと思っていたが、
簡単な割には意外と機能してくれているので、一番喜んでいます。
プログラムによる擬似電圧帰還なので制限値も簡単に可変でき、
その値もデジタル表示出来るので、扱い易いです。
今の所プログラムが単純なので、まあまあの動作です。
しかし、改良するともっと良くなると期待できます。
まずは今後の実験に使用して遊んでみる事が楽しみです。


さて、今後の改良点も浮かび上がってきます。
入力電圧計の設置
定電流機能の改良
FET本体も含めた放熱の改良
各ボリウムの操作性の改良
低電流域の改良
電池駆動
等々・・・

最後に・・・
ソースファイルを見てくれた方は、おやっ?と気付いたと思います。
実は本機には拡張モードがあります・・・ (^_^;)
当初のPICプログラミング時は4Aまでの処理が可能となりました。
基本は1Aモードまでで、1Aを超えると2Aモードに自動移行し、
2Aを超えると4Aモードに自動移行する感じでした・・・
測定レンジが4Aまでの広範囲となりますが、色々問題もあります。
3Aを超えるとセメント抵抗の消費電力が定格(10W)越えします
さらにFETの発熱が大きくなり、急速な放熱が間に合うか不明です。
そもそもFET本来の用途であるスイッチング動作はしていないですし。
つまり、本機の破壊の可能性があります。
そのため、4Aモードへの自動移行は、あえて設定しませんでした。
しかしプログラムは残っており、拡張モードとして動作はします・・・
ただ、実験段階では4Aモードで、3Aでの動作は行っています。
その実験中、セメント抵抗もFETもかなり発熱しました。
FETはシリコンラバーを介して放熱器に絶縁・密着しています。
FET本体は10V以上1~2Aでは急速な発熱が伴います。
それが放熱器に伝わるのに時間が掛るのが気になります。
触りながら実験してみて思ったのが、本機の使用限界は3A程度までで、
実用性は2A程度までかなと思っています。
そもそも使用FETのEKI04047の放熱面積が小さい気がしますが・・・
戻る  実験・製作の記録TOPへ戻る