01-07-2008 02:10 PM
01-07-2008 05:40 PM
01-08-2008 11:48 AM
01-08-2008 02:10 PM
01-08-2008 04:26 PM
You are right, if there is a reply byte in the data out register, and an SPE is issued, the device will reply with a status byte, and you will lose the previous data in the register. To get around this, you will need to wait to put the data in the output register until after the device is polled. Optionally you can simply remove the SPE altogther. So long as you know what device is asserting the SRQ, you don't need to poll the device. This could cause problems if you have multiple devices on the bus.
Also, what language are you programming in? LabVIEW, C++, Basic? Also, are you using the NI-488.2 driver, or are you developing your own driver?
I hope this helps, and if you have any additional questions don't hesitate to post back.
Thanks!
01-08-2008 05:10 PM
01-08-2008 06:10 PM
01-10-2008 01:40 PM
01-10-2008 05:19 PM
Hello,
There could be quite a bit causing this problem. I could probably get a little farther by getting the gpib ASIC used in your instrument. I would also like to know what your instrument's firmware is based on. Did the programmer (who is unfortunately absent) use the example provided by NI (ESP-488)?
The usual way of doing these types of actions is to only perform one action through the GPIB at a time. According to the TNT4882 manual, there are certain actions that need to take place to tranfer data. However, these actions should not be started until after the instrument is addressed to talk or listen by the controller. One of the last things to happen is actually putting data into the FIFO or Data Out register. Under what conditions does your instrument assert SRQ? Is there a way to make sure that your instrument is not requesting service during any transfer or during preparation for a transfer? I believe we use locks to make sure these things don't happen.
I hope this helps,
Steven T.
01-10-2008 06:40 PM