Papilio Loader and FTDI 2232H chipset

Guest maexpower

Recommended Posts

Guest maexpower

    Hi Guys,

I’m looking  forward to design a FPGA board among others to use it as a DSP. At first I  chose a Xilinx Spartan 3DSP. As this device is to slow, I decided to use a  Spartan 6 LX25. The xc3sprog homepage says that the loader works for Spartan 6 using  the FTDI 2232D chipset.

Does  anybody know, if I can use an FTDI 2232H chip instead? Is this device supported  by the Papilio Loader? If so, do you think it is possible to use the chip both  to program the FPGA and to communicate with my PC?



Link to comment
Share on other sites

  • 1 year later...

The FTDI 2232H is an upgraded version of the 2232D.

The protocol seems the same, the big differences is in the power supply since the H version is a modern 1.8V design.

I don't know about Papilio since I wrote my own loader.

I am using the 2232H with a spartan 6 9K I used port B for programing and port A for a Async/Sync FiFo.

Some things to note.

1. When port A goes into full sync mode you can't access Port B, But port B will stay in the state it was in. I used BD4 for reset I am not sure what pins Papilio wants.

2. The full sycnronous mode has a glitch on the TXE line where it will go low even if it can't receive a byte. You have to check the line at the end of the cycle to see if it accepted the byte.

3. If you use a DCM or PLL lock signal to switch between Async and Sync mode you will have to leave the WR line high in Async mode and just rely on the falling edge. It seems to work fine this way.

Link to comment
Share on other sites

Yes, the Papilio loader works fine with FT2232H.  However, you might have to add this line

04004093 6 XC6SLX25

to the file devlist.txt (in the Helper_App\bin folder) since I don't think Jack added the larger device idcodes in the last build.


Alternatively, you can use this (cmd-line) version of the Papilio loader which has built-in device idcodes for the larger Spartan6 devices:




Also, if you use the B-port for JTAG like GLion describes above then you have to use the -d option to specify the device and port since the default behavior is to open the A port of the first found device.

Read more about that in this thread:

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.