title0a.gif

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 回路図

 今回の回路動作を確認するためにブレッドボードで試作を何度か繰り返しています。 最終的な回路ではありませんが、下図のようにブレッドボードのお世話になりました。 特にアナログ回路部分は、オペアンプの選択に大活躍してくれました。 ちなみのブレッドボードはブレッドボードより一回り大きい空き菓子箱に入れて使っています。 部品がちらからなく、また、収納取り出しに便利です。 

【回路試作状況】

 試作を経て最終的に落ち着いた回路図を下記に掲載します。
 


(クリックすると原寸大の回路図をダウンロードできます。)

【 「とりあえず電圧発生器」回路図 】

  近所のディスカウントショップで300円以下で購入していたものです。 もともとはFOMA用コネクタを改造できないかと思い購入していたのですが、充電用としてしか使用できないことが分かり死蔵していたものです。 今回、やっと日の目を見ました。

【 シガーライタ用携帯電話充電器 】

 

シガーライタ部を分解しました。

【 内部構成 】

 

 DCDCコンバータ基板を取り出しました。 動作表示のLEDは不要なので除去して使用します。

【 DCDCコンバータ基板外観 】

 

2.3 製作例

 以上のようにして製作した基板を下図に示します。

 中段右側の黄色い部品がジャンパー部分です。 上側3列を短絡で1mV分解能、下側3列を短絡で2.5mV分解能です。 上記画像では1mV分解能選択となっています。

【 製作例1 】

 

 好みの分かれるところですが、配線は全て部品面にしています。 今回はハンダ面での配線は止めました。
 オペアンプが1個だけ向きが変わっていますが

【 製作例2(LCD取り外し時) 】

 

 めずらしくハンダ面の公開です。 ハンダ面での電線配線は行っていません。 これはハンダ付けの目視確認を確実に行えるようにするためです。
 基本的には平面的な渡り配線を行っています。 しかし、止むを得ず2ヶ所ほどエンパイヤチューブを被せたスズメッキ線で渡り配線を行っています。 PIC16F84系列の発振子接続ピン配列には毎回泣かされています。

【 製作例3(ハンダ面) 】

 

 

2.4 ワンチップマイコンPIC16F84A仕様

(1)  今回のPIC16F84Aのソフトを下記に掲載します。 下記をクリックするとダウンロードできます。

      jsk41b.hex      6,104バイト
 

(2) PICマイコン IOピン割り当てを下表に示します。 

 PIC16F84A I/Oピン割り当て

PIN
No

信号
名称

方向

信  号

RA2

入力

SW3 調整ステップ切替スイッチ

RA3

入力

SW4 設定電圧UPスイッチ

RA4

入力

SW5 設定電圧DOWNスイッチ

/MCLR

入力

パワーオンリセット信号

Vss

GND

電源グランドライン

RB0

出力

DAコンバータ MCP4922 CS信号

RB1

出力

DAコンバータ MCP4922 LDAC信号

RB2

出力

LCD液晶  E信号

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分解能専用回路図 】


 Memorandumの小部屋 へ戻る      ホームページへ戻る


End of This Page.