07-01-2010 11:14 AM
In HS488 mode, I’m able to achieve 8Mbytes/sec with the shorter cable lengths using DMA read and DMA write data transfers (DRQ asserts every 125nsec). However, when using standard three wire transfers, I can only achieve 434Kbytes/sec (DRQ asserts every 2.3usec) DMA write and 735Kbytes/sec (DRQ asserts every 1.36usec) DMA read.
I read somewhere that standard three wire transfers can do 1MByte/sec. What could be causing my numbers to be lower? Has anyone confirmed 1MByte/sec read and write speeds with the TNT4882 chip using standard three wire transfers in one chip mode? My host interface is a NI GPIB-USB-HS adapter.
07-08-2010 01:40 PM
Hello ppDev,
There are several factors that could be slowing down your 3-wire transfer and only your 3-wire transfer.
The 1-wire transfer is a special case that using independant timing to clock out the data at a certain speed. The listeners can slow it down, but they rarely do that.
The 3-wire transfers are limited by the following.
1. The more cable in your setup, the slower the transfer speed. For our benchmarking, we use 1m cables.
2. The more instruments attached, the slower the transfer speed. While sending command bytes, all attached (and powered) instruments must accept the bus configuration commands (which primary address is talker and which is listener). Also, every listener must accept a byte before it is actually accepted. Obviously we have only one instrument attached while running our benchmarks.
3. Also, the bus timing bits may not be set for the fastest T1 delay on both the GPIB-USB-HS or the TNT4882.
I hope this helps you track down your throughput problem. If you find any additional clues, please let me know.
Steven T.
07-24-2010 08:00 PM
I was able to configure the TRI bit in the AUXRB register to achieve < 1 usec 3-wire transfer speed when the TNT4882 chip is the talker but the transfer rate to the TNT4882 is still slow (> 2 usec) when it's a listener. I looked at the settings for the GPIB controller in MAX and I tried both 500 nsec and 350 nsec but it had no effect. What setting controls the speed from the CIC to the TNT4882?
I have a very short cable and only 1 instrument and my controller is a NI GPIB-USB-HS.
07-27-2010 04:02 PM
Hello,
Page 4-22 in the manual has a full list of bits that control the T1 Delay. Setting both the controller and the TNT4882 to the lowest allowable T1 Delay will result in the fastest transfer. The transfer will also be dependant on how much data is being sent in the transfer. The best performance is acheived when thousands of bytes are sent.
How are you measuring the amount of time it takes a byte to transfer over GPIB?
Thanks,
Steven T.
07-27-2010 04:35 PM
I'm looking at the DACKN and DRQ signals of the chip. I have an ultra fast FPGA monitoring DRQ and driving DACKN. My VISA read and write transfers are 2048 bytes long. HS488 mode sustains 8MBytes/sec read and write. For 3-wire transfers, I see an initial burst as the TNT4882 FIFOs fill/empty then I get the slower timing. Right now, the TNT4882 3-write talk is <1 usec (Table 4-1 with TRI = 1, MSTD = 0, PT1_ENA = 0) which is good, but listening (data from PC) is much slower (>2 usec).
It seems like the NI GPIB-USB-HS controller (serial number 0120F65E) is ignoring the "Bus Timing" combo box setting in MAX. I don't see any VISA attributes to force the controller to run faster.