Copyright 2018 Toby Thain toby at telegraphics.com.au
Item | Qty | Digikey Part # |
---|---|---|
Protoboard | 1 | SBB1605-1-ND |
IC socket 20 pin† | 2 | ED11088-ND |
Header 15 position | 2 | ED11218-ND |
Decoupling caps, ceramic 0.1µF | 2 | BC1154CT-ND |
Data Transceiver SN75160BN | 1 | 296-6845-5-ND |
Control Transceiver SN75161BN | 1 | 296-6847-5-ND |
GPIB cable | 1 | Ebay - search |
Arduino Nano compatible | 1 | BrianPTY's Tindie store |
USB Mini-B cable for Nano | 1 | |
Hookup wire | ||
Zip tie |
It's assumed you already have tools including solder, iron, drill, wire strippers, X-acto knife, etc.
† My version used the 22 pin DS75162AN, so if you obtain one of these (e.g. ebay) order the 22 pin socket.
Item | Qty | Digikey Part # |
---|---|---|
IC socket 22 pin | 1 | ED11093-ND |
Pull-up and pull-down resistors ensure the transceiver will read a defined logic level while these pins are high-Z but before transceiver direction is switched.
- D1-8 - pull up at GPIO/terminal - Arduino internal pullups can be used
- EOI - pull up at GPIO/terminal - Arduino internal pullups can be used
- DAV - pull up at GPIO/terminal - Arduino internal pullups can be used
- NRFD - pull down at GPIO/terminal with 22kΩ resistor to GND
- NDAC - pull down at GPIO/terminal with 22kΩ resistor to GND
Adapter fully works. For example I have been able to capture curve data and hardcopy imagery.
You can connect to the adapter and send GPIB commands interactively. Find the device name for the USB/serial port on the Arduino - e.g. check Tools->Port in the Arduino IDE.
E.g. on my system, screen /dev/cu.wchusbserial3d20 115200 -L
gives you a terminal
opened on that port.
-
To exit
screen
but stay connected to the port, type control-A
d
- You will not be able to upload new code to the Arduino while connected
-
To exit and close port, control-
A
control-\
(and typey
at the prompt) -
You will probably want to type
++v 1
at the start of your session to enable interactive features like input echo and read-after-write (auto 1
).2018-07-04 GPIB/Arduino Controller by Toby Thain <[email protected]> Use ++v 1 for interactive session. See ++help > ++addr 2 > *idn? TEKTRONIX,TDS 460A,0,CF:91.1CT FV:v1.0.2e >
There are test routines which can be enabled in the source. Use them in combination with the steps below.
- Disconnect from bus
- Output test #1
- Send square wave to TE (D13), PE (D10) output pins, verify on Arduino side - PASS
- Output test #2
- Send square wave to each permanent output pin, verify on Arduino side and bus side - PASS
- ATN (D12)
- IFC (A4)
- REN (A5)
- Send square wave to each permanent output pin, verify on Arduino side and bus side - PASS
- Input test #1
By hand set LOW (ground through a 1K resistor for current limiting)
and set HIGH (VCC through a 1K resistor for current limiting), verify at Arduino
(e.g. read input and print to serial) - PASS
- SRQ
- Output test #3
- Set TE (Talk Enable) HIGH, PE HIGH, ATN HIGH
- Send square wave to each switchable output pin, verify on Arduino side and bus side
- B1-8 (D2-D9) - PASS
- EOI (D11) - PASS
- DAV (A1) - PASS
- Input test #2
- Set TE (Talk Enable) HIGH, PE HIGH, ATN HIGH
- Verify NRFD as input - input test #2 - PASS
- Verify NDAC as input - input test #2 - PASS
- Set TE (Talk Enable) HIGH, PE HIGH, ATN HIGH
- Input test #3
- Set TE (Talk Enable) LOW
- Each switchable input pin: By hand set LOW and set HIGH, verify at Arduino
- D1-8 - PASS
- EOI - PASS
- DAV - PASS
- Output test #4
- Set TE (Talk Enable) LOW
- Verify NRFD (A2) as output - PASS
- Verify NDAC (A3) as output - PASS
- Emanuele Girlando - ARDUINO UNO as a USB to GPIB controller
-
My project is completely independent Emanuele's design, but we did both choose Prologix compatibility. Note Emanuele's project is direct connect to Arduino GPIO, without buffering. This may affect usage with multiple device buses.
This file is part of "GPIB Adapter", an Arduino based controller for GPIB (IEEE 488). Copyright (C) 2018 Toby Thain, [email protected]
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-