Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#4 Old Keithley instruments hang GPIB bus

open
nobody
None
5
2005-10-12
2005-10-12
Felix Jaeckel
No

Hi,
I am having some trouble with some older Keithley
instruments blocking the GPIB bus.
I am using the Linux-GPIB 3.2.05 Driver on Gentoo
Kernel 2.6.12-gentoo-r6 with a NI AT-GPIB Rev. E2.
Everything works great with HP34401A, Keithley 6221,
Keithley 7001, SRS830, Lakeshore 330.
Using ibtest I can "*IDN?" all the instruments and read
their replies.
When I power up any of the older Keithley instruments
(617, 224, 196, 706) and execute a read or serial poll
on one of the newer devices, the GPIB bus hangs up
after a few seconds. After that I have to power off the
Keithley, remove and reload the driver to resume
communications. Communication with just the old
Keithleys alone works fine, though.
Some debugging I have done is shown below. It seems
that with the old instruments the ATN and NDAC lines
stay on all the time.
Maybe there are just some settings (eosmode, EOI ?)
that I need to change?
It's probably just my lack of understand of the GPIB
protocoll...

Thanks for you help!
Felix Jaeckel

Debugging info:
----------------

Without old Keithley, after write/read
Interface: l
DAV NDAC NRFD IFC REN SRQ ATN EOI
off on on off on off off on
ibsta = 0x164 < CMPL CIC LACS > iberr= 0

Without old Keithley, after interface clear
Interface: l
DAV NDAC NRFD IFC REN SRQ ATN EOI
off off off off on off off off
ibsta = 0x160 < CMPL CIC > iberr= 0

-------------------
With Keithley:
Device: w
sending string: *IDN?
ibsta = 0x2100 < END CMPL > iberr= 0 ibcnt = 6

Device:r
trying to read from device...
InternalReceiveSetup: command failed
ibsta = 0xe100 < ERR TIMO END CMPL > iberr= 14 EBUS
14: Bus error ibcnt = 0

Device:s
ibsta = 0xc100 < ERR TIMO CMPL > iberr= 14 EBUS 14:
Bus error

Interface: l
DAV NDAC NRFD IFC REN SRQ ATN EOI
off on off off on off on off
ibsta = 0x174 < CMPL CIC ATN LACS > iberr= 0 ibcnt = 0

Interface: i
Inferface clear sent
ibsta = 0x170 < CMPL CIC ATN > iberr= 0 ibcnt = 0

Interface: l
DAV NDAC NRFD IFC REN SRQ ATN EOI
off on off off on off on off
ibsta = 0x170 < CMPL CIC ATN >

> dmesg
gpib command timed out
gpib: error writing gpib command bytes
gpib command timed out
gpib: failed to setup serial poll

> cat /etc/gpib.conf
interface {
minor = 0
board_type = "ni_nat4882_isa"
name = "NI-GPIB"
pad = 0
sad = 0
timeout = T3s

base = 0x2c0
irq = 9
dma = 7
master = yes
}

> lsmod
Module Size Used by
tnt4882 23396 0
nec7210 16640 1 tnt4882
gpib_common 34116 2 tnt4882,nec7210
tulip 50208 0

> cat /proc/interrupts
CPU0
0: 73696483 XT-PIC timer
1: 23606 XT-PIC i8042
2: 0 XT-PIC cascade
9: 2682 XT-PIC atgpib
11: 345454 XT-PIC uhci_hcd:usb1, eth0
12: 368632 XT-PIC i8042
14: 73693 XT-PIC ide0
15: 11 XT-PIC ide1
NMI: 0
ERR: 0

Discussion