![](https://static.wixstatic.com/media/b64c90_2f7b3486833d40d5b64ce74cab7624dc~mv2.jpg/v1/fill/w_288,h_216,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/b64c90_2f7b3486833d40d5b64ce74cab7624dc~mv2.jpg)
![PIC_GPIB_20100713w.jpg](https://static.wixstatic.com/media/e34519_40c307a64f9e4e4eae5d265575ed6af5~mv2.jpg/v1/fill/w_600,h_415,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/PIC_GPIB_20100713w.jpg)
NAT7210 GPIB回路図(水魚堂BSch3Vで描画)
NAT8210をPIC 16F887からコントロールするための回路です。
GPIBのバスレシーバはSN75160, SN75161を使用しています。
試験段階なので、PIC 16F887は、実際にはマイクロテクニカのPICD-500EX3を使用して、必要な信号のみを取り出しています。
NAT7210のVcc +5Vは、PICD-500EX3から供給しています。
PIC 16F887は、MCLR、RA6、RA7以外の全てのピンをI/Oに設定しています。
NAT7210のCLK(クロック)は、PIC 16F887のRA6 CLOCKOUTから供給しています。PIC 16F887は内部クロック 8MHzで動作させているので、RA6 CLOCKOUTは、その1/4つまり2MHzとなります。
NAT7210のレジスタアドレスの指定(RS2,1,0)は、RE2,1,0を使用しています。
8bitのデータライン(D7-0)は、PORTCを使用しています。当然ですが、PORTCをR/Wで使うので、都度、入力ポートか出力ポートにするかを切り替えて使います。
PORTDはLCDの制御に使用しています。
NAT7210のCS(Chip Select)は、常時Low trueとするためGNDに落としています。
R/Wは、RB1,2を使用しています。Z80のようなI/Oモードが無いので、プログラムでLow/Highを制御します。
RESETは、起動時一度だけhighになる回路でもよいのですが、今回はRB3を使用してリセットをかけています。
INTはRB0/INTにつないでありますが、割り込みを使わなければつなぐ必要はありません。
DRQ、_DACKもつないでありますが、DMAを使わなければつなぐ必要はありません。
配線はいまのところブレッドボード上でバラック配線しています。
細かいところまで確認してませんが、とりあえずこれで動いています。ご参考まで。
(JF1VRR)