title0a.gif

Memorandumの小部屋

本ページは金銭授受を伴う行為を含むAuctionや商用Web Pageからの無断リンク・無断参照を禁じます。
無断リンク・無断参照が判明した時点で然るべき処置をとらさせて頂きます。


ちょっとだけ電圧ロガー(その1)

1.背景

 電池電圧の消耗測定に「8CH10ビットデータロガーキット (K-02168)」を使用しています。 しかし以下のように測定器として使用するには問題があります。

 このようにあまりの性能の悪さにとてもデータロガーとは思えません。 しかし、文句を言いながらも、これに代わるものがないため、諦めてこれを使い続けています。 お仕事でまともな測定器を使っているので高望みしすぎるのかもしれませんがあまりにも落差があります。
 あまりの酷さにとうとう耐えられずこのキットを改善しようかと思い「8CH10ビットデータロガーキット (K-02168)」を秋月電子通商で購入しようとしましたが、既にこのキットを販売していないようです。
 ここで、改善はあきらめて、独自に製作することにしました。 ここはアマチュアレベルということで、部品入手性を重要視し、本気の回路設計は止めて、ちょっとだけ真面な回路設計の電圧ロガー、チャンネル数が少ないちょっとした電圧ロガー → ちょっとだけ電圧ロガーを製作することにしました。

 なお、今回の製作は以下の3段階を予定しており、少なくとも(その2)までは仕上げるつもりです。 (その3)は後回しになるのではと予想しています。 今回は下記の(その1)の公開です。

その1 : ADコンバータ回路の製作、データ収集はパソコンで実行。

その2 : SDメモリにデータを保存する機能を追加。 但し、データの吸い上げはRS−232C経由。
       (いつどこGPSロガー4と同様にEEPROM的な使用方法。

その3 : ロギング設定をスタンドアロンでできるようにマンマシンIF用LCD、操作スイッチを追加しマイコンを追加。


2. ちょっとだけ電圧ロガーの設計

2.1 仕様概要

 一番重要視したのは入力レンジです。 どうしても0V付近をそれなりに真面目に測定したいので±入力を必須とすることにしました。 また、レンジ切替えをすると、レンジ間のキャリブレーションが気になり調整が増えますのでレンジ切替えは諦めます。 とはいえ、1mVレベルの測定も行いたいと思います。 入力レンジを±10Vで1mV分解能となると、少なくとも15ビット(約32000LSB)の分解能が必要となりますのでADコンバータは16ビット以上となります。 こうなるとおもちゃレベルで使用(入手)できるADコンバータの選択の余地が狭まりますし、部品も途端に高価となります。

 このようなプロユースに近い用途の部品はDigi−Keyで捜すに限ります。 ここで調べるとやはり高価な部品ばかりですが、16ビット品でありながら1個単位で購入できて1000円以下の部品が有りました。 Cirrus Logic IncのCS−5511が745円でした。 データシートを調べると20ビット品であるCS−5513もありましたのでこれを調べると1個単位で購入できて単価825円でした。 変換スピードがIC任せというのは気になりましたが、この値段には魅力的でしたので、今回の製作はCS−5513を採用することにしました。

 分解能20ビットと当初の16ビットを上回るADコンバータを採用するのは良いのですが、こんなに分解能があると0点調整やゲイン調整をするための測定器がありません。 よって、調整は全てソフトと運用で逃げることにします。 外部から適当な複数の電圧を入力し、この電圧を少しはまともに測定できるディジタルテスタで読みとり、また同時にこの電圧をAD変換した値を読み取ります。 これらの値を突き合わせてと0点とゲインを算出する方法をとります。
 この方法を使用することで、ADコンバータ入力のオペアンプ回路の設計がとても楽になります。 入力段のゲインは固定抵抗で固定化し、0点も適度な範囲に収まるように概略調整で済ますことができます。 あとはソフトお任せとします。  

 入力チャンネルは多いに越したことはありませんが、分解能を上げるとその分マルチプレクサのセットリング時間を確保しないといけなくなります。 また、マルチプレクサだけのセットリング時間だけを考慮してもだめで、周辺回路全体の充放電回路部品の状況を考慮しないといけません。 プロの製品でもこれを全く考慮せず、アナログ信号切替え部品のセットリング時間だけで設計しているものを数多く見ています。 とんでもない話です。
 マルチプレクサを使用すると安価に仕上がりますが、各チャンネルの時間軸の同期がとれない、前記のセットリング時間の問題、測定する信号の電圧源(出力インピーダンス)の問題など、電圧ロガーとしての本質的な問題を抱えた設計となります。 個人的にはプロユースでは12ビット、アマチュア用とでは8ビットを越える分解能の精度、再現性を要求する回路にマルチプレクサを使用する勇気はありません。 よって、今回は1CH毎にADコンバータを設け、マルチプレクサを使用しないことにします。 こんな贅沢ができるのも単価825円のCS−5513を選定できたからです。

2.2 ちょっとだけ電圧ロガー仕様

 上記仕様概要決定過程を基にした「ちょっとだけ電圧ロガー」の仕様を下記します。

「ちょっとだけ電圧ロガー」の仕様

No

項  目

仕  様

入力チャンネル

 4CH

入力レンジ

−10V〜+10Vを測定できること。 

入力インピーダンス

1MΩ

変換回数

10回/秒以下 (今回のソフトでは10〜13回で一定間隔ではない。)

変換同期性

各チャンネル非同期 (CS−5513内蔵発振回路によるため。)
推定で最大30msのばらつき

分解能

20ビット (意味のある20ビットではなく、単なる分解能力のみ。)
有効分解能目標 12〜14ビット

データ保存機能

現状は無し。
(その2)で追加予定。

データ通信

RS−232C 9600pbs (EEPROM設定で変更可能)
パリティ無し データ8ビット ストップビット1ビット (左記は固定)

フィルタ

オペアンプ入力段 フィルタ有り。(回路図参照)
ADコンバータ    ディジタルフィルタ(Sinc4 Filter)内蔵
             (非同期なので全く意味無し。 邪魔なだけ。)

10

データ出力

下記回路図に示すようにADコンバータ入力段のオペアンプは反転回路を使用しています。 このため、正負が逆になります。 CS5513のデータシートのOutputCodingに準じて記載すると下記のよう0になります。

Input Voltage

AD Input Voltage

20-Bit AD Data

OF Bit

Output Coding

-電圧側過電圧

> (VFS - 1.5LSB)

7FFFF

1

47FFFF

-10V付近

VFS - 1.5FLSB)

7FFFF
-----
7FFFE

0

07FFFF
-----
07FFFE

0V付近

-0.5LSB

00000
-----
FFFFF (0Vに相当)

0

000000
-----
0FFFFF

+10V付近

-VFS+0.5LSB

80001
-----
80000

0

080001
-----
080000

+電圧側過電圧

< (-VFS+0.5LSB)

80000

1

480000

   

  

2.3 回路図

 上記仕様を基にして検討した回路図を下記に掲載します。


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

【 回路図 】

該当部品番号

注意点

R11,R21,R31,R41

 下記の製作例では1/6Wの抵抗を使用していますが、できる限り1/4W以上の外形寸法の大きい抵抗を使用することが望まれます。

R12,R13、R22,R23、R32,R33,R42,R43

 これらの抵抗の絶対値はあまり意識する必要はありません。 R12とR13、R22とR23、R32とR33,R42とR43の抵抗値比が重要です。 各抵抗は、できる限り同位置ロット品を使用して下さい。 

VR51

 多回転のポテンショメータを使用して下さい。 決して1回転のVRを使用しないで下さい。
 今回の製作には秋月電子通商の「多回転半固定ボリューム たて型 3296W(1kΩ) [3296W-1-102] [P-00973] 」を使用しています。

C11,C21,C31,C41
 

 入力信号フィルタ用です。
 ばらつき、温度特性を考慮してフィルムコンデンサを採用しています。 なお、コンデンサ容量はフィルタ時定数を考慮して決めて頂ければと思います。 現在の回路定数は目標の周波数特性を決めて決定したものではなく、数kH以上の周波数成分を適当に低減しようとしているだけです。 耐電圧は30V以上が望ましいです。
 今回の製作には秋月電子通商の「積層フィルムコンデンサ 0.1μF50V [104] (10個入) [P-03204] 」を使用しています。

C12,C13,C14,C22,C23,C24,C32,C33,C34,C42,C43、C44

 基準電圧信号フィルタ用です。 静電容量はばらついても構いませんので周波数特性の良いセラミックコンデンサで、できる限り静電容量の大きいものを使用します。 また、使用電圧も5V以下ですので耐電圧も10Vあれば十分です。
 今回の製作には秋月電子通商の「積層セラミックチップコンデンサー 10μF10V[3216]40個入 P-02083 [GRM230F106Z10] [P-02083]  」を使用しています。

C81,C82

 ±15V用電源低周波域用フィルタを目的とした電解コンデンサです。 電源入力部に実装します。
 ワーキング電圧は最低限でも16WV、できれば25WV、可能な限り35WV以上を使用して下さい。 静電容量は実装に合わせてできる限り大きい容量が望ましいです。 最低でも100μFは欲しいところです。
 製作例では手持ちの330μF 16WV品を使用しています。

C51,C83,C84

 ±15V用電源高周波域用フィルタを目的としたセラミックコンデンサです。 オペアンプ電源端子近傍に実装します。 耐電圧は25V以上が望ましいです。 静電容量は1μF以上あれば十分です。
 今回の製作には秋月電子通商の「セラミックコンデンサー 10μF 35V(10個入) [106] [GP075F106Z] [P-02338] 」を使用しています。 なお、5Vライン用のC85も同じコンデンサとしました。

C52,C53

 データシートに準拠して2.2μFを使用しています。 耐電圧16Vと思われます。 コンデンサの種類は特に問いませんが、周波数特性は良いコンデンサが望ましいので電解コンデンサは適さないと考えます。

上記以外のコンデンサ

 0.1μFのコンデンサは一般的な積層セラミックコンデンサ(リード線、チップいずれでもok。)

L81,L82

 電源用インダクタを使用して下さい。 電流容量200mA以上で、できる限り電流容量の大きいものを使用して下さい。 インダクタンスは100μH以上を使用するのが目安だと考えます。
 今回の製作には秋月電子通商の「電源用インダクタ(コイル)1mH [P-01776] 」を使用しています。 

L11,L21,L31,L41

 ADコンバータ用の電源ライン用インダクタです。 電流容量100mA以上で、できる限り電流容量の大きいものを使用して下さい。 インダクタンスは10μH以上を使用するのが目安だと考えます。
 今回の製作には秋月電子通商の「SMDインダクタ 47μH0.36A VLF4012AT−470MR30(20個入) [VLF4012AT-470MR 30] [P-01681] 」を使用しています。 

 

2.4 電源

 今回の回路に使用する電源は±15電源と+5V電源の合計3電源が必要です。 最近ではスイッチングレギュレータが蔓延しておりますが、ここでも20ビットの壁が立ちはだかります。 当方の実力では20ビットの分解能に耐えうる電源ノイズ除去技法がありませんので、ここは最も安易なシリーズレギュレータを使用します。

 

2.5 PICマイコンソフト

(1) PICマイコンのプログラムを下記に掲載します。 AD変換値を下記フォーマットで垂れ流しにするだけです。

  jsk49a2.hex(クリックするとダウンロードできます。)  (2010-02-28 Bug fix and Update)

 

(2) データフォーマット

 Line1 復帰改行(&h0D+&H0A)送信

 Line2 メッセージ「Logger Start.」 + 復帰改行(&h0D+&H0A)送信

 Line3以降
   データライン送信。 以下を1行にして延々と送信。 具体例は4.動作例を参照。

     最初の4バイトデータ 送信回数 (各データ間にスペース&h20を追加)
     次の3バイトデータ  CH1のADコンバータ出力データ (各データ間にスペース&h20を追加)
     次の3バイトデータ  CH2のADコンバータ出力データ (各データ間にスペース&h20を追加)
     次の3バイトデータ  CH3のADコンバータ出力データ (各データ間にスペース&h20を追加)
     次の3バイトデータ  CH4のADコンバータ出力データ (各データ間にスペース&h20を追加)
     復帰改行(&h0D+&H0A)送信

 

(3) PICマイコン内のEEPROMのデータ設定を下記に記載します。

アドレス

データ内容

デフォルト

$00

AD Convert 有無設定  CH1=bit2 CH2=bit3 CH3=bit4 CH4=bit5
                1:該当CH有り 0:該当CH無し

 AD Convertを4回路未満で使用する場合、上記のビットを0にすることでプログラムを動作させることができます。

’3C’

$01

RS−232C通信速度設定 (19200bps相当)

 SPBRGレジスタの値(20MHz、BRGH=1)
 PIC16F648データシートの「USART Baud Rate Generator」を参照して下さい。

 デフォルトでは19200bps相当。

’40’
$02

AD変換間隔設定

 データ送信後の待ち時間設定。 AD変換終了後、10msタイマー×設定値の待ち時間をとった後、次のAD変換を開始する。

’09’

 


3 製作例

3.1 基板製作例

 上記回路図をもとに製作した事例を下記に示します。 将来のチャンネル数増加も想定してAD変換部分とマイコン部分を別々にすることにしました。

 


マイコン基板の上にAD変換基板を搭載しています。
【 完成基板外観 】

 


オペアンプはAD706AR(左側)とOPA2277P(右側)を各2個実装しています。
アナログ部分とディジタル部分を明確に分けて実装しています。

【 AD変換基板 部品面 】

 


立体的な配線をして信号のクロストークを低減しています。

【 AD変換基板 部品面 斜視図 】

 


GNDラインは銅板を使って低イーダンス化を図っています。

【 AD変換基板 ハンダ面 】

 


GND面積を確保できない部分は銅板を縦に実装しています。(中央左部分)

【 AD変換基板 ハンダ面 斜視図 】

 

【 マイコン基板 】

 

3.2 動作例

(1) 実際に動作させたときのRS−232Cデータを下記に掲載します。

【 RS−232C 通信データ 】
 

(2) 入力に何も接続しない状態(0V相当)での変換値の変化を記録した結果を下記に掲載します。
  通電開始直後は徐々に変換値が変動しています。

【 AD変換結果 変動例 CH1 (通電開始初期) 】

 

   通電開始後10分以上経過すると下図状態のように変動が低減して安定化しています。

約16LSBの幅で変動しており、目標14ビットはいけそうです。 思ったより小さくできているようです。

【 AD変換結果 変動例 CH1 (安定状態) 】
 


4 動作確認1

4.1 立ち上げ用ツール

 上記製作例を立ち上げる際にEXCELでツールを作成しましたので、これを下記に掲載します。 本ツールのVBAにはEasyComm(Copyright(c) 2000-2004 T.Kinoshita)を使用させ頂きました。 この場を借りて感謝の意を表します。 

 ちょっとだけ電圧ロガー 立ち上げツール jsk49_r2.xls (LHAで圧縮)

 ツールの概要を下記します。

【 ちょっとだけ電圧ロガー 立ち上げツール 】

 

【 データ数値モニタ、キャリブレーション操作エリア 詳細 】

 

4.2 立ち上げ手順

 今回の立ち上げ手順例を下記します。

  1.  全チャンネルの入力をGNDに短絡します。

  2.  [ばらつき具合は上記の「データ数値モニタ、キャリブレーション操作エリア]の+VOLT行(水色背景セル)に 0 を入力します。

  3.  [通信開始]ボタンを押してデータ収集を開始します。

  4.  変換をしながら、全チャンネルの数値が524300を中心にしてばらつくように基板上のVR21を調整します。 [ばらつき具合は上記の「データ数値モニタ、キャリブレーション操作エリア 詳細]を参考にして下さい。

  5.  VR21の調整が完了した後、[ALL 0V]ボタンを押して下さい。

  6.  入力に009P乾電池と、手持ちのデジタルテスタ(電圧測定)を接続します。 006P乾電池は+電圧入力となるように接続して下さい。

  7.  接続した状態のデジタルテスタ電圧読み値をMax Conv. Dataの+Voltセル(水色背景セル)に入力します。

  8.  [ALL +]ボタンを押して下さい。

  9.  006P乾電池は−電圧入力となるように接続して下さい。

  10.  接続した状態のデジタルテスタ電圧読み値をMin Conv. Dataの-Voltセル(水色背景セル)に入力します。

  11.  [ALL −]ボタンを押して下さい。

  12.  006P乾電池とデジタルテスタを取り外して下さい。

 

4.3 判明している問題点

 現在の回路では4個のADコンバータを同時に読み出そうとしています。 しかし、このADコンバータは内蔵のクロックで動作していますので場合によっては4個同時に変換できない可能性があります。 このため、取得データのなかで、変換データが&HFFFFFFと上位の4ビットが&HFとなっているデータがあります。
 本来、全ADコンバータ読み出しが可能な場合まで待つようにプログラムしているつもりですが、なぜかこれをすり抜けて&HFFFFFFのデータ、つまり、読み出し不可状態にもかかわらず読み出しをしてるようです。

 現在、この原因は不明です。 たまにしか発生しない現象ですので、このデータを取得した場合は読み値を更新しないようにして使用しています。

 

4.4 電源方式の影響

 今回は最初からSWレギュレータの使用を止めていましたが、手持ちのACアダプタを使用して、シリーズレギュレータとSWレギュレータの違いを確認しました。

シリーズレギュレータ 自作電源 トラッキング電源キット

SWレギュレータ 秋月電子通商 NP12-1S0523 NP12-1S508

 この結果を下記に示しますが、基板自体は電源方式の違いはほとんど無いことがわかりました。 意外な結果です。 AD変換方式、デバイスの性能のおかげも大きいのでしょう。

 信号源の出力イーダンスが高い場合は低い場合は配線への誘導起因でノイズが急増します。 安心料と実装面も含めて考慮すると、最終的な組み込み時は、当初のようにシリーズデギュレータを採用することにしました。

  


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


End of This Page.