回路図の説明
PICを使った簡単な変換アダプタは、ネットなどで、ときどき見かけます。しかし、それらのものは、受信専用(画面のハードコピー)だったり、使い方がよくわからなかったりします。また、気になるのは、シュミットトリガ(ST)入力のポートをコントロールやデータポートに使っていることです。
これは、GPIBのターミネータの分圧比の3.37VをHと判断できないものが出てくるのではないかと心配です。
上記の入力レベル点や、できるだけ簡単にするということで考えたのがこの回路図です。
USB部分はFTDIのUSB・シリアル変換ケーブル(TTL-232R-5V)にまかせて、シリアルとGPIBの変換をPIC16F1827で行っています。
18ピンのPICでI/Oポートとしては、16本使用できるのですが、やはり、すべてを網羅するには、数が足りませんので、RENについては、抵抗でグランドに接続し常にLowとし、IFCについてはスイッチ操作でコントロールするようにしています。
設計当初は、PICには使い慣れた16F819を使用しており、RAポートは、RA0〜RA3がTTL入力RA4〜RA7がST入力、RBポートはすべてTTL入力でしたので、
以下のようにしました。
RA0(TTL):DAV
RA1(TTL):NFRD
RA2(TTL):NDAC
RA3(TTL):EOI
RA4(ST):RS232の送信
RA5(ST):RS232の受信
RA6(ST):SQR (TTL入力が必要ですが、SQ未対応のためOKとした)
RA7(ST):ATN (出力のみ)
RB0〜7 データバス
(*入力のタイプは、PIC16F819の場合です。)
また、UARTについては、PIC内臓のUARTがあるのですが、RBポートをデータバスのポートとして使用するため、ソフトUARTを使用することにしました。
しかし、いろいろと評価していく途中で16F819では、内部のクロックが8MHzのため、シリアルのボーレートが9600程度が限界となり、マルチメータなどのデータの少ないものでしたら、問題ないのですが、オシロの波形などデータの多いものでは、かなりの時間がかかることがわかりました。
そこで、新しいシリーズの16F1827を使用することにしました。16F1827は、16F819とピン配置が同じで、内部のクロックを最大32MHzにし、ボーレートも38400にすることができます。
それと、16F1827は、RBポートもRAポートもすべてTTLですので、GPIBの用途の使用するには、都合がいいです。
PICとGPIBの接続は、100Ωの抵抗を入れています、直接接続しても大丈夫ですが、保護とバッファ的な目的のため入れています。このため、引きこめる電流に制限が出てきますので、接続できるGPIB機器としては最大5台程度ではないかと思います。
USBシリアルケーブルにTTL-232R-5Vでは無く、秋月電子の超小型USBシリアルモジュールAE-FT234Xを使用しても同様に動作させることができます。