Sunday, 16 September 2012

Xilinx USB Programmer using FTDI chip FT2232

Fig 1 : Xilinx USB based programming Cable
   
    In these days the cost of making custom FPGA boards (xilinx or altera) has come down to less than 100$ , due to availability of low cost FPGAs like the Xilinx Spartan series and very cheap pcb fabrication service. 

But the cost of the FPGA programming cable is 225$. Even though its a one time investment ,its not affordable to a individual users like hobbyists or students.  
                     
So in this blog , I wish to explain a simple project idea , about how to design a USB based xilinx programming cable . The design can made as a stand alone  product like the Xilinx "Platform Cable USB" or it can be added as a on-board programmer in a Custom Fpga board . 

The Highlight is , its not a illegal reverse engineered procedure instead its a legal design , utilising the Programming information explained by Xilinx in one of their App note .

Here in my idealogger in Simple FAQ format:


1. What is the IC used in the design ?


Fig 2 : FT2232H
   The main IC used , is Future technologies FT2232H. Its USB 2.0(480Mb/S) to JTAG Convertor.

The FT2232H incorporate a command processor called the Multi-Protocol Synchronous Serial Engine (MPSSE). The purpose of the MPSSE command processor is to communicate with devices which use synchronous protocols (such as JTAG or SPI) in an efficient manner.The MPSSE Command Processor unit is controlled using a SETUP command. Various commands are used to clock data out of and into the chip, as well as controlling the other I/O lines.
MPSEE will take its commands and data from the OUT data written to the OUT pipe in the chip. This is done by simply using the normal WRITE command (from a PC C , C++ or Labview software) , as if data were being written to a COM port. Any data read will be passed back in the normal IN pipe. This is done using the normal READ command, as if data were being read from a COM port.


2. Why Xilinx Programming Hardware cannot be easily reverse Engineered ?


   As seen in fig 1 the xilinx platform cable has cypress USB-FIFO IC and Xilinx fpga . The fpga does the command handling with the PC programmer software (Impact or Chipscope) and Jtag serial engine . This fpga logic in kept secret by xilinx and is available only to its partners.

3. What are the Hardware requirements ?

Fig 3 : FT2232H Mini Module
Fig 4 : FT2232H in Fpga board

   























4. What are the Software requirements ?

5. What are the documents to read ?

6. What is the project description ?

7. What is the tentative project flow ?