The quickest way to test most module functions is to execute the sample USB communication tests and DMA tests available in TE_USB_Suite package.
The 32 and 64 bit C++ executable version can be found here.
The C# executable version can be found here.
Hereunder is reported a sample trace of a successful C# executable version execution.
The character/number typed by the user are reported in red
The answer of test console program are reported n blue.
The menu and menu aids are reported in black.
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
1
The number of card is 1
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
3
Module is not connected!
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
2
Module is connected!
USBdev <DEVICE>
FriendlyName="Trenz Electronic USB FX2"
Manufacturer="Trenz Electronic"
Product="TE USB FX2"
SerialNumber="101"
Configurations="1"
MaxPacketSize="64"
VendorID="0B D0"
ProductID="03 00"
class="00h"
SubClass="00h"
Protocol="00h"
BcdDevice="00 00"
BcdUSB="02 00"
<CONFIGURATION>
Configuration="0"
ConfigurationValue="1"
Attributes="80h"
Interfaces="1"
DescriptorType="2"
DescriptorLength="9"
TotalLength="60"
MaxPower="250"
<INTERFACE>
Interface="2"
InterfaceNumber="0"
AltSetting="0"
class="FFh"
Subclass="00h"
Protocol="0"
Endpoints="6"
DescriptorType="4"
DescriptorLength="9"
<ENDPOINT>
Type="BULK"
Direction="OUT"
Address="01h"
Attributes="02h"
MaxPktSize="64"
DescriptorType="5"
DescriptorLength="7"
Interval="0"
</ENDPOINT>
<ENDPOINT>
Type="BULK"
Direction="IN"
Address="81h"
Attributes="02h"
MaxPktSize="64"
DescriptorType="5"
DescriptorLength="7"
Interval="0"
</ENDPOINT>
<ENDPOINT>
Type="BULK"
Direction="IN"
Address="82h"
Attributes="02h"
MaxPktSize="512"
DescriptorType="5"
DescriptorLength="7"
Interval="0"
</ENDPOINT>
<ENDPOINT>
Type="BULK"
Direction="IN"
Address="86h"
Attributes="02h"
MaxPktSize="512"
DescriptorType="5"
DescriptorLength="7"
Interval="0"
</ENDPOINT>
<ENDPOINT>
Type="BULK"
Direction="IN"
Address="84h"
Attributes="02h"
MaxPktSize="512"
DescriptorType="5"
DescriptorLength="7"
Interval="0"
</ENDPOINT>
<ENDPOINT>
Type="BULK"
Direction="OUT"
Address="08h"
Attributes="02h"
MaxPktSize="512"
DescriptorType="5"
DescriptorLength="7"
Interval="0"
</ENDPOINT>
</INTERFACE>
</CONFIGURATION>
</DEVICE>
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
5
Major version: 3
Minor version: 2
Device hi: 1
Device lo: 1
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
6
Major version: 8
Minor version: 2
Release version: 0
Build version: 0
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
7
EP2 FIFO CS: 04
EP4 FIFO CS: 04
EP6 FIFO CS: 28
EP8 FIFO CS: 04
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
8
Resetting all FIFOs
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
10
Write the Buffer Size desired for EP8
Value suggested is 102400, do not use 131072
102400
Write the Packets Number desired
Value suggested is 1200 if you are testing TE0320 or TE0630
Value suggested is 600 if you are testing TE0300
1200
Write the Packet Length desired
Value suggested is 102400
Know issue: does not use 131072 or the test fail.
Value suggested is 51200 if you are testing TE0300;
if the value used is >51200 the test fails.
In C# you are able to write even packet with length less than
512 byte AND in this case you can also do this BUT
in this case you are only able to test write data integrity
102400
Write the Timeout value desired, the integer is measured in milliseconds
Value TimeOut (ms) > [PacketLength/DataThroughput ]+1 ms
for high responsive computer
DataThroughput value expected is >20 Mbyte/s, so with PacketLength=102400 byte,
the value is 5-6 ms
If the computer is not highly responsive you must set Timeout to large value :
20,50,200,1000 ms (it depends on how much the computer lack real time behavior).
1000
You want make an integrity test on data writen on FPGA?
1 for YES, 0 for NO
1
Resetting all FIFOs
TimeSpan 00:00:04.8333753
TimeSpan Minutes 0
TimeSpan Seconds 5
TimeSpan MilliSeconds 833
Millisecond 5833
host->memory data verification Integrity PASSED!!!
Transferred 120000 kB in 4833 ms = 25.16 MB/s
Resetting all FIFOs
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
9
Write the Buffer Size desired for EP6
Value suggested is 102400, do not use 131072
102400
BufferSizeR 102400
Write the Packets Number desired
Value suggested is 1200 if you are testing TE0320 or TE0630
Value suggested is 600 if you are testing TE0300
1200
PacketsNumberR 1200
Write the Packet Length desired
Value suggested is 102400
if you are testing TE0320 or TE0630.
Know issue: does not use 131072 or the test fail.
Value suggested is 51200 if you are testing TE0300;
if the value used is >51200 the test fails.
In C# you are normally able to read even packet with length less than
512 byte AND it is what you implicitly do with point 5 (FX2 firmware version)
6 (FPGA firmware version),7 (FX2 FIFO Status) BUT for this test
you must use 1024 or more for Packet Size value
102400
PacketLengthR 102400
Write the Timeout value desired, the integer is measured in milliseconds
Value TimeOut (ms) > [PacketLength/DataThroughput ]+1 ms
for high responsive computer
DataThroughput value expected is >30 Mbyte/s, so with PacketLength=102400 byte,
the value is 5-6 ms
If the computer is not highly responsive you must set Timeout to large value :
20,50,200,1000 ms (it depends on how much the computer lack real time behavior).
1000
Resetting all FIFOs
Errors 0
TimeSpan 00:00:03.2986599
TimeSpan Seconds 3
TimeSpan MilliSeconds 298
Millisecond 3298
memory->host data verification PASSED!!!
Transferred 120000 kB in 3298 ms = 35.53 MB/s
Resetting all FIFOs
TE_USB_FX2 DLL Example 1.0
1 - Get number of cards
2 - Connect cardNo 0
3 - Connect cardNo 1
4 - Disconnect
5 - Get FX2 firmware version
6 - Get FPGA firmware version
7 - Get FX2 FIFO Status
8 - Reset FX2 FIFO Status
9 - Read high speed data (FPGA RX)
10 - Write high speed data (FPGA TX)
0 - Exit
0
With this command the Windows Console will close.