Electronics > Microcontrollers

FT4232 not starting


Probably not the best fit in terms of section, but I think this is most relevant as this isn't equipment or analog related.

In a design I'm working with this FTDI FT4232 huge quad port / MSSE chip. I've had experience with the Ft232BL which was 'easy enough' and just thought the FT4232H would work similar. So I followed the Typical application circuits, hooked up external EEPROM and RX/TX indicators (for debugging) and prototyped it. The RX/TX indicators was different in this perspective because of a lack of pins, so I had to add a 74HC595 shift register (according to the datasheet) to make it work. This is a prototype, so it's nice to have it on there.

Now when I soldered it on the prototype board, it didn't work.  When I plug the device in Windows gives a message 'Device not recognized'. USBView tells no PID/VID whatsoever and says DeviceEnumerationFailed. A device 'Unknown device' appears in Device Manager. The device shows code 43, which is basically telling me something is wrong. If I pinpoint a exact driver file, I get the explicit message "Cannot start the device (code: 10)"

Fair enough I thought, let's debug the circuit. Voltages were fine: 1.8V VCore and 3.3V everywhere else. Was it held in reset? No, if I plug in USB the reset becomes high to 3.4V (which means inactive). Does the oscillator work? Yes, shows 12MHz very neatly - until it goes into suspend mode. When I it's unplugged, the oscillator is on. When I plug it in, the oscillator keeps going for a few seconds and then cuts off.

I read this is the suspend mode. The suspend pin also goes high/low. Clearly, something is not going well here. So I thought well, maybe I killed the chip so I baked a new board up.  Exact same behaviour. Voltages are good, oscillator is working, there is EEPROM clocks going across etc.

I'm absolutely confused what's wrong. I tried leaving out the EEPROM (corrupt configuration maybe?), I tried 0 ohm resistor instead of 27 ohms on the USB line, I tried pulling the RESET to 3.3V all the time, nothing had effect. I checked the soldering on the last board by probing every pin with their neighbours. No shorts. All decoupling caps are placed as close to the chip. There is a ground plane under the chip so I'm sure all caps and power pins have the smallest loop, and caps have shortest path to GND. It's a 4 layer board, so getting 3.3V and GND spread is rather easy.

The odd thing is that a FT232 design before works fine (never had a problem with it) with the same PC, drivers and USB cable (which some say may be a factor). In my mind, I have implemented the Typical Applications exactly and just added the RX/TX indicators. The EEPROM is a atmel 96C46 part by the way. The USB connector may be weird, but this is a 8-pin C-GRID connector (internal device), which I have used before. I know the PWREN# signal should be USB_PWREN#, but as it's an output I don't believe that could be a factor in the function of the circuit.

Does anyone have any similar experiences and tips on what could be wrong or something overlooked?

About a suspicious reset circuit, it's exactly taken from this datasheet:

Page 32.

As said, I've tried hooking RESET# straight to 3.3V, and it didn't help. However, I won't say it isn't in this part. If I plug the device in, it's 3.4V (right after the 1k resistor). If I pull it out, it's still 0.5V (?!)

Try to incrase oscilator capacitors into ~27pF maybe this can help and this is only stability issue with it.

Can't help with your problem other than to say I have used the FT4232H according to the datasheet and it worked OK. Wierdness on enumerating can happen if eeprom pins are wrong.

I got it working now, but without the EEPROM. I desoldered all the pullups and the EEPROM which made it work. At first I also removed the shift register, but after replacing a new one it seems to work fine.

I also put the reset fixed to 3.3V, and it seems the datasheet of my crystal was saying the 2 leftover pins should be tied to GND.
In the end it also turned out I had D+ and D- reversed, however I tried that before and it didn't work.

Sooo.. in the end a strange thing. I'll try the EEPROM later on and I hope it works. It's sorta a thing I hoped I could use to add my own device names.


[0] Message Index

There was an error while thanking
Go to full version