Hello everybody,
I recently made a design with an FT232H USB to UART bridge. In my configuration, the FT232 chip is powered by the USB and there is no EEPROM attached to it, which should be ok as stated in the datasheet.
After receiving and testing the two boards, I tried to plug the USB to my PC under Windows 7 (64 bits) and got an "Unknown USB peripheral" message. I then checked the voltages and clock of the FTDI and everything was fine. I was vaguely aware of the fact that some FTDI chips were bricked by the new driver (thanks to Dave's video), so I emailed FTDI and asked them what to do. They tell me to remove every FTDI drivers (CDC Uninstaller) and to update the drivers with the archive in their website. I tried that procedure and, at the end of the install process, my device shows up with a nice VID/PID identical to the one given in the datasheet. I was so happy that I soon unplugged my board to test the other one. I was unable to make the same miracle a second time. I tried to remove and reinstall the software but nothing worked. Re-plugging the "good" board was not successful either. Windows stupidly set the VID/PID of the two boards to 0000. The first batch of components where bought on Mouser, so I ordered two new components and resolder one board to tackle the "genuine" issue. The hardware was valid (voltages and clock) but no device shows up under Windows.
A few hours later and a lot of messing around with Windows, I try it on a Linux machine (Ubuntu 14.04 64 bits). I was unable to see the device enumeration in dmesg but had a bunch of lines saying that the device doesn't accept the address (device not accepting address xx, error -71). During the enumeration process, the kernel have used the xhci driver. The same issue was visible for both boards.
Finally, I plugged the boards to another Linux machine (Debian 8, 32 bits). Dmesg showed some errors with the "device not accepting address" thing with the ehci_pci driver and then, out of the blue, some lines saying: "using the uhci driver" and a nice "FT232H device detected" with the good values for the VID and PID. I made the same test with the second board and get a success for this one also. I made a small script in Python + MPSSE and was able to blink an LED. Hurrayyy !
I then unplugged and re-plugged the boards several times and everything still works in the Debian 8 machine. Nothing new concerning the Windows or the Ubuntu machines. I then test the boards on two other machines, one with a Debian 6 and one with a Debian 8. The Debian 8 machine showed the same dmesg and enumeration was successful. The Debian 6 didn't recognize the FTDI chip.
I tried a lot of things such as loading the "usb_old_sheme" thing, disabling the "usb_suspend" and loading the uhci and ohci drivers but still get the same enumeration issue !
Do you have some fresh insight for me, I'm really disappointed at the moment !
Thanks in advance,
Best regards,
Christophe
PS: I have ordered an EEPROM and will solder a nice little buggy board over the FTDI to see if this bloody chip will be more sympathetic.