ひとつ前へ TOP
著述責任 mad@mail.wind.ne.jp

GID-ADC トラブル対策
)数理設計研究所 Hal.T 2003/11/03

GID-ADC キットが動かない!

 動かない原因はたくさんありますが、ほとんど解決できます。困難の原因は追求が合理的な手順によっていない点ですね。最初のポイントは、動く部分と動かない部分を切り分けることです。パソコン、OS、ケーブル、ソフト、GID-ADC本体、センサー、どれが動いていてどれが動いていないのか?

GID-ADCの検査

 完成品で提供したものは必ず出荷試験されているのでたいていは大丈夫です。キットから組み立てたものなら、取り付け、極性、はんだ付けの不良と短絡、これらに気をつければほとんどが動きます。
 部品の取り付けミスは、部品配置図とにらめっこ。絶対に間違い無しが確信できるのならば、はんだ付けを半田ごてで再加熱してください。特にDB25と基板の接続個所ははんだが少なすぎる不良が多いようです。たいていは再検査で動くようになるはずです。 それでも動かなければデバッグを開始します。
 回路図にはこちらで測定した電圧が書き込んであるので、その電圧をテスターで確認しましょう。電源レギュレーターの周囲電圧が大事です。
 それでも駄目なら、MAX186周辺信号のオシロスコープでの観察、RS232C信号線の手動による制御と制御結果の確認とひろがっていきます。チャレンジしてみる価値は絶対にあると確信しますし、これこそがGID−ADCの提供目的なのです。

パソコンとOSの検査

 PC/ATはCOMポートにDB9のコネクタ、プリンタポートにDB25を採用しているので、DB25にGID-ADCを接続しても動きません、変換コネクタが必要です。プリンタポートに接続してもパソコンやGID-ADCが壊れないように設計されていますが、注意はしてください。

 シリアルポートが使えない設定になっていることがあります。利用可能かどうかを確認してください。ノートパソコンや一部のデスクトップではCOMポートが内蔵モデムや赤外線ポートに割り当てられていて、外部コネクタが使える状態になっていないことがあります。どうしてもCOMポート=2の設定で動かなかったので調査してみたらパソコンのCOMポート番号が1と3に設定されていたという報告もありましたし、同じCOM1や2でも標準の状態でないことも有ります。 があります。どちらもハイパーターミナルなど一般的な通信ソフトで確認できます。

 マザーボードのBIOS設定でCOMポートがディゼーブルになっていることもあります。 これらのマシン固有の問題にはこちらでは対処不可能なので、ユーザーが自力で解決するしかありません。が、ほとんどの場合パソコンのマニュアルをよく読めば解決できます。 最近のパソコン、特にショップ製のAT互換機ではコネクタにポート番号を書いていないものをよく見かけます。接続するたびにどのポートだったか悩むよりも、ポート番号をケースにマジックで書いてしまいましょう。

標準の割り当て状態
ポート アドレス
PC/AT COM1 3F8
COM2 2F8

ソフトの検査

GID-ADC付属のサンプルプログラムの中からお好みのものを使ってください、確実に動きます。 「動作がおかしくなったら再起動!」、パソコンはまず壊れないので、どんどん実験しましょう。

センサーの検査

GID-ADCが動作することを確認してからセンサの動作試験をしましょう。

GID-ADCの動作確認1:
 1.5Vの乾電池をアナログ入力とグランド間に接続して確認する方法です。乾電池なら安全に試験できます。

GID-ADCの動作確認2:
 GID-ADCの±5V出力端子から抵抗で分圧してアナログ入力に与える方法もあります。これが一番安全です。応用として、Tx'(TTL)出力端子の電圧を分圧してアナログ入力に接続する方法もあります。この方法では、TX端子の動作確認もできます。出荷試験はこの方法です。

★試験はGID-ADCの入力許容電圧(±5V)を越えないことをテスターで確認してから接続すること!
★±12Vでは確実にMAX186を壊します

小さなノイズや誤差

 乾電池など安定な電圧を測定しているのに数mV〜数10mVのノイズを観察することがあります。
 GID-ADCに使われているMAX186というアナログ・デジタル・コンバータは毎秒133k回の変換性能があります。その間に8ビットの制御信号と12ビットの出力が出てくるので、アナログデータの取得はおよそ300万分の1秒ぐらいの短い時間で入力を観察しているのです。
 最低でも3MHzのアナログ入力帯域と想像されます。(MAX186のデータシート(P8)には入力トラッキング回路は4.5MHzの小信号帯域巾を持つと記載があります)
 3MHzと言えば短波ですから強力な放送電波の領域です。この空中を飛び交う放送電波は10cmも電線が露出(1本でもループでも)していれば10mVぐらいの電圧を生み出します。入力端子、センサの接続部は短くきれいに、さらに入力には保護を兼ねてCRを入れて必要十分な帯域を通す努力が必要です。

対策:

ときどきAD変換に大きな誤差

2001/09/05

 Windows98などで動かしていると、たいていはちゃんと測定するのだが、100に1つぐらい大きな誤差測定の記録が残ることがあります。これはGID-ADCの測定中にWindowsの内部割込みがおき、GID-ADCの内部電源が不安定になっている事が原因になっていることが多い。
 組み立て説明書では内部電源に並列に30μFぐらいのコンデンサをつけるように指示していますが、根本的対策はGID-ADCへ外部から6V以上の電圧を与えれば解消します。

GID-ADC パソコン割り込みのトラブル

上のトレースはMAX186のDIN端子
下のトレースは電源レギュレータIC(78L05)の入力端子、約10V
 WIN95のDOS窓でGID-ADCアプリケーションを動作させているとPC内部でシステム割り込みが発生し、クロックが不安定な状態でペンティアム150MHzのマシンだと13〜15m秒停止する。
 CLIで割り込みを禁止してもよいが、システムクロックが遅れる問題が発生する。デジタルオシロのようなソフトであればCLIで時間分解能を保ち、後で時計を回復すれば回避できます。

デジタルオシロのソフトウェアはC++クラスライブラリ(GIDADC。CPP、H)にある
void SetCliMode(int i = 1)
これはバースト取り込みモードのときにだけCLIで割り込みを拒否しているのです。一般的に15m秒の時間誤差が許せる場合には、これは不可避です。
 この電源電圧の低下はMAX186の動作不良となって現れ、デジタル出力を零にし、大きな変換誤差となります。
 レギュレータの入力側に1μFがついているだけなので、最低でも10μF、できれば33μF以上の電界コンデンサを付加すれば電源の不安定さによるノイズは無くなります。
 外部にセンサをつける時にアナログ側コネクタの±8Vと書いてあるピンに外付けコンデンサを付加すればよいだろう。33〜100μF、16V以上のものを2つグランドに対して取り付けます。 

±5V端子の出力電圧がおかしい

 電源レギュレーターICの入力側に接続されている電解コンデンサ/タンタルコンデンサの極性を間違えるとGID−ADCのアナログ側に出力されている±5V電圧端子に3〜4Vの電圧しか出力されないことがあります。
 パソコンのCOMポートの出力能力が小さすぎるときもあります。当然測定結果もおかしくなります。要確認。

GID-ADC アナログ入力回路

 MAX186の入力等価回路は16pFに直列に10kΩがON/OFFするような形になっています。
 いったん変換が終了すると16pFに蓄積されていた電荷が無くなっているので、入力に電圧があると10kΩを介して再充電 が発生し、電流が流れることになります。


1:センサ+低速OPアンプの観察

 低消費電力型のセンサモジュールでは低速OPアンプを使っています。たとえば1000mVの出力電圧が出ていれば16pF+10kΩに見える負荷を与えても問題無いと考えられるかもしれません。

 しかし、10m秒ごとにデータを読み出せば、1回目は正常であっても、2回目の変換までにはOPアンプの負帰還で放電され た電荷を回復しようとして100Hz応答程度のバウンスがあります。たとえばOPアンプのこの周波数帯域の出力抵抗が50Ω だとしても、5mVぐらいの(50Ωと10kΩの比)読み取り誤差が出てきます。

 OPアンプはNFにより見かけの周波数特性は改善されていますが動的な安定性はそれほど良いものではありません。OPアンプを変えるのが難しいときには、以下の対策を施します。

☆ アナログ入力と並列に16pFの1000倍ぐらいの容量を並列にしてバッファの役割をさせる。1000倍ならば16n F=0.016μFです。だいたい0.01〜0.1μFでいいでしょう。

☆ ただしセンサモジュールなどできあいのOPアンプ出力へ直接にコンデンサを並列にすると、OPアンプの負荷が容量性になり発振しやすくなります。モジュールから1〜10kΩの直列抵抗を介して上記のコンデンサを充電して電圧を測定します。

 これで変換誤差が0.1%ぐらいにおさまります。

抵抗と容量の値は周波数特性とトレードになります。
☆ 10kΩ、 0.1μFでは−3dBの点は159H、毎秒1回測定ぐらいなら問題になりません。
☆ 1kΩ、0.01μFにすれば15.9kHzになるのでGID-ADCの実用最高変換速度で使ってもOKです。

2:センサ出力を見る

 ダイオードの両端電圧などを測定する場合には特に容量を並列にする必要はありません。しかし一般的に言って直列抵抗とコンデンサ をつけておくことはノイズ対策や異常電圧の保護のために有効と思われます。

3:一般的な精度

 これら対策でどれぐらいの変換精度がえられるか? 組み立て試験した数十台の実験では±1mVの変換誤差で納まります。±1mVにおさまらなければどこかがおかしいと思っていいでしょう。
 空中には電波が飛び交っています。その電波による起電力は1mあたり100mVぐらいのものなので、10cmの空中配線をするだけで10mVぐらいのノイズが乗ります。ADC全体としては毎秒1回とか非常に低速の変換でもADCは瞬間的な電圧を小さなコンデンサに記憶してからその電圧を変換するので非常に高周波特性が良いものなのです。
 ダイオード温度計のようにセンサーに供給される電圧や抵抗値が変換結果に影響するようなセンサは電源レギュレータICの出力電圧の精度が影響します。
 センサ出力にノイズが多いなどの理由で変換誤差が残るようでも、平均を取る対策を施す前になるべくノイズを減らすべく努力してから平均する手法を取るようにするべきです。

4:電源投入時の待ち時間

 RS232Cの電源を使っているので信号線の設定をしてから即時に変換を開始してもたいていは問題ありませんが、内部電圧が安定するまで1秒ほど待ってから変換を開始したほうがいいでしょう。この時間は電源部に付加したコンデンサ容量の大きさによって変わります。

5:外部アンプ、OPアンプの接続

 熱伝対や微小電圧を増幅するアンプを接続するとき、アンプの定常状態の出力が±5Vに収まっているだけでは安心できません。
 電源を入れた瞬間、熱伝対がはずれたときなど、いかなる状態でも±5Vまたは0〜5Vの範囲に収まっていなければADC−ICを壊してしまいます。
 対策はアンプ側から大きな電圧が加わらないようにするか、大きな電圧が出てもGID−ADCのアナログ入力からGID−ADCの電源に電流が回りこまないようにします。

対策1:
 アンプの電源をGID-ADCユニットの±5Vから取ることです。そうすればいかなるときにも過電圧にはなりません。RS232Cだけからの電流でたりないときにはGID-ADCの±8〜12と書いてある外部電源入出力のピンに外部電源を用意します。そうすれば内部で±5Vの30mAぐらいなら取り出せるでしょう。

対策2:
 アンプの出力からGID−ADCのアナログ入力に直接配線しないで、1〜10kΩの直列抵抗をいれて、GID−ADCのアナログ入力ピンの処で100p〜0.1μFのコンデンサでシャント(アースに落とす)します。ノイズ抑制とアンプの発振防止の効果もあります。

2001/2/20
一般的な波形を観察するための値
データ/毎秒 直列抵抗 並列容量 F@-3dB
<100 100kΩ 0.1μF 159Hz
100〜1000 100kΩ 0.01μF 1591Hz
〜10k 10kΩ 0.01μF 15.9kHz
精密な観測値(±1LSB)が欲しいとき
データ/毎秒 サンプル間隔 直列抵抗 並列容量 F@-3dB
1 1000m sec <100kΩ <1.51μF 15.9Hz
10 100m sec <100kΩ <0.15μF 159Hz
100 10m sec <100kΩ <0.015μF 1591Hz
漠然と波形を見るときの周波数応答から計算した値で、抵抗値も容量値もこの表以上であればかなりの安全性がある 急に電圧が(0→1V)に立ちあがったとして測定時間間隔内に±1LSBに追いつくための値 E(t) = (1-e^(-t/(CR)))  0.999=E(t) では CR=0.1455 となる 
抵抗値も容量値もこの表以下であれば±1LSBの精度が満足される
と言う訳で、目的により限界や最適地が異なるので、安全の上からは直列抵抗、並列容量は大きめにしましょう。

6:入力に過電圧を与えると

2000/06/20

 GID-ADCのアナログ入力はIC内臓保護以外の対策をしてありません。アナログ回路の試験をしている最中に±15Vの電源に触れたりすると確実に壊れます。

←アナログ入力に+20Vを接続しMAX186のパッケージが爆発した。

 テスターやデジタルオシロなどとして使用する場合には、入力に10〜100kΩの直列抵抗を入れるなどの対策を取りましょう。どれぐらいの直列抵抗、またはダイオード保護を回路にすればよいか研究のしどころと言えます。
 −12Vを与えて破壊した経験では、入力が負電源の−5Vと短絡し、おまけに負電源側の電源レギュレータも壊れてしまいました。これはほんの短時間におきます。+電源側でも同じ事が起きます。

7:過電圧の安全策(ブリーダ抵抗)

2001/02/26

 測定周期が早くないときは入力に安全抵抗を入れても、MAX186などの消費電流がほとんどゼロに近いので、入力からの流れこみ電流で内部電圧が5Vを超える可能性があります。GID-ADCをRS232Cからの電力だけで動かしているときでも、±の外部電源をつないで動作させても、この限界があります。
 ±の外部電源をつないでいるときは、内部±5Vに4.7kΩをグランドとの間につないで約1mAの電流を消費させると、入力からの流れこみ電流を総和して1mAまで許容するようになります。1chだけが問題になり100kΩを保護抵抗にしている場合では100Vの過電圧まで耐えることができる計算になります。
 こういう、余計に消費させる抵抗のことをブリーダ抵抗と言いますが、ひとつの案としてお知らせします。(不明点は問い合わせてください)

8:接点の状態を読みこみたい

2001/03/07

 一般的にはSWや接点をGND側に配置します。なぜならばケーブルなどで引き回すことが多いのでノイズ面で有利になるからです。
 図の5VはGID−ADCの15番ピンから出ているものを使えばOK。

●SWがOFF=オープン:
 アナログ入力設定がバイポーラ(±)になっていればOFFのときに+2047(フルスケール)になりますしユニポーラなら4095になります。
●SWがON=ショート:
 0V近傍になります。

 抵抗は220kΩぐらいがお勧め、アナログ入力に入っている0.1μFはチャタリングとケーブルからのノイズ抑制です。

9:隣の入力に電圧が漏れる

2003/11/01

 ch0に1.5Vを与え、ch1に何も接続しない状態ではch1が零Vにはなりません。MAX186の入力抵抗が驚異的に高いためにプラスチックケースを伝わる漏れ電流で電圧がかかっているのです。多くのアマチュアがこの現象に驚いて連絡をしてきます。何もつないでいないと言うのは放置しているだけなので零Vを保障しないことに気がついてくれるとうれしいですね。

長い時間間隔で誤差が大きい

 DOS/VではC++のライブラリでクラスをいくつもジェネレートすることによりGID−ADCを同時に4つまで使うことができます。
 GID−ADCを1つだけ使っているときには問題が起きないのですが、複数使って10分に一度のデータ収集をすると、GIDの消費電力が少ない(?はっきりとは解明されていない)ためにマルチポートカードがスリープしてしまうことがあります。スリープしてしまうといっても壊れたりするのではなく、電源供給と内部ドライバが休んでしまうらしいのです。温度が30度のときに50度などの誤差を発生しました。

 変換は毎秒行い、データの保存を10分毎に行うとエラーは起きないのです。特にオートパワーダウンと書いていないマルチIOカードでもこの症状が起きることがあります。
 この時には、10分に一度のデータしか必要なくても毎秒一度ぐらいの変換を繰り返しておくと動いたりします。完全な原因は解明されていませんが、当方で太陽電池と池の温度を計測するための予備実験中に発見しました。

DOSとWin、片方では動くのに一方は零ばかり

1997/8/23

 PC98、DOS/Vの一部ではWin版のソフトを動かした後にDOS窓でDOS版を動かしても零ばかりのデータが帰ってくることがあります。逆にDOS窓で動作させた後のWin版でも同じ事がおきます。
 推定ですが、I/Oを使うときにOSがI/Oを使っていることを検知し、それでたとえばDOS版が最初に使っていればDOS窓にI/Oを許可し、Win版には「存在するふり」をしているものと考えられます。
 この現象はシステムに関わることなのでDOS版、Win版の両方を使うときにはいったんWinシステムをシャットダウンしてから再起動するしか手法が無いようなのです。ともあれ両方を同時に使うことは実験中によくあることなので気をつけてください。

GID-ADCを壊した

 さっきまで動いていたGID−ADCが、突然動かなくなった! 実験中にはよくある話です。
 GID−ADCの故障、破損を疑う前に、まずパソコンとソフトの再起動、センサーの再検討などを行ってください。実は壊れてなかった、なんていうこともよくある話です。

 どうやっても動かない場合は、まずGID−ADCの電源レギュレーターICの入力電圧と出力電圧、MAX186のアナログ入力端子の電圧を検査します。レギュレーターの入出力が同じ電圧になっていたり、MAX186のアナログ入力端子が±5Vのどちらかに振り切っていたら、GID−ADCは確実に壊れています。このとき、ダイオードが一緒に壊れていることもあるので確認してみてください。

 GID−ADCを壊してしまったとき、何をしたら壊れたのか、なぜ壊れたかを徹底的に調査することをお勧めします。
参考→5:外部にアンプ、OPアンプを接続するとき

end