USB-GPIB変換

[ リスト | 詳細 ]

記事検索
検索

全2ページ

[1] [2]

[ 次のページ ]

VISAに対応できたので、色々なツールが使えるようになったのは良いのですが、高機能なアプリが多いので使う側にとっては決して敷居の低いものではありません。
アプリもさることながら、それ以前にVISA環境の構築や設定から始めなければならないのでここで躓いてしまうこともままありそうです。

そこで、シリアルポートのドライバーさえインストールすれば簡単な設定のみで使用できるアプリをざっくり起こしました。
複雑なことをしたければVISA経由で使えば高度なアプリが使えるのでただハードコピーが欲しいだけなら導入も操作も簡単に越したことはありませんし、
よって機能としては、画面のハードコピーと、「ラン、ストップ、そしてシングルトリガー」の切り替えのみとしました。
設定はシリアルポートの通信速度と装置のGPIBアドレスのみとしました。

シリアルポートに通信速度は、最大1Mbpsまで、
9600/19200/38400/57600/115200/250000/500000/1000000bps
に対応します。
115200bps以上が9600の整数倍になっていないのは、ボーレートジェネレーターの分周率が小さくなり、誤差がおおきくなってまともに通信できなくなる為、源クロックの1/整数となるボーレートとしました。
最大の1Mbpsでも全く問題なく通信できます。
ただまぁ、250Kbps以上は通信速度より処理速度の方が遅いようで、所要時間は全く変わりません。

イメージ 1

上の画面は、ラズパイのI2S出力と、XMOS U8 DDCのI2S出力を比較の為、画面ハードコピーを取り込んだものです。


ここから先はこの書庫の内容には一切関係無いのですが、

CH1 LRCK, CH2 SDATA, CH3 BCLKを観測しています。
サンプリングレートは44.1KHzです。

XMOSの方はラズパイ出力に比べBCLKの周波数が倍になっています。

ビットクロック周波数=サンプリング周波数×量子化ビット数×チャンネル数
となっているのが普通と思っていましたが、そうでも無いのですね。

判りにくいのでBCLKを拡大してみます。

ラズパイI2Sの出力
イメージ 2

XMOS U8 DDCの出力
イメージ 3


やはりBCLKの周波数は倍のようです。


LRCKのエッジでシフターをリセットし、BCLKに従ってSDATAを取り込めば、LRCKの周期内に全ビットの転送が終了する限り、BCLKの周波数がなんであれ良いのかも知れませんがI2Sの仕様では許容しているのでしょうか?判りません。

ユニバーサル基板上に組みました。
基板は、aitendoで購入した、小型ケース付き用のユニバーサル基板です。
イメージ 1

裏面
イメージ 2


ケース
イメージ 3

2か所穴を開けるだけなんですが、動いてしまうと後回しになってしまいます。悪い癖です。

テクトロ純正WaveStarがちゃんと使えるようになりました。
イメージ 1

WaveStarが使えるようになったことで殆どの操作がPCから行えるようになった訳です。
シリアルポート経由の場合ボーレートが19200bps以上に設定できない為、結構待たされることがありますが、測定器の遠隔操作の共通プラットホームとなっているVISA経由での制御が出来るようになったことのメリットは大変大きいと思います。

LabViewも試してみましょう。

中華Aruduino NANOが来ました。
ちょうど一週間でしょうか?思っていたより早く来ました。
イメージ 1

特に半田付けが酷いとかはありませんが部品が曲がって取りついていたりします。
中華基板では仕方ないでしょう。

早速ブレッドボードに組み、動作チェックです。
コネクタはDDKのコネクタを買いました。ねじ止めではありませんが緩くて抜けるようなことは無いようです。
イメージ 2


入出力ポートがBポートとCポートにまたがることで転送レートへの影響が心配でしたので測定してみました。
イメージ 3

10バイトの転送に54μ秒要しています。
ここから、大体185KB/S程度の速度が出ていることが確認できました。
8MHzのCR発振器の時には110KB/S程度でしたのでクロックが倍の16MHzになったことで、転送効率が低下した分を相殺してなお転送速度向上となっているようです。

PCとの接続がシリアル接続ですので十二分な速度と言えます。

もう一点、精度の高いクロックが使えるようになったのでシリアルポートのボーレート115200bpsまで安定して送受信できるようになりました。
おかげでハードコピーのデータ転送速度が随分速くなり、8ビットカラーデータの転送が7〜8秒、モノクロなら3〜4秒で完了します。

これなら良いですね。
問題は速い転送レートを生かすにはアプリを起こすしかないところですが大したアプリでも無いので正月にでも作ってみましょう。

Aruduino nanoを使用する前提で回路図を起しました。ついでにアートワークも。

回路図
イメージ 1

アートワーク
イメージ 2


困ったことに8ビット全てを入出力できるポートが無いのでDIO1〜6とDIO7,8を異なるポートに割り当てなければなりません。
ビットのANDやORを取りながら入出力しなければならないので転送速度に大きく影響が出そうです。

その代わり、16MHzのセラミック発振子が奢られますので実行速度が倍になるので相殺できるかも知れません。
また、シリアルポートのボーレートを大きく上げることが出来るようになります。

というのも、内蔵のCR発振器は温度による周波数変動も大きいし、そもそも発振周波数が結構ばらついています。
AVRを使い慣れていない頃にはこの事に気が付かず、個体により通信が不安定になることがある症状に悩まされ、ドツボにはまったことがありました。
内蔵CR発振器を使用する場合はボーレートは精々38400bpsに留めるべきで、それ以上のボーレートが必要な場合は水晶やセラミック振動子を外付けするべきでしょう。

こうなると欲が出てきてボーレートを115200bpsまで上げたくなります。
そうすれば100KB/S以上の速度で転送できるようになるので恐らくはGPIB側の転送速度に引けを取らない速度となるでしょう。

ただ、入手可能なリモートアプリで19200bps以上の設定が出来るものがありません。
どうせ欲しいのは画面のハードコピーだけですからアプリも作ってしまいましょう。
ちょっと片手間のつもりだったのですが。。。

※2016/12/10 20:13 加筆
115200bpsで100KB/Sは出ません。10KB/S以上の間違いです。
また、10KB/SならGPIBの速度の方が圧倒的に早いと思われます。

全2ページ

[1] [2]

[ 次のページ ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事