04-19-2007 11:15 AM
To transmit I do the following after the chip has been initialized.:Set the Chip to ONE CHIP MODE (during initialization)
Software Reset
Reset the FIFO A and B BuffersMy questions are:
Set to WRITE (CFG Register) and 8 Bit Mode
Set the 2's Complement of the Counters (Cnt0 and Cnt1) for the number of bytes to transmit
Wait till the FIFO Buffers are cleared
Write in blocks of 32 bytes the data to FIFOB and count down internal defined byte counter.
Exit loop when counter reaches 0.
Wait till the FIFO Buffer is empty by checking the HR_NEF Flag.
Reset to Listener.
1. For short messages/strings that I transmit, all is well
2. When I start transmitting longer buffers of about 40 to 60 bytes, I start getting Timeouts on the Listener.GPIB call ibrd FAILED. ibsta=0xc100, ibcnt=0x3c, iberr=EABO3. When I analyze the data recieved, I usually see either all the bytes but the last one or 1 byte missing in the stream.
I/O operation aborted (timeout)
4. What could be the cause of this?
5. Can this be a purely hardware issue?
6. Am I outputting correctly to the GPIB?
7. Where can I get more information on how to transmit/recieve data. I only have the TNT488 programmers Reference book which has so many registers but doesn't give a flow of how to setup and run in an orderly method.
Thanks to anyone who is out there!!
04-26-2007 03:24 PM
04-30-2007 08:38 AM - edited 04-30-2007 08:38 AM
I found some sample code on National Instruments' drivers page for GPIB.
You can download the zip file and it shows how to communicate and setup various types of writes using interrupts, DMA, and PIO.
Maybe this will give you the sample you need to verify your program.
http://digital.ni.com/softlib.nsf/websearch/A47F3CEA412F61C6862569EF00012F10?opendocument&node=13207...
-Lamb
Message Edited by Lambsauce on 04-30-2007 08:38 AM
05-01-2007 06:32 AM
Dear Roland,
@Roland A. wrote:
Hello Eytan:
Thank you for contacting National Instruments. Could you provide a spy capture from the host end? Also, an analyzer to check if the bytes are coming across the bus. Which version of NI-488.2 driver and what interface type are you using to communicate with the chip? I want to check if EOI is getting sent.
05-09-2007 10:39 AM
05-10-2007 08:39 AM
I think your problem may be your writing. You say that you:
@Eytan wrote:
To transmit I do the following after the chip has been initialized.:Reset the FIFO A and B Buffers
Set to WRITE (CFG Register) and 8 Bit Mode
Set the 2's Complement of the Counters (Cnt0 and Cnt1) for the number of bytes to transmit
Wait till the FIFO Buffers are cleared
Write in blocks of 32 bytes the data to FIFOB and count down internal defined byte counter.
Exit loop when counter reaches 0.
Wait till the FIFO Buffer is empty by checking the HR_NEF Flag.
Reset to Listener.