Skip to main content
Topic: (Bus Blaster v1) FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART) (Read 86279 times) previous topic - next topic

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #30
[quote author="ian"]
...
These pins still need to be assigned----------------

DBGRQ(17)
*Asynchronous debug request. DBGRQ allows an external signal to force the ARM core into debug mode
...
DBGACK(19)
*Debug acknowledge
...
[/quote]

I believe that these do not need to be assigned, and that the same effect can be achieved using the jtag TAP port.

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #31
Thanks for the links, they are all really interesting. I'll review them now and update the table.
Got a question? Please ask in the forum for the fastest answers.

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #32
Not sure if this is a dumb question:  Will the functionality for this device be a superset of the bus pirate?    Or will people potentially need both a bus pirate and a bus blaster?

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #33
buspirate is the "smart device", all you need is a terminal to control it.

Bus blaster is "dumb device", you are probably going to need some kind of SW to operate it. Eg. OpenOCD or UrJTAG to use jtag.
Or you could write your own, using the FDxxxx lib (dont really know the name).
This device is also unbrickable :)), no FW flashing, nothing to go wrong.

If you need precise timing, i think that Buspirate will beat Bus blaster. There is no way you are going to get realtime performance on Win32 with USB :)

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #34
as robots said.

the bus pirate is the superior device in terms of "smarts" by being able to interface with most devices using standard protocols.
and doing it at human pace so you have control over the entire process from start to finish and all you need is terminal software

the bus blaster is aimed to be a device that only uses specific protocols (JTAG/SPI/I2C/UART) but will do them at high speed and hopefully be fully compatible with the majority of usbjtag / usbspi software already available, so a more automated process.

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #35
For those who are interested in application development for the FT2232D/FT2232H/FT4323H devices, here are the Programming Guides for the FTD DLLs, JTAG - FTCJTAG.DLL, SPI - FTCSPI.DLL, I²C - FTCI2C.DLL. FTDI provides the source code for the DLLs as well as examples for different programming languages.

... I'd call the Bus Blaster (aka FT2232D/FT2232H/FT4232H) a "black box" with very powerful Multi-Protocol Synchronous Serial Engines (MPSSEs) you can only access via the USB interface while the Bus Pirate (aka PICF24FJ64GA02) makes use of the MCUs Enhanced USART and Master Synchronous Serial Port (MSSPs) modules which provide pretty much the same functionality as the FT2232Hs MPSSEs. For those users who will not program/modify firmware for the Bus Pirate the real big difference is that they can access the functions of the Bus Pirate with direct commands from their PC keyboard via a terminal emulation (among other ways) while there is to my knowledge no similar (simple and versatile) user interface available for the Bus Blaster/FT2232 based JTAG/SPI/I²C/UART adapters ... so far.

The FT2232H (and it's predecessor FT2232D) has mainly been used in fairly closed (proprietary) or vertical open source applications (dedicated to narrow fields of applications like programming, debugging and testing via the JTAG interface) eventhough it's comparable in versatility with the Bus Pirate in my opinion and could outperform the Bus Pirate by a factor of up to 100 in some applications.

 ... it would be interesting to see if this project will trigger some initiative that will lead to the developement of open source applications that will make the JTAG, SPI, I²C and UART functions of the FT2232H available to the user's fingertips in a Bus Pirate fashion style ... ;)

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #36
I am coming in late to this topic, so I don't know whether the following has been mentioned already.

Texas Instruments offers their XDS100 schematic as open hardware. It uses the same FTDI2232H JTAG chip, so you could potentially learn a lot from their design.

Their FAQ is here: http://processors.wiki.ti.com/index.php/XDS100

The schematic and BoM are here: http://software-dl.ti.com/dsps/dsps_reg ... up_1_0.zip

The latter is Windows-specific, so I haven't taken a look yet. TI requires registration, but since I was already registered on their forum I did not have to do anything extra. In other words, the registration is more of a general download requirement and not really specific to their open hardware. I recommend taking a look, since they're already on a second generation design, and surely they learned a few lessons along the way. I believe that the older hardware design is also available for comparison.

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #37
I like the idea of having CPLD on board :) Even though it contains almost no logic.

They even use it as Level shifter .

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #38
I like the way the FAQ warns those of us who are cheap to resist removing the CPLD because the replacement logic will cost more anyway. Sounds like a challenge!

I recently designed a board that needed 4 logic chips for glue, but their total price is still well under $1, and I couldn't find a CPLD with the necessary gates for any less than $8. I should look at the XDS100 schematic because now I'm curious.

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #39
One problem with the schematic is the license :)

It mentions "licensed material may be used for applications generating tools to be used exclusively with TI devices." Or something like that.

BTW the cpld they are using costs ~1usd at digikey.
I guess that some CPLD could be added to this project, to allow some simple logic to be written by users. Eg some protocol accelerator or counter, quadrature decoder ....

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #40
There is a trend in the industry to use CPLDs and FPGAs in their low-cost debuggers/programmers. An other example is the WIZnet W7100 debugger for their new W7100 Internet MCU ... it uses a Spartan-3(E?) in combination with a FTDI FT232 ...

The advantages of having a CPLD or FPGA on the JTAG adapter is that you can easily reassign signals to any pin on the JTAG header, even adapt signals and implement specific "JTAG functions/extensions/implementations" - "JTAG intelligence" right on the adapter, like the Xilinx JTAG ACE placer that would allow the JTAG adapter to act as a direct replacement for the Xilinx Platform Cable USB II for direct download and testing of HDL designs from iMPACT to all Xilinx FPGAs and CPLDs devices - and even use the CPLD/FPGA for level shifting as robots pointed out.  

I agree with robots that it would be nice to have a CPLD or even a "small" FPGA on this design ... like a Xilinx Coolrunner II. Coolrunner II CPLDs provide LVTTL and LVCMOS compatibility, support 1.5V, 1.8V, 2.5V and 3.3V voltage levels and tri-state options for the I/O cells when in output mode ... exactly what is required for a flexible JTAG adapter. 

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #41
Coolrunner II can be used as jtag programmer  but you still need a link with usb so again you want some ftdi there, and with 2232H you can not only implement jtag, you can also have a real-time 8bit 60MHz logic analyzer or real-time 16bit 30MHz logic analyzer... How many times you cursed OLS for not having enough ram to hold big enough sample and your scanning rate was way below 30MHz ? I know I did ... most often the scanning rate of OLS I use are 5 and 10MHz and below 16 bits ... so 2232H would get the job better then fpga in this case ....

now, imagine combination of 2232H + CPLD where you can put triggering into CPLD so you can have triggering don on device instead on host...

anyhow, where are we on this project? stalled? noone to do the ftdi programming?

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #42
It's funny that you posted on this project today. The first PCB had mask over the buffer pads, so I sent back a revision. That board came in last week and I built and tested it yesterday.

It works (power up), and is detected by OpenOCD. I'm having a minor issue though. The BB is designed to be out-of-the-box compatible with OpenOCD by having the same pinout used by lots of ft2232 programmers. I know that most existing Ft2232 devices used the D and E chips. We're using H (first 3.3volt chip I guess?). I didn't think OpenOCD would care about the chip version, but it expects the specific revision too. If I try openOCD with the olimex or jtagkey .cfg file, it is not detected (ft2232D devices), but it is detected fine with the flyswatter and floss .cfg (H chips). Problem is, none of the supported H chips seem to have the same buffer we used (still checking...).

This is a pretty easy fix, just tweak one of the compatible drivers to accept the H chip ID too. Getting OpenOCD to compile under windows will be the hard part probably, but it's been on my to do list (to test for robots) for a while.

It looks pretty promising, and I hope to order a first batch within the month.

Do you know of any LA software that already supports the FT2232? That's a great idea.
Got a question? Please ask in the forum for the fastest answers.

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #43
[quote author="ian"]
It's funny that you posted on this project today. The first PCB had mask over the buffer pads, so I sent back a revision. That board came in last week and I built and tested it yesterday.

It works (power up), and is detected by OpenOCD. I'm having a minor issue though. The BB is designed to be out-of-the-box compatible with OpenOCD by having the same pinout used by lots of ft2232 programmers. I know that most existing Ft2232 devices used the D and E chips. We're using H (first 3.3volt chip I guess?). I didn't think OpenOCD would care about the chip version, but it expects the specific revision too. If I try openOCD with the olimex or jtagkey .cfg file, it is not detected (ft2232D devices), but it is detected fine with the flyswatter and floss .cfg (H chips). Problem is, none of the supported H chips seem to have the same buffer we used (still checking...).

This is a pretty easy fix, just tweak one of the compatible drivers to accept the H chip ID too. Getting OpenOCD to compile under windows will be the hard part probably, but it's been on my to do list (to test for robots) for a while.

It looks pretty promising, and I hope to order a first batch within the month.
[/quote]

NIIIIIIIIIIICE :D ... I had a feeling this thread needed a bump :D

Quote
Do you know of any LA software that already supports the FT2232? That's a great idea.

actually - no :(
I ordered 2232H breakout board (arrived recently) and I plan to make a simple real-time ftdi -> bin file application just to test how it works.... I suck big time when G is the important part of Gui :( and this would require some nicely thought off gui... who knows maybe I come up with something, anyhow I'm on linux so first I need to check out how well ftdi is supported and I will most probably make a kernel module that will make 2232H act like source for 16bit stream and then some app that will actually connect to the stream and maybe display that data in real time ... we'll see .. still working on another project so this is just idea that will for now have to wait a bit. I'd like to be able to make it work somehow on mac and windoze too so maybe if jawi can adapt his java client of obls to accept another type of devices so he can read fast real-time stream it might be cool then only on windoze we'd have to make some driver that will allow similar source to exist on windows and gui that works everywhere ... need to think about it more .. but .. you are already talking to ftdi on blaster? or you are just making blaster "recognizable" for openOCD and letting openOCD talk to ftdi any way it know how?

Re: FTDI 2232 high speed programmer debugger (JTAG/SPI/I2C/UART)

Reply #44
Quote
you are already talking to ftdi on blaster? or you are just making blaster "recognizable" for openOCD and letting openOCD talk to ftdi any way it know how?

It's all up to OpenOCD and lib_usb/ftdi right now. I'm not planning to write any software from scratch.

Quote
you are already talking to ftdi on blaster? or you are just making blaster "recognizable" for openOCD and letting openOCD talk to ftdi any way it know how?

Adding A)USB device options, and B) real-time data sampling triggers and sampling depth to the alternative client would be my approach too. Then it would be ready for something like the FT2232 usb logger LA type, and also the OLS HID/bulk continuous sampling mode.
Got a question? Please ask in the forum for the fastest answers.