12-06-2007 11:27 AM
12-06-2007 02:16 PM
Jennifer,
It would not help very much to stop polling on NEF. Interrupts are usually only used when detecting changes in addressing (talker or listener). Once you know that the instrument is addressed as one of these (through an interrupt). An ISR can momentarily disable interrupts, squelch it, and then call a function to deal with it. The function would need to loop on NEF to see when bytes come in. This is the recommended way per instructions in the TNT5002 and TNT4882 manuals.
I hope this helps,
Steven T.
12-09-2007 10:32 PM
12-10-2007 10:52 AM
Hello Jennifer,
From page 4-11 from the TNT4882 manual under Premature Done:
For GPIB reads, the END interrupt usually causes TLCINT to assert. In this case, the
host interface should continue reading bytes from the FIFOs of the TNT4882 until the
FIFOs are empty. The DONE bit sets when the FIFOs are empty even if the GPIB
transfer count has not expired.
This describes how a Done can happen when the count does not expire. Apparently it has to do with enabling interrupts exactly like you described a few posts ago (I must have misunderstood or overlooked this case). If things are set correctly End will set if EOS or EOI is encountered.
END sets on - TNT5002 manual page 3-95 (describes all events that can trigger END)
EOS - TNT5002 manual page 3-83
EOI - TNT5002 manual 3-54 (will let you know if the most recently accepted byte had EOI asserted).
How were you expecting the communication to terminate early? Have you seen these pages in the manual? If you are having trouble with any of them please let me know and I would be happy to help. If you are having problems please post the values of the relevant registers. This will help us trace the problem.
Sorry for the mix-up,
Steven T.