General Category > Discussion - Hardware

Using an external EEPROM to configure the FT2232H as JTAG + I2C upon power-up



I'm hoping that this is possible. I am presently powering on my PCBA design, which has an on-board FT2232H + EEPROM (blank), and using OpenOCD to configure it as JTAG + I2C. This has caused some problems where USB disconnects, which triggers other unsavory issues in my system. I am wondering whether I can configure the EEPROM such that the FTDI device powers on already as JTAG + I2C, so I don't have to configure it live.

I have looked at the EEPROM struct, and have poked around in the latest version of FT_PROG, v3.12.31.639, but do not find options beyond RS232 UART/245 FIFO/CPU FIFO/OPTO Isolate. Searches referring to older versions of FT_PROG seem to indicate that what I want is possible, but it appears that something has changed in more recent versions. Does anyone have insight as to whether an alternate solution exists, whether I'm doing something wrong, or whether this is no longer recommended?

Thank you.

FTDI Community:

JTAG and I2C re controlled by the MPSSE engine which is not configurable in the EEPROM.

MPSSE mode is enabled with FT_SetBitMode API command. See the D2XX Programmer’s Guide for more information.

The only JTAG support can be found here:
(Note this also includes I2C support)

There are two options to use JTAG modes with the MPSSE engine:

1.   Use FTCJTAG DLL library. Example code is provided with the download (This code is no longer supported by FTDI)
2.   Use D2XX drivers direct. Example code is shown at the link above, further down the page (JTAG). AN_108 Command Processor For MPSSE and MCU Host Bus Emulation Modes provides the necessary information.

Option b is the best option to use the D2XX drivers direct (no dependency on our library).

Unfortunately we don’t support OpenOCD. However there might be information online about it or other FTDI Community users can help.

Best Regards,
FTDI Community

Thank you for your response, and the pointers. I am locked into using OpenOCD, but I will check out the links.


[0] Message Index

Go to full version