Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

EOI signal problem under Vista/Windows 7, GPIB-USB-HS

I appear to be running into a problem with EOI signal generation under Vista and Windows 7, using a GPIB-USB-HS adapter.

 

When the number of characters sent from the PC is equal to (13 + ( x * 32)), where x >= 0, my instrument appears to receive  the EOI signal one character too early, resulting in a corrupted final character in the string on the receiving side. I originally discovered this when sending the string from my application, but I am able to reproduce this just sending a string from the NI-488.2 Communicator app. I have tested this under the NI-488 drivers ver 2.5 and ver 2.8.

 

This problem did not occur under Window XP.

 

My instrument utilizes the NI NAT9914 chip on the receiving end, and results in communication failure when this problem occurs.

 

Has anyone else run into this problem? I figure that perhaps some subtle signal timing change has occurred somewhere under  post-XP and I am at a bit of a loss as to what I can do in the NAT9914 configuration to compensate for this issue.

 

 

 

0 Kudos
Message 1 of 5
(4,518 Views)

Problem solved.

 

After modifying my EOI signal handler on the instrument side, I was able to get rid of the problem. I guess Vista/Windows7 requires a better designed EOI signal handler than Windows XP required.

Message 2 of 5
(4,507 Views)

Hi,

What did you modify exactly to get this to work?

 

Thanks

 

 

Applications Engineer
National Instruments
0 Kudos
Message 3 of 5
(4,281 Views)

In my original driver in my instrument, the code that read the NAT registers (BSR,ISR0,ISR2) and then checked the EOI bit in the BSR, were generally in the middle of my character processing routine. I instead moved the reading of the NAT registers to the top of the routine to be executed quicker after the interrupt was received, and moved the actual check of the BSR EOI bit to the bottom of the character processing routine. The state of the EOI bit  had to be saved for examination on the next pass through the character processing routine.

0 Kudos
Message 4 of 5
(4,272 Views)

I'm still a little confussed about your issue.  To the best of my knowledge EIO is sent with the last character per IEEE488-  are you saying that EIO is being set before the last char is placed on the data lines?


"Should be" isn't "Is" -Jay
0 Kudos
Message 5 of 5
(4,260 Views)