ISA cards, (NI ISA tnt4882 evaluation board, tnt4882 on
custom board on ISA bus) fail to operate in master mode
with
master = yes
in gpib config.
PCI tnt5004 boards work correctly as master in the same
machine, only the isa tnt4882 cards do not work as
master. (an old pcIIa in this machine also works
properly as master)
This was tested with a PCI tnt5004 card (working as
master) and a tnt4882 NI eval board (not working as
master) on a Pentium 150 ISA/PCI board. The addr, irq,
DMA of the ISA cards are set correctly since these
boards work properly as slaves.
Here is the detail information (as per the email sent
recently)
For some reason I cannot get the master GPIB board to
work properly.
Despite that master=yes in the gpib.conf of the master,
I keep getting the
following output in ibtest:
r
enter maximum number of bytes to read [1024]: 12
trying to read 12 bytes from device...
InternalReceiveSetup: command failed
received string: ''
number of bytes read: 39
gpib status is:
ibsta = 0x8000 < ERR >
iberr= 1
ECIC 1: Board not controller in charge
ibcnt = 39
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller
only)
send (d)evice clear (device only)
change remote (e)nable line (system controller
only)
(g)o to standby (release ATN line, system
controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system
controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
A write attempt loks like this:
: w
enter a string to send to your device: ggfd
sending string: ggfd
gpib status is:
ibsta = 0x8000 < ERR >
iberr= 1
ECIC 1: Board not controller in charge
Pretty much the same happens on most of the other
commands in ibtest.
Doing "runtest" with ssh gives the following result:
./runtest --pad 3
Password:
==========
Output of master run:
==========
option: pad 3
option: run as bus master
Finding board...OK
master_read_write_test...FAILED: libgpib_test.c line
228, ibsta 0x8000, iberr
1, ibcntl 0
loop 0
==========
Output of slave run:
==========
option: pad 3
option: run as slave
Finding board...OK
slave_read_write_test...FAILED: libgpib_test.c line
275, ibsta 0xc100, iberr
6, ibcntl 0
loop 0
root@i586-OE-MACHINE:/usr/share/gpib/test-tools#
Configuration files:
gpib.conf of master:
root@i586-OE-MACHINE:/usr/share/gpib/test-tools# cat
/etc/gpib.conf
interface {
minor = 0
board_type = "ni_isa_accel"
name = "GPIB"
pad = 6
sad = 0
eos = 0
set-reos = no
set-xeos = no
set-eot = yes
base = 0x240
irq = 5
dma = 6
master = yes
timeout = T10s
}root@i586-OE-MACHINE:/usr/share/gpib/test-tools#
gpib.conf of slave:
root@i586-OE-MACHINE:/usr/share/gpib/test-tools# cat
/etc/gpib.conf
interface {
minor = 0
board_type = "ni_isa_accel"
name = "GPIB"
pad = 1
sad = 0
eos = 0
set-reos = no
set-xeos = no
set-eot = yes
base = 0x240
irq = 5
dma = 6
master = no
timeout = T10s
}root@i586-OE-MACHINE:/usr/share/gpib/test-tools#
(the same problem exists with board_type = "ni_isa")
General configuration:
Kernel 2.6.16
Both GPIB boards are NI ISA tnt4882 boards.
linux-gpib-3.2.06+cvs20060604 (which I think is more or
less the same
like .07)
I started to debug the library and the driver, not
entirely succesful. From
what I could see it seems that the master board does
not get set master or
CIC properly, even with master=yes in the gpib.conf. I
could not easily find
the place in the driver code where a tnt4882 chip is
being made CIC, it also
seems that the NI documentation for the tnt4882 lacks
most of the information
on how to make this chip master. I understand that the
tnt4882 is handled
like a nec7210, with something called page-in to make
it look like a true
nec7210.
The interesting thing that I found (with a logic
analyser on the isa bus) is
that if the master board reads ADSR bit7 (which is
supposed to indicate CIC,
I believe) it is clear, as a consequence then leading
to "ECIC 1: Board not
controller in charge".
Did anybody see similar problems? That "ECIC 1: Board
not controller in
charge" thing with the ni_isa or ni_isa_accel driver?
Any help is very much appreciated!
Logged In: YES
user_id=129750
My guess would be that your boards have tnt4882 chips on
them (as opposed to tnt4882c chips). The tnt4882 doesn't
support acting as system controller.