最終更新時間:2007年12月09日 18時24分34秒
[公開:any]
[電子工作/一般]
[電子工作/PIC]
[電子負荷,電流計,MOS FET,PIC,PIC12F683,PWM,LM35DZ,TND012NM,2SK2233,SUP85N15-21,ICL7137]
最近になって復活した電子工作の実験用電源として、15年以上前にトランスと3端子レギュレータで作った電源を使っています。
トランスの最大出力は3A、3端子レギュレータも当時、秋月電子で取り扱いを始めたばかりのナショナルセミコンダクター社のLM350Tをつかって作りました。
電圧の可変抵抗を半固定としたので電圧調整がチョット面倒です。最近になって、5Vの固定電圧も必要となったので固定電圧の3端子レギュレータ7805を追加していますが、やっぱり実験用電源は、電圧可変が簡単で・・電圧計がついてて・・ついでに電流計もあって・・2系統ぐらい出力できるような・・・・・・といろいろと考えてしまいます。
ということで、電源を作り直すことにしたのですが、電圧計や電流計を内蔵するには、負荷装置があったほうがよいだろうと・・・・
これは、巻き線型抵抗で20Wの容量?があります。これで負荷装置つくればいいや。・・なんて簡単に考えましたが、インターネットで負荷装置を検索してみると、ちゃんとした電子負荷装置を作っている方が多いようで。
どうするかな?。ちゃんとつくろかな。
まず、電子負荷装置には、負荷電流が読めないと意味が無いと思うので電流計を用意することにします。PICを使った電流計の製作でも簡単に実現できますが、もチョット手抜きバージョンを考えます。
・・ということで、倉庫を1時間近く探して取り出したのはコレ。
そう。秋月電子の温度計キットです。今も秋月電子で電圧計や温度計のキットとして販売されているハリス社のICL7137を使ったものです。・・と秋月電子のホームページ見てみると現在は、LCD専用のICL7136を使ったものしかないようです。
写真じゃわかりにくいかもしれませんが、同じキットが2段に連結されていてセンサーも2個あります。
これは、10年近く前のPCのCPUクロックアップにはまっていた頃に温度をリアルタイムで監視するためにPCケース内に内蔵していたものです。当時、teckram(スペル自信なし。テクラム社ね)のSMPマザーにセレロンの300MHzを2個搭載して、ベースクロックをあげて450MHz駆動していたCPU温度を監視するために使ったものです。
このPCにLinux入れて(当時は、Kondara/GNUをつかってたな)カーネル(当然SMP対応カーネルね)のコンパイル速度を友人と競ってました。
で、同時にこんなもんも見つけました。同じキットで手付かずの新品ですね。^^;
そのほか、単品のICL7137も出てきました。なんに使うつもりだったんだろう。→自分。
とりあえず電源つないで動作させて見ます。
それらしい温度を表示します。・・・・・イヤ、温度じゃなくて電流を測りたいんだけどね。
出てきた新品のキットに付属のマニュアル(ペラ紙マニュアル)は、電圧計と温度計の共通マニュアルになっているので、参照しながら、とりあえず1台を電圧計に回路修正します。
最大200mV、最小分解能0.1mVの電圧計が出来ました。なんか、表示が安定しないけど大丈夫かな。^^;
これで電流を計りたいところに電流検出抵抗(シャント抵抗)をつないで、この抵抗の両端の電圧を計れば電流計として利用できます。(と思う。)
電子負荷の仕様は、16V程度を5Aまでとします。
SUP85N15-21は、データシートによると150V85Aで許容損失は300Wとなっています。話、3分の1としても十分です。
でも、このFETって、TO-220パッケージなんですよ。TO-3Pタイプなら100W超えも良く見るのですが、TO-220で300Wって本当かいな?。心配なんで2個を並列動作させます。
いずれにしろ、60W80W程度の廃熱が必要になるのでちゃんとしたヒートシンクをつけます。
このMOS FETは、最近多く出回っている4V程度でONになるタイプじゃないようです。データシートからもわかりますが、6V以上のVGSが必要となるようです。(2007-11-26追記)
ファンも付いてます。intel純正です。
もともとのCPUが何だったは、わかりませんが、30〜40Wの熱容量のCPUに使われていたものだと思いますので、長時間使わなければ大丈夫でしょう。
で、・・・テスト中のお約束。
火花とともに立ち上る煙。テスターリードの先端が変色して焦げてしまいました。FETは、2個ともソース・ドレイン間がショートモードでブチ壊れています。
このテスターリードは、三和の製品なんですが、先端が形状記憶合金になっていてブレットボードにも直接させるので便利です。
FETが壊れた原因は良くわかりません。^^;
ラジコンバッテリーの充電に使っている安定化電源(DM-330MV:最大32A)をテスト電源としたのでフルパワーがかかったときに壊れたのだと思いますが、スペック的には問題ないはずなんですがね。
電流検出抵抗として、最初は1Ωのセメント抵抗を使っていましたが、発熱が気になるので、途中で0.1Ωのセメント抵抗に変えたときにFETが壊れています。要は電流制限抵抗が小さくなったために過大な電流が瞬間的に流れたのだと思います。(2007-11-26追記)
結局、3個のFETが壊れました。パワーMOS-FETって大電力扱うので丈夫そうに見えるけど割かし簡単に壊れます。←使い方がシロートなんでね→自分。
これがテストに使った回路図です。FETの並列が悪いのかな?。
テスト中には、片方のFETのみがかなり熱を発生させます。バランスが取れていない感じです。
ちゃんとした書籍で勉強せねばいけませんね。
Vishay Siliconix社のWebサイトでデータシートを眺めていると、許容損失300Wの条件として、デューティサイクルが1%以下との注意書きがあります。その場合の300WもSOA(Safe Operating Area)グラフを参照しろと書いてあります。
グラフの見方が難しいのですが、パルス駆動で使うことを想定したFETのような気がします。
アプリケーションノートにもAutomotive(自動車部品??)のABSやDC/DCコンバータ、モーター駆動が列挙されてます。
ということで、残念ながら別のMOS FETを探す必要がありそうです。
そもそもエンハンストメント型のFETをこういう用途で使って良いのかがよくわかっていません。こういうFETは、ONかOFFのどちらかの状態で動作させるのがフツーなんでしょう。ゲートを中途半端に開けた状態だからON抵抗が高くて異常に発熱するものと思われます。
東芝製のMOS FETの2SK2233は、SUP85N15-21より大きな外形のTO-3Pパッケージで許容損失100Wとなります。
話、半分として50WまではOKでしょう。16V程度までの電圧だとすると3Aは流せます。これを2個並列とするので16V5Aは、十分な放熱があれば連続運転できそうです。
また、短時間ならば、10A程度も問題なさそうです。(あくまでも十分な放熱対策がある場合ね。)
とりあえず、テストしてみます。16Vで2Aの負荷をかけています。32W程度ですね。
SUP85N15-21では、片方のFETが触れなくなるほどの発熱でしたが、2SK2233は、触ることが出来る発熱量で2個ともが同じような温度となっています。(ひとさし指温度計による)
秋月電子の電圧計キット基板の上の小さな基板は、分圧抵抗回路となっています。10KΩ/1MΩで、100倍としています。これで最大200.0mVのキットで20Vまで最小10mV単位で測定できるようにしています。(つまり、今回は、最小10mA単位で20Aまで測定できるようにしたことになる)
本来は、金属皮膜抵抗などの高精度で温度係数が小さな抵抗を使う必要がありますが、手持ちのカーボン抵抗で5%誤差の安物で間に合わせています。(でも、途中に追加したテスターと同じ値が測定できています。)
電流制限抵抗(電流検出抵抗を兼ねる)は、1Ω10Wのセメント抵抗なんですが、これの発熱がかなりあります。抵抗の容量10Wを考慮すると3A程度の連続運転しかできないかもしれません。もし、3A以上を連続運転するなら、安全策を考えて3Ω10Wを3個パラレル接続としたほうがよさそうです。
仕様変更
ここを含めてこれまで最大負荷は5Aとしてきましたが、電流制限抵抗1Ω10Wの定格から3Aが最大となります。(2007-11-30追記)
完成に向けて回路図を完成させます。
2SK2233をドライブするための電圧VGSは、0.7〜6.0V程度あれば負荷電圧13.8V時に0〜5Aまで流せるようです。
ケースは、放熱や電圧計(電流計)へのノイズを考えると金属(アルミ)ケースがいいのですが、ヒートシンクや表示部の開口部加工が大変になるのでタカチのSY-150Bというプラスティックケースを使います。
スイッチング電源は、ジャンク屋で300円で入手したロジテック社の20GByteハードディスクケースから取り出したものです。ハードディスク電源ですので+5Vと+12Vが得られて15W程度の負荷が接続できます。
この手のジャンクは、もともとの目的では使うことが出来ませんが、ケースに内蔵されている電源は、コンパクトでいろいろと使いまわすことが出来ます。また、ケースファンやスイッチなと使い回しが利きます。ジャンク屋で見つけたら100〜300円程度なので即買いしています。・・・でも、たまーに液漏れコンデンサの電源もあるので一種の博打ですね。
ケース内で肝心の電子負荷部分は、上ブタにくっついているMOS FETと電流制限抵抗のセメント抵抗がのった小さな基板だけであとは、電源と電圧計(電流計)が大部分を占めています。^^;
負荷電源をつないで1.5A程度を流してみました。テスターと比較すると数10mA程度の誤差が出ますが、おおむねあっているようです。電圧13.8Vで電流調整VRを最大にして5.22Aの負荷電流を流すことが出来ます。
7セグメントLEDが明るすぎます。明るさの調整は出来ないようなのでスモークタイプのアクリル板でカバーする必要がありそうです。
なぜか、たまーに、負荷をかけない状態でも電流計が10mAから20mA程度を示します。使用目的からは問題ないのでこのまま使います。
電圧13.8Vで負荷電流3Aを流して10分間の連続運転をテストしてみました。
ヒートシンクは、ファンによる強制空冷が利いて暖かくはなりますが、触れないほどの熱にはなりません。でも、ファンの音が結構大きくてチョット後悔しています。
CPUファンってPCのケース内で使用するようになっているので音に関してはあんまり対策されていないんでしょうね。常に全開で回っています。また、回転部分が露出しているのでチョット危険です。でも、回転中に指で触れたら痛くはなかったです。8ピンのPICかAVRを使って温度による回転制御でもするかな。
ケース内の電流制限抵抗がとてつもない熱さになっています。3A時に9W程度なので定格内ではありますが、チョット危険な感じです。連続運転で使うならば、このセメント抵抗の放熱対策が必要かと思われます。
8ピンのワンチップマイコンは、PICならPIC12F683、AVRならATTINY45が手元にあります。両方とも、A/D変換やPWM出力をハードウェア搭載しているので今回の目的にぴったりです。AVRは、プログラム格納するフラッシュメモリが4KByteもあるため、今回の用途にはもったいないような気がします。
・・・ということで、今回はPIC12F683を使用することにします。
温度センサーは、よく使われているナショナルセミコンダクター社のLM35DZを使用します。LM35DZは、トランジスタみたいなTO-92パッケージで0〜100℃まで検出できます。電源5Vを供給すると、出力端子では10mV/1℃が得られます。つまり、20℃だと200mVの出力が得られることになります。
下の写真のLM35DZは、今売っているレーザー刻印のものではなくて、発売当初のシルク印刷されたもので、15年近く前に購入したものです。
ブレットボードで開発します。本来なら、LM35DZの出力が数100mV程度なので、オペアンプ等で増幅した信号をPICのAD変換へ入力したほうがノイズ等の影響を受けにくくて良いのですが、今回は部品点数を減らすため直接接続しています。
最終的に、以下の回路図としました。MOS FETはサンヨー社のTND012NMで秋月電子で10個300200円で売っているものです。最大負荷は60V1.5Aまでと冷却ファン程度なら余裕でドライブできます。PICの電源5Vは、外部から供給してもよかったのですが、電圧計で使用している5V系にノイズ等の影響を与える可能性もあったため、12Vから3端子レギュレータで取り出しています。
LM35DZの出力にノイズ防止のコンデンサ追加(2008-01-14)
3端子レギュレータの発振防止のため、入力にコンデンサ追加(2009-06-01)
PICのプログラムは、mikroCで開発しました。mikroCには、AD変換とPWMのハードウェア制御が標準ライブラリとして準備されているので、ヒジョーに簡単にコーディングできます。
今回使用したソースコードは、以下となります。PWMは8KHzとしてLM35DZが30℃以上を検出すると段階的にPWMのデューティ比をあげていきます。50℃以上で全開となります。
一応のノイズ対策のため、AD変換の読み取りは、5msの間隔で3回行い、その平均値を制御に使います。
PIC12F683のPWMは、10bitなので0〜1023までなのですが、mikroCのライブラリは8bitにしか対応していないようです。
1 |
/* * PWM Fan Speed Control * * PIC 16F683 * * Device Flags: * _CP_OFF _MCLRE_OFF _PWRTE_ON _WDT_OFF _INTRC_OSC_NOCLKOUT * */ void main() { unsigned int ad1, ad2, ad3; unsigned int level; OSCCON = 0b01110000; // 8MHz internal clock ANSEL = 0b01011000; // AN3 and Fosc /16 ADCON0 = 0b10001101; // AD control CHS=11(AN3) CMCON0 = 0b00000111; // Comperator not select PWM_Init(8000); // PWM initial 8KHz PWM_Start(); // PWM start do { ad1 = Adc_Read(3); // Read AN3 Delay_ms(5); ad2 = Adc_Read(3); // Read AN3 Delay_ms(5); ad3 = Adc_Read(3); // Read AN3 level = (int)((ad1 + ad2 + ad3) / 3); // Avg. AN3 if(level < 50) { // 25℃以下 PWM_Change_Duty(0); } else if(level > 61 && level < 70) { // 30℃〜35℃ PWM_Change_Duty(150); } else if(level > 71 && level < 80) { // 35℃〜40℃ PWM_Change_Duty(175); } else if(level > 81 && level < 90) { // 40℃〜45℃ PWM_Change_Duty(200); } else if(level > 91 && level < 100) { // 45℃〜50℃ PWM_Change_Duty(225); } else if(level > 101) { // 50℃以上 PWM_Change_Duty(255); } } while(1); } |
切り出した小さな基板に実装しました。LM35DZは、ヒートシンクにくっつける必要があるため、短めのワイヤーで外付けとしています。
電子負荷装置に取り付けました。LM35DZは、一応、サンハヤトの放熱用シリコングリスを塗ってヒートシンクに固定してあります。
電子負荷装置が無負荷の場合は、当然、ファンは回転しません。
13.8Vで約3Aの負荷をかけると、40秒程度でファンが回転し始めました。このまましばらくほって置くとファンの回転数が若干上がりますが、全開までは行かないようです。
全開にならない状態では、PWMの周波数8kHzが、”ピィー”と聞こえて耳に付くのが気になります。可聴周波数帯以上ならいいだろうと、20kHz以上を試しましたが、ファンが回転しませんでした。逆に低すぎても回転がギクシャクしたりしてうまくいかないようです。