A GPIB Interface.
Project Key Data
- Description: https://www.github.com/jandejongh/pa3gyf-gpib/blob/master/README.md
- Started: 20160920
- Note: This project is entirely under GitHub VCS.
- Status: [pre-alpha]
 Some Research
Today, I performed some desk research and found the following two interesting products/projects:
- The Arduino YÚN (v2) embeds a Linux(-based) controller and supports Ethernet (802.3 10/100Mbit/s). At last proper IP/Ethernet for the Arduino… As far as I understand, the Linux part runs on a separate controller (Atheros AR9331) next to the ATMega (in fact, an ATmega32U4). The ATMega still only has 2 (well, 2.5) KB of RAM, but the Linux part has 64 MB DDR2 RAM. The latter should be enough to run some dedicated daemon for client connections.
- Twilight Logic has a very serious project ‘AR488’ on github on GPIB interfacing to an Arduino. Pretty much focused at USB, and no support (apparently) for the Arduino YÚN (v2), unfortunately. There is even support for (optional) 7516x bus transceivers.
 More Research
Today, I did some more research:
- There is an extensive blog/forum on the AR488 on EEVBlog. It’s huge…
- The 8 data bits should really be read/written in a single machine instruction, instead of sequentially. This seems to be possible indeed with the Arduino YÚN (v2), see https://forum.arduino.cc/t/digitalread-mutiple-pins-against-multiple-solutions/610629/4. (PINB, PINC, and PIND; see https://www.arduino.cc/en/Reference/PortManipulation.) Not sure if this is used in AR488 though.
- Added documentation on 7516x bus transceivers to working directory. The 75160B is for the data lines; the 75161 for the control lines (single-controller operation). The 75162 is a (incompatible) replacement for the 75161 for multi-controller operation. Supply required is 5V. Required current per transceiver is 110mA (rough worst-case figure here). Ordered 10×75160 and 10×75161 (in basket; order not placed yet). Cost is between 2 and 3 Euros/each… Packaging is SMD, BTW.
- See also https://raw.githubusercontent.com/elektronomikon/raspi_gpib_shield/master/Documentation/RPi_GPIB_Shield.pdf for a schematic of the bus interface. Note the need for 3k3/6k8 resistor arrays (one of each per transceiver),
 Yet Another More Research
Today, I found that:
- The Linux part on the Arduino YÚN (v2) is not open source hardware. The software is based upon OpenWRT and quite customizable, but the hardware is a “hw-blob” based upon Qualcomm chipsets. The sets back my enthusiasm for an Arduino(-YÚN)-based solution by a factor 100…
- I do not like the USB/FTDI/serial-based connection between the Linux and ATMega parts of the YÚN. Nor do I like the Bridge-library approach. I’m afraid the ATMega (Arduino) SRAM and processing speed are insufficient for a high-end interface…
- I really need the think on the use of PoE.
- While seeking alternative Linux-based micro-controller solutions, I stumbled upon this massively interesting page of Jay Carlson on embedded-Linux hardware/software combo solutions.
- More Google Research(TM) revealed the BeagleBone series of micro-controller boards. These boards seem to combine very well Linux, Ethernet and massive/fast GPIO. I was particularly interested in the BeagleBone Green (https://wiki.seeedstudio.com/BeagleBone_Green/) and the BeagleBone Black (https://media.digikey.com/pdf/Data%20Sheets/Seeed%20Technology/102110001_Web.pdf). The BBG (BeagleBone Green) seems to be available from Kiwi Electronics. Prices I saw were at the € 60 ballpark figure.
Time for my curry dish… 73, Jan.
 More Research, Again
- Looking at BeagleBone variants, the Black and Green are the best candidates. The Black has video (HDMI), the Green does not. On the other hand, the Black uses a nice +5V jack for powering the unit, whereas the Green uses (micro-)USB. In addition, the Green is roughly €10~€15 cheaper than the Black, and has two Serial I/O Grove connectors (one for I2C). In terms of I/O-headers (and other specs), they are equivalent. I have a slight preference for Green over Black.
- Both Green and Black come in a wireless variant (sacrificing Ethernet), which we do not want!
- Many options (GPIO, SPI, possibly with one of the two PRUs) for getting data into and out of Linux (also: filesystem-based I/O; memory-mapped I/O, C/C++/Python support).
- However, quite complicated and not as well documented as (e.g.) the Arduino family (or the RPi for that matter).
- Need to consider 3.3V in-/outputs!
- Still, believe it can be done -> Added 2x BB Green to my Mouser Basket.
 GPIB Custom IC Research
Today, I added a few resources on GPIB Custom ICs in my project’s documentation directory. In particular, I added the manual/datasheet of the TMS9914A General Purpose Interface Bus (GPIB) Controller, which is still available from ebay…
 Some Connector Research
For the GPIB connector, we take a look at the ProLogix-GPIB-ENET:
The connector has 24 positions and is a Centronics female type.
I’m a bit concerned about the mounting holes and screws (latter appear to be absent).
For the moment, I added three of each in my Mouser basket.
 Found IEEE-488
Today, I finally found my copies of the IEEE-488 Std. (They are not available here.) I found the recommended resistive termination:
- RL1: 3 kΩ ± 5% (to Vcc)
- RL2: 6.2 kΩ ± 5% (to ground)
Solutions found (e.g., https://raw.githubusercontent.com/elektronomikon/raspi_gpib_shield/master/Documentation/RPi_GPIB_Shield.pdf) typically use 3.3 kΩ and 6.8 kΩ.
I added 20x 3.3 kΩ and 20x 6.8 kΩ resistor arrays (8 per array) to my Mouser basket, along with 100x 2N7002L for 3.3V-5V Level Conversion according to http://joe-ideas.blogspot.com/2013/09/bidirectional-33v-5v-evel-shifter.html. Also, 10 kΩ resistor arrays were added to the basket.
Well, I ordered and paid the basket at Mouser. Time to brace ourselves for the massive France-Germany soccer game! 73, Jan.