|
From: Christopher L. <chr...@pl...> - 2006-06-11 11:22:56
|
Frank, tnt4882-users,
I did not use the linux-gpib driver for several months, but started
experimenting with it some days ago.
For some reason I cannot get the master GPIB board to work properly any more.
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".
That is as far as a got, I am not quite sure if I currently understand
correctly how that page-in stuff is used in the tnt4882 driver, so my
assumption about ADSR might be wrong.
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!
Finally two (hopefully) more simple questions: 1st: Does somebody have
documentation on the master/CIC mode of the tnt4882 that he could post here
on the list and 2nd: does somebody have a link to a full nec7210 datasheet?
Both items seem to be hard to find on the internet.
Many thanks in advance
regards
Chris
|