I have three identical FX2LP boards, one of which works fine, the other two fail to enumerate. Has anyone got any hints for things I can try (hardware and/or software) to discover what's up?
The working board enumerates like this: http://pastebin.com/raw.php?i=RApTG5E8
The non-working boards are detected as high-speed devices: http://pastebin.com/ND0HQuW9
...but fail to respond to the host's descriptor requests: http://pastebin.com/raw.php?i=gy2EY0nh
The hardware is pretty minimal:
1) 56-pin SSOP CY68013A (1st bad board) and CY68014A (2nd bad board)
2) D+, D- & GND connected to USB
3) Reset circuit: 22nF capacitor charged through 100K resistor
4) Clock circuit: 24MHz crystal and a pair of 22pF capacitros
5) Two 22nF decoupling capacitors
6) External 3.3V PSU
7) Everything else unconnected (for now)
Never mind, I fixed it.
I noticed a design fault in my schematic - the SDA line has a removable link to allow the FX2 to be isolated from its EEPROM. Unfortunately, the pull-up on the SDA line is on the EEPROM side, not on the FX2 side as it should be. So the SDA line on the FX2 was floating. I soldered in the link and all is well. I guess since SDA was left floating the startup behaviour is undefined; it just happened to work on one board and not on the others.