USB interfaces ?

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
User avatar
BeauWebber
Member++
Posts: 17
Joined: Thu Sep 27, 2012 11:41 pm

USB interfaces ?

Post by BeauWebber »

Hi,
I have been looking through the Dev kit and module hardware specs, and I think the answer may be no to all these questions, but please tell me more :

May I ask about the USB interfaces on the modules :
1) Are these all based on JTAG interface protocols ?
2) Do any use the FTDIchip interface devices ?
3) Is there a DLL to access the USB interfaces ?
4) Are any of the USB interfaces suitable for 480 MB.s-1 USB2 transfer ?
Cheers,
Dr. Beau Webber


User avatar
BeauWebber
Member++
Posts: 17
Joined: Thu Sep 27, 2012 11:41 pm

Post by BeauWebber »

BeauWebber wrote: May I ask about the USB interfaces on the modules :
2) Do any use the FTDIchip interface devices ?
Well part of the answer is :
The XMOS tools support adapters based on either FTDI or XMOS USB-to-JTAG chips. Consult your board manual to determine which driver to use.
User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm

Post by Bianco »

BeauWebber wrote:Hi,
I have been looking through the Dev kit and module hardware specs, and I think the answer may be no to all these questions, but please tell me more :

May I ask about the USB interfaces on the modules :
1) Are these all based on JTAG interface protocols ?
2) Do any use the FTDIchip interface devices ?
3) Is there a DLL to access the USB interfaces ?
4) Are any of the USB interfaces suitable for 480 MB.s-1 USB2 transfer ?
Cheers,
Dr. Beau Webber
Hello, I will attempt to answeryour questions.

XMOS provides two different JTAG adapters: The FTDI-based JTAG adapters and the XTAG-2.
Both use the standard JTAG signals. In addition the FTDI-based adapters offer an UART interface.
The XTAG-2 adapters also provide an JTAG interface and an 2-bit XMOS Link. This XMOS Link can be used to send data from the device under test to the host computer (only L and SU series supported at the moment of writing, G will not get support due to hardware incompatibility). This is currently only available using the XMOS Software Scope (Xscope). The Xscope is a great feature to debug systems however there is quite some overhead at the host computer side because the incoming data is saved in an XML format.

The FTDI-based devices are more or less deprecated and are not available for purchase anymore (The standalone adapter was called XTAG-1 or XTAG). The reason for this is that the XTAG-2 is more capable. Many boards however still have one on board such as the XC-1A card so support in the tools will remain.

The XTAG-2 adapter only contains a bootloader to receive a firmware over USB.
The development tools on the host computer will send the firmware to the XTAG-2
when being used. This ensures that you will always have the latest firmware running on the XTAG-2.
The XTAG-2 cannot boot standalone and thus always needs to have a device sending the firmware over USB. Henk Muller has done some work on loading custom firmwares to the XTAG-2 to repurpose it. You can find his work somewhere on the XMOS github repository.

That said, neither solution is targeted at being a permanent solution for sending data from another system to a host computer, but merely to debug an XMOS system. The XTAG-2 device is capable of USB 2.0 high-speed transfers however the only way to get data to the XTAG-2 in high speed is through the 2-bit XMOS link, which requires another XMOS chip (or FPGA). If i recall correctly you are mainly interested in sending data from your equipment in high speed to a host computer.
The only feasible way I see with XMOS is using a dedicated XMOS chip with a USB Phy connected to it.

A very important aspect is which interfaces exist in your equipment to send data over to another chip that deals with the USBinterface.
User avatar
BeauWebber
Member++
Posts: 17
Joined: Thu Sep 27, 2012 11:41 pm

Post by BeauWebber »

Bianco wrote:
BeauWebber wrote:Hi,
I have been looking through the Dev kit and module hardware specs, ......
Dr. Beau Webber
Hello, I will attempt to answer your questions.
I thank you, this is a very detailed and helpful reply.
Bianco wrote: XMOS provides two different JTAG adapters: The FTDI-based JTAG adapters and the XTAG-2.
Both use the standard JTAG signals. In addition the FTDI-based adapters offer an UART interface.
....
The FTDI-based devices are more or less deprecated and are not available for purchase anymore (The standalone adapter was called XTAG-1 or XTAG). The reason for this is that the XTAG-2 is more capable. Many boards however still have one on board such as the XC-1A card so support in the tools will remain.
My interest in the FTDI USB interfaces is that my programs can talk to them directly over the USB using the FTDI .dll
But if they only go to JTAG interfaces, they will be too slow.
Bianco wrote: The XTAG-2 adapters also provide an JTAG interface and an 2-bit XMOS Link. This XMOS Link can be used to send data from the device under test to the host computer (only L and SU series supported at the moment of writing, G will not get support due to hardware incompatibility). This is currently only available using the XMOS Software Scope (Xscope). The Xscope is a great feature to debug systems however there is quite some overhead at the host computer side because the incoming data is saved in an XML format.

The XTAG-2 adapter only contains a bootloader to receive a firmware over USB.
The development tools on the host computer will send the firmware to the XTAG-2
when being used. This ensures that you will always have the latest firmware running on the XTAG-2.
The XTAG-2 cannot boot standalone and thus always needs to have a device sending the firmware over USB. .....
The XTAG-2 device is capable of USB 2.0 high-speed transfers however the only way to get data to the XTAG-2 in high speed is through the 2-bit XMOS link, which requires another XMOS chip (or FPGA). If i recall correctly you are mainly interested in sending data from your equipment in high speed to a host computer.

A very important aspect is which interfaces exist in your equipment to send data over to another chip that deals with the USBinterface.
Ahh, I think my way forward is to connect the 2-bit XMOS link to one of my USB2 interfaced FPGA chips. This uses the FT2232H device with a Cyclone II or IV, and achieves full 480Mbit.s-1 transfer rates.
I can do this initially with a flying lead, then if this works I will sit an XMOS device on one of the mating credit-card sized CardStac boards for which my Lab-Tools system is developing fast interfaces.

I thank you very much for the help.