The Arduino HP-IB Adapter is a device that implements the HP-IB protocol in software. The device consists of an Arduino Mega board, a prototype Shield and an Ethernet Shield for connection to the LAN. It offers the means to provide support for HP-IB even when dedicated controllers such as the TMS9914A are no longer available.
The main objective of this project is to make a peripheral that is compatible with existing HPIB devices, so it must respect bus loading specs, and must be able to back off when other devices are talking. It should also avoid hogging the bus (which in some respects it still does when it is sending diagnostic output to the serial port).
For this reason I used the standard bus driver chips (the SN75160A and SN75162B). I used the `162 because I did not understand how the HP-IB handshake worked and hence had a lot of trouble with the SN75161 (the difference is that the 161 is slave only, while the 162 can act as both slave and controller). After lots of head scratching and looking at Logical Analyser traces of the bus, I have finally figured out what I did wring, but this will have to wait for another video. In the mean time you can look at the code to see how it works.
The parallel poll support needs to be in hardware as the timing requirements are too tight for the Arduino, and in any case once you have soldered the two bus driver chips and the HPIB connector and wired them together, adding the 74LS02, transistor and resistor is not really an issue.
The low level HP-IB routines provide the basis for the implementation of various protocols. In this version of the Arduino HP-IB Adapter software we support the Amigo disk drive protocol and a rudimentary (send only) printer protocol.
|
|