Memorandumの小部屋
本ページは金銭授受を伴う行為を含むAuctionや商用Web
Pageからの無断リンク・無断参照を禁じます。
無断リンク・無断参照が判明した時点で然るべき処置をとらさせて頂きます。
何はともあれ作っちゃえ! とりあえず電圧発生器 (参考)
1.背景
電圧信号を入力して出力特性を測定するために1mV刻みの電圧発生器が必要なケースがありました。 電圧発生器はハンドル付きで机上据え置きを前提にした大きさです。 とてもそんなものを持ち歩かせるのは大変と思い、思わず「そんなの作っちゃえ!」と冗談(半分、本気半分)で言ったのは言いのですが、何故かそれがいつまでも引っかかっていました。
しかし、実際に製作しようとすると電圧分解能は最低でも13ビット程度は欲しいところです。 高価な産業用DAコンバータを使用せずに、個人で安価に入手できる部品でこれを簡単に実現する方法を考える必要があります。 当初はPWM/PAM複合制御で分解能を稼ごうと思っておりましたが、そうこうしているうちに12ビットのDAコンバータが安価で入手できることがわかり、これを利用することにしました。
しかし、これをお遊びで製作するのは良いのですが手間暇をかけて電圧発生器を製作しても使い道がありません。 とはいえ、思いついたが吉日ではありませんが、「何はともあれ作っちゃえ!」と「とりあえず電圧発生器」の製作スタートです。
(本製作では当初期待していた性能を出せません。 実際に性能を出した「本当に、とりあえず電圧発生器」をご覧願います。 本ページは参考として公開します。)
2.「とりあえず電圧発生器」の製作
2.1 仕様
「とりあえず電圧発生器」の仕様を以下のようにしました。
(1) 1mV分解能で、±4.08Vの範囲で調整できること。
(2) 2.5mV分解能で、±10.20Vの範囲で調整できること。
(3)
1mV分解能と2.5mV分解能の切替はジャンパーピンで切替える。
(ソフト+アナログスイッチ、もしきは、スイッチでの切替は行わない。)
(4) 1mV分解能と2.5mV分解能の切替は電源投入時のみとし、途中での切替えは行わない。
(5)
出力は差動出力とする。 (要注意)
電圧出力の−端子と電源の−端子は絶縁された状態で使用する必要があります。
差動出力とした理由は、単電源で±出力を得るためです。
「とりあえず電圧発生器」の電源は単独で設けて下さい。
負荷側の電源と共用は絶対に行わないで下さい。
(6)
負荷インピーダンスは470kΩ以上。 (要注意)
電源電圧発生器ではなく電圧発生器です。
手持ち部品で製作したのでこのような仕様となっています。(部品を変えれば変更可能)
最大出力時100kΩでも電位降下0.1%発生するようです。
(7)
操作は下記の5個のスイッチで操作。
(a) 設定電圧UPスイッチ
(b) 設定電圧DOWNスイッチ
(c) 調整ステップ切替スイッチ
(d) 電圧設定メモリ切替スイッチ
(e) 電圧設定書込スイッチ
(8)
電圧設定メモリとして、1mV分解能/2.5mV分解能それぞれに4CH確保。
電圧設定メモリの内容は、設定電圧と調整ステップの2つのデータとする。
電源投入時は電圧設定メモリCH1を選択。
(9)
調整ステップは下記のように4通りをサイクリックに切り替える。
1mV分解能 : 0.0010V、0.0100V、0.1000V、1.0000V
2.5mV分解能 : 0.0025V、0.0100V、0.1000V、1.0000V
(10)
使用ワンチップマイコンはPIC16F84Aとする。
最近はあまり出番のなくなったPIC16F84Aに再びスポットを当てました。
PIC16F646Aにすれば電圧設定が余ったままとなっています。
(11) DAコンバータはマイクロチップ社のMCP4922を使用する。
(12)
電源は12V単電源とする。 電圧範囲としては12〜15V。
マイコン用5Vはシガーライタ用携帯電話充電器のDCDCコンバータを使用しました。
もともとは電池オペレーションを考えていましたが、適切な電池がなくて諦めています。
2.2 回路図
今回の回路動作を確認するためにブレッドボードで試作を何度か繰り返しています。 最終的な回路ではありませんが、下図のようにブレッドボードのお世話になりました。 特にアナログ回路部分は、オペアンプの選択に大活躍してくれました。 ちなみのブレッドボードはブレッドボードより一回り大きい空き菓子箱に入れて使っています。 部品がちらからなく、また、収納取り出しに便利です。
【回路試作状況】
試作を経て最終的に落ち着いた回路図を下記に掲載します。
【 「とりあえず電圧発生器」回路図 】
アナログ部分でゲイン、オフセット調整が沢山あります。 VR2〜VR7の6個のVRは多回転のポテンショメータを必ず使用するようにして下さい。 当方は80円/個の秋月電子通商のBOURNS社高精度多回転ボリューム
3296Wを使用しました。 試作時にデジットでもポテンショメータを購入しましたが200円/個もしましたので、最終制作時での採用は見送りました。
問題はオペアンプでした。 今回のような回路ではRail To
Railの単電源用オペアンプを使用するのが当然です。 しかし、一番最初に記載のように「使い道のない」「とりあえず電圧発生器」です。 手持ちのオペアンプを一生懸命捜しました。 ついでに不要部品再活用も大いに利用します。
出力電圧のオフセット調整は加算回路を使えばよかったのですが、計算がついつい面倒なのと、反転回路多用するとオペアンプが沢山いるので何年か振りにオペアンプのオフセット端子を使用しようと決めてしまいました。 この条件を付けることで極端に選択の幅が狭くなりました。 結果的にTLC271CPを使用することにしました。 このオペアンプは不要部品再活用の小部屋で公開していますので、必要でしたらご利用下さい。
(結論から言えばこれが失敗の元でした。 2.1(6)の制限はこのオペアンプの選定が原因です。)
マイコン用5V電源はDCDCコンバータを使用することにしました。 これは、電池オペレーションを想定して、少しでも12V電源の消費電流を低減するためです。
当初は自作しようとしましたが、適切なICが手元にありませんでした。 結局、DCDCコンバータは下図に示すようにシガーライタ用携帯電話充電器を分解して内部のDCDCコンバータを利用しました。 もし、電源をACアダプター前提とするならば、3端子レギュレータでもよいかと思います。 但し、液晶のバックライトLEDを使用する場合は3端子レギュレータには放熱板を付けることをお勧めします。
近所のディスカウントショップで300円以下で購入していたものです。 もともとはFOMA用コネクタを改造できないかと思い購入していたのですが、充電用としてしか使用できないことが分かり死蔵していたものです。 今回、やっと日の目を見ました。 |
【 シガーライタ用携帯電話充電器 】
シガーライタ部を分解しました。
【 内部構成 】
DCDCコンバータ基板を取り出しました。 動作表示のLEDは不要なので除去して使用します。 |
【 DCDCコンバータ基板外観 】
L1のインダクタンスは気持ちで設けたものです。 必須ではありませんので、入手できなければ不要です。 電線で短絡した回路に読み替えて下さい。 また、インダクタンスを設けるならば何μH、mHでも構いません。 定格電流は20mA以上であればよいでしょう。
バイパスコンデンサC1、C3、C4、C5、C6、C7は必須ではありません。 製作時の部品実装に合わせて使用箇所を増減して下さい。
C5、C7は静電容量が大きい積層セラミックコンデンサものを使用しています。 特に容量にこだわる必要はありません。 最悪0.1μFでもよいです。 この場合、10μF(程度)の電解コンデンサを並列接続して下さい。
C1〜C5のコンデンサの耐圧は最低でも16V、できれば25V、望ましくは35V以上が望ましいです。
LCD液晶は秋月電子通商のLCDキャラクタディスプレイモジュール(16×2行バックライト付)
[SC1602BSLB(-SO-GS-K)]を使用しました。 電池オペレーションを想定して、バックライト機能は結局未使用のままとなりました。
電源入力部のD1は逆電圧印加防止用です。 レギュレーションや電池オペレーションにおいては無いにこしたことはありません。 絶対に逆電圧を加えることはないと自信があればD1は不要です。
自信の無い方はD1を設けることをお勧めします。 但し、0.5Aクラス以上の整流用ショットキーバリヤダイオードを使用して下さい。 くれぐれも普通のダイオードや信号用のショットキーバリヤダイオードを使用しないようにして下さい。
当方は、まだ手持ち残数の多いRK16を使用しています。 今回の回路ではVf=0.25V以下でした。 RK16の替わりに秋月電子通商で入手できる1S3や1S4で良いかと思います。
2.3 製作例
以上のようにして製作した基板を下図に示します。
中段右側の黄色い部品がジャンパー部分です。 上側3列を短絡で1mV分解能、下側3列を短絡で2.5mV分解能です。 上記画像では1mV分解能選択となっています。 |
【 製作例1 】
好みの分かれるところですが、配線は全て部品面にしています。 今回はハンダ面での配線は止めました。 |
【 製作例2(LCD取り外し時) 】
めずらしくハンダ面の公開です。 ハンダ面での電線配線は行っていません。 これはハンダ付けの目視確認を確実に行えるようにするためです。 |
【 製作例3(ハンダ面) 】
ユニバーサル基板は秋月電子通商の片面ガラス・ユニバーサル基板 Bタイプ(95x72mm)を使用しました。 TH穴が外周部までありますのでとても重宝しています。
秋月電子通商のアクリルケースSK−16を想定してユニバーサル基板を選定しています。 但し、このケースを使用する場合、基板を固定するスペーサは5mm程度にないと高さ方向の余裕がないようです。
なお、操作スイッチについては基板上に付けていますので、ケースのフタを開けての操作と割り切っています。
「何はともあれ作っちゃえ!」と「とりあえず電圧発生器」なので、ケースの準備までで、加工までする元気が出ませんでした。
出力端子台は手持ち品を使用しましたが、秋月電子通商のターミナルブロック 2ピン(緑小)相当だと思います。 また、ケースの外部に端子を取り出せるように基板に横付けして出っ張らしています。
2.4 ワンチップマイコンPIC16F84A仕様
(1) 今回のPIC16F84Aのソフトを下記に掲載します。 下記をクリックするとダウンロードできます。
jsk41b.hex
6,104バイト
(2) PICマイコン IOピン割り当てを下表に示します。
PIN |
信号 |
方向 |
信 号 |
1 |
RA2 |
入力 |
SW3 調整ステップ切替スイッチ |
2 |
RA3 |
入力 |
SW4 設定電圧UPスイッチ |
3 |
RA4 |
入力 |
SW5 設定電圧DOWNスイッチ |
4 |
/MCLR |
入力 |
パワーオンリセット信号 |
5 |
Vss |
GND |
電源グランドライン |
6 |
RB0 |
出力 |
DAコンバータ MCP4922 CS信号 |
7 |
RB1 |
出力 |
DAコンバータ MCP4922 LDAC信号 |
8 |
RB2 |
出力 |
LCD液晶 E信号 |
9 |
RB3 |
出力 |
LCD液晶 RS信号 |
10 |
RB4 |
出力 |
LCD液晶 DB4信号 / DAコンバータ MCP4922 SDI信号 |
11 |
RB5 |
出力 |
LCD液晶 DB5信号 / DAコンバータ MCP4922 SCK信号 |
12 |
RB6 |
出力 |
LCD液晶 DB6信号 |
13 |
RB7 |
出力 |
LCD液晶 DB7信号 |
14 |
Vdd |
Vcc |
+電源ライン。 |
15 |
OSC2 |
発振 |
セラミック振動子 20MHz |
16 |
OSC1 |
発振 |
セラミック振動子 20MHz |
17 |
RA0 |
出力 |
SW1 電圧設定メモリ切替スイッチ |
18 |
RA1 |
出力 |
SW2 電圧設定書込スイッチ |
(3) PICマイコン内のEEPROMのデータ設定を下記に記載します。
アドレス |
データ内容 |
デフォルト |
$00 |
1mV分解能 CH1 電圧設定値(2バイトの上位側) +4.095V時 : H'1FFF'のH'1F' 0V時 : H'1000'のH'10' -4.095V時 : H'0001'のH'00' |
出力電圧 0.0000V (H'1000') 調整ステップ 0.1000V (H'01) (注意:H'0000'とすると不定となります。) |
$01 |
1mV分解能 CH1 電圧設定値(2バイトの下位側) +4.095V時 : H'1FFF'のH'FF' 0V時 : H'1000'のH'00' -4.095V時 : H'0001'のH'01' |
|
$02 |
1mV分解能 CH1 調整ステップ設定 Step 1.0000V時 : H'00' Step 0.1000V時 : H'01' Step 0.0100V時 : H'02' Step 0.0010V時 : H'03' |
|
$03〜$05 | 1mV分解能 CH2 |
出力電圧 3.600V (H'1E10') 調整ステップ 0.1000V (H'01) |
$06〜$08 | 1mV分解能 CH3 |
出力電圧 0.0000V (H'1000') 調整ステップ 0.1000V (H'01) |
$09〜$0B | 1mV分解能 CH4 |
出力電圧 -3.600V (H'01F0') 調整ステップ 0.1000V (H'01) |
$0C |
2.5mV分解能 CH1 電圧設定値(2バイトの上位側) +10.2375V時 : H'1FFF'のH'1F' 0V時 : H'1000'のH'10' -10.2375V時 : H'0001'のH'00' |
出力電圧 0.0000V (H'1000') 調整ステップ 0.1000V (H'01) (注意:H'0000'とすると不定となります。) |
$0D |
2.5mV分解能 CH1 電圧設定値(2バイトの下位側) +10.2375V時 : H'1FFF'のH'FF' 0V時 : H'1000'のH'00' -10.2375V時 : H'0001'のH'01' |
|
$0E |
2.5mV分解能 CH1 調整ステップ設定 Step 1.0000V時 : H'00' Step 0.1000V時 : H'01' Step 0.0100V時 : H'02' Step 0.0010V時 : H'03' |
|
$0F〜$11 | 2.5mV分解能 CH2 |
出力電圧 9.000V (H'1E10') 調整ステップ 0.1000V (H'01) |
$12〜$14 | 2.5mV分解能 CH3 |
出力電圧 0.0000V (H'1000') 調整ステップ 0.1000V (H'01) |
$15〜$17 | 2.5mV分解能 CH4 |
出力電圧 -9.000V (H'01F0') 調整ステップ 0.1000V (H'01) |
$18 | 1mV分解能 上限設定設定電圧(2バイトの上位側) | 上限 +4.0800V (H'1FF0') |
$19 | 1mV分解能 上限設定設定電圧(2バイトの下位側) | |
$1A | 1mV分解能 下限設定設定電圧(2バイトの上位側) | 下限 -4.0800V (H'0010') |
$1B | 1mV分解能 下限設定設定電圧(2バイトの下位側) | |
$1C | 2.5mV分解能 上限設定設定電圧(2バイトの上位側) | 上限 +10.0200V (H'1FF0') |
$1D | 2.5mV分解能 上限設定設定電圧(2バイトの下位側) | |
$1E | 2.5mV分解能 下限設定設定電圧(2バイトの上位側) | 下限 -10.0200V (H'0010') |
$1F | 2.5mV分解能 下限設定設定電圧(2バイトの下位側) | |
$20〜$2F |
電源投入時LCD表示文字 1行目16文字 (ご自由に書き換え下さい。) |
"Voltage Gen. 1.0" |
$30〜$38 |
電源投入時LCD表示文字 2行目9文字 (著作権表示ですので、できれば残して下さい。) |
"(C)JH4CBA" |
ご参考 電源投入時LCD表示文字 2行目の10〜16文字には、選択された分解能表示を行います。
1mV分解能時 : "S1.0mV"
2.5mV分解能時 : "S2.5mV"
3.動作例
3.1 動作表示例
通電時のLCD表示例を下記写真に示します。
1mV分解能時の起動時表示です。 |
【 電源投入時表示 】
【 操作画面表示 】
3.2 調整例
VR調整は結構面倒です。 +側はゲイン調整しかできないようにしています。 +側に合うように−側のゲイン、オフセット調整を行います。
下記の方法ではDAコンバータの直線性が思った以上に悪いため、うまく調整するのは難しいようです。 とりあえず0V付近の精度がよくなるように調整し、−領域より+領域の出力が合うように調整しています。 この場合、−側の直線線が悪くなっています。 どうもDAコンバータの最上位ビットの精度を期待するのは間違いのようです。 細かい数値にはこだわらず、まあ近ければいいやと割り切りの気持ちが必要です。
(a) 1mV分解能設定で立ち上げます。
(b) GNDと+出力に電圧計を接続します。
(c) 0V設定時に2.048V、-3.6V設定時に0.248V、+3.6V設定時に3.848Vが目安になります。
(d) -3.6V設定と+3.6V設定の電圧差が3.6VになるようにVR2を調整します。
(e) GNDと−出力に電圧計を接続します。
(f) 0V設定時に2.048V、-3.6V設定時に3.848V、+3.6V設定時に0.248Vが目安になります。
(g) -3.6V設定と+3.6V設定の電圧差が3.6VになるようにVR3を調整します。
(h) +出力と−出力に電圧計を接続します。
(i) 0V設定時に出力電圧が0.000VとなるようにVR6を調整します。
(j) -3.6V設定と+3.6V設定で出力測定を行います。
調整が必要でしたら(b)からの再度調整を繰り返して下さい。
(k) 2.5mV分解能設定で立ち上げます。
(l) GNDと+出力に電圧計を接続します。
(m) 0V設定時に5.120V、-9.0V設定時に0.620V、+9.0V設定時に9.620Vが目安になります。
(n) -9.0V設定と+9.0V設定の電圧差が9.0VになるようにVR4を調整します。
(o) GNDと−出力に電圧計を接続します。
(p) 0V設定時に5.120V、-9.0V設定時に9.620V、+9.0V設定時に0.620Vが目安になります。
(q) -9.0V設定と+9,0V設定の電圧差が9.0VになるようにVR5を調整します。
(r) +出力と−出力に電圧計を接続します。
(s) 0V設定時に出力電圧が0.000VとなるようにVR7を調整します。
(t) -9.0V設定と+9.0V設定で出力測定を行います。
調整が必要でしたら(l)からの再度調整を繰り返して下さい。
調整にはできれば分解能0.1mVで5〜6桁の電圧計が欲しいところですが、とてもそのような高価な測定器はありません。 今回は秋月電子通商で購入したポケット・デジタルマルチメータ P−16を使用しました。 この場合、6V未満は1mV、それ以上は10mVの分解能での調整となりました。
3.2 最大出力領域動作確認
オペアンプ、及び、DAコンバータの出力制限のため、最大出力付近の挙動が気になりましたので、製作後動作確認を行いました。 下記結果より1mV分解能の設定上下限を決めました。 2.5mV分解能では未確認です。
+4.08Vまではほぼ直線的に変化していますが、それを超えると急激に直線性が悪くなります。 |
【 +側出力状態 】
やはり-4.08Vまではほぼ直線的に変化していますが、それを超えると急激に直線性が悪くなります。 |
【 −側出力状態 】
3.3 出力電圧特性
出力特性と誤差を測定した結果を下記に示します。 なお、負荷は無負荷状態です。
マクロ的には直線性は良いです。 誤差を見ていくと0V付近を合わせ込んだのがお分かり頂けますでしょうか。 |
【 1mV分解能時特性 】
こちらも同様にマクロ的には直線性は良いです。 誤差を見ていくと、ここでも0V付近を合わせ込んだのがお分かり頂けますでしょうか。 |
【 2.5mV分解能時特性 】
4.その他
もし1mV分解能だけで十分ならば5V単一電源で済みます。 この場合の回路図を下記に掲載します。
但し、スパン、オフセット調整はできません。 でも諦めがついてよいかと思います。
(クリックすると原寸大の回路図をダウンロードできます。)
【 1mV分解能専用回路図 】
End of This Page.