comStick Hitex STR9 Jtag lockup on reset fix.

Tittle: Fix for STR9 Hitex comStick(REV A2) evaluation board JTAG lockup.

under openocd, and FTDI libftd2xx V 4.16(maybe other versions to)

The Symptom:

Comstick on board JTAG interface fail’s, requiring the board to be

unplugged and reinserted, to gain control. (even this will fail!

fix the problem), could be other Symptom’s too.

The Problem:

The hardware design of the str9 comStick board, use’s a FT2232 usb chip in

JTAG mode. This chip has 5 power pin’s, 2 VCC,1 AVCC,1 VCCIOA and 1 VCCIOB.

The power to the VCCIOA and VCCIOB is controlled by the FTDI PWREN# pin,

via a FET, and 3.3 volt reg. (this also powers the STR912 CPU)

While the 2 VCC pin’s and AVCC is connected directly to the USB power from

the host computer. When the chip is reset, the power to the VCCIOA(B) and

CPU is turn off, This appears to mess up the FT2232 internal driver’s powered

from the VCCIOA and VCCIOB pin’s, this powers the JTAG interface and reset to

the str912 chip. The fault shows up as no JTAG clock, and low

logic HI voltage’s on the FT2232 JTAG pin’s.

Looking at the FTDI data sheet I see they don’t give any examples of the

VCCIOA and VCCIOB used in the way Hitex comStick have used it.

FTDI examples shows VCCIOA,VCCIOB always power up/down the same time as

VCC and AVCC.

The Software Fix: (no luck here sorry :frowning:

The FTDI driver for Linux, always resets the FTDI chip on the board,

when the openEx() is call from the openocd program,

Which of course turns the power off/on to the VCCIOA(B) and if

lucky may works, but for me most of the time it screw’s up.

The FTDI libftd2xx has a con-fig option which is supposed to disable the

reset too the FTDI chip, when you use the openEx() call,

but setting this option, had no affect. It still reset the FTDI chip on

openEx call.

The Hardware Fix: (only one which works so far)

The FTDI site is not much help, no source etc… it only left with

hardware fix option.

Solder a low (6.2 Ohms) value resistor or jumper across the power control

FET. Thus shorting the FET out and keeping power on to the VCCIOA(B) pin’s.

If you use the 0 Ohms resistor jumper option you will get plug-in start up

current spike. Which may cause the USB current limit safety circuit to trip.

But for me, the 0 Ohms option work OK, I also tried 6.2 Ohms resistor jumper,

and that appeared to work OK to.

The jumper is placed bottom side of the PCB, where your see Ethernet

connector, bottom side. looking you will see 2 wide trace’s.

Just to the NW of the Ethernet connector mount hole.

(Orientation is USB connector to host computer, on right and expansion

connectors, USB, Ethernet to the left bottom side)

Scratch off the solder resist, and solder jumper/resistor there to join

the two thick trace’s, I can post/email picture’s of the mode, if the above

info is not helpful.

On a side note, the FTDI serial port is not recognized by the Linux kernel

so you can not use the serial port on the comStick to talk to the STR9 CPU,

only fix for this is to add the VIP/PID too the ftdi_sio.c and ftdi_sio.h

and also disable the disable the kernel from using the JTAG port as serial port.

Recompile the kernel. I can post this patch if any one is interested.

Good luck. Lachlan Audas :slight_smile: