I wanted to know if it would be possible to extract a ready made USB2 interface from some widely
available consumer item, like a webcam.
By researching USB devices supported by the Linux version of the Cypress
drivers, Pavle S57RA identified a candidate: the Trust "spacecam 380" webcamera.
We purchased two and took them apart, and to our delight, they're built
on two PCB's. One contains the camera, and the outher a nice USB2 interface.
The two are connected via two pin headers, couldn't be better for
our purposes!
This is how it looks:
Before it can be used as a general-purpose interface, it is necessary
to disable the onboard firmware eeprom, to make it report itself as
an unconfigured CY7C68013.
This is done simply by unsoldering and lifting pin 5 of the eeprom,
marked by a red arrow in the photo below:
Another mod, that might be required, is to connect the FIFOADR pins (44,45)
and/or the SLOE (42) pin to logic high.
Originally, the FIFOADR pins are grounded, selecting endpoint 2 FIFO.
In the default configuration, EP2 is configured as an output, so if
you need inputs, these pins should be tied high (3.3V), to select
endpoint 8.
For me, the easiest way of "desoldering" these pins was with a sharp
pointy knife, just lifting them, without application of heat. Use of suitable
magnification is highly recommended.
Then, solder a thin wire from the "hot" side of the 3.3V filter capacitor, to the
lifted pins, see below:
Lifting the SLOE pin is not strictly necessary, it is just for making
it compatible with my software for the UUUSB board.
(Note that I have made scratch marks at every fifth pin, this helps alot
against going nuts!)
1 +5 2 GND 3 pa7/flagd/slcs (47) 4 nc??? 5 ifclk (20) 6 I2C scl (22) 7 I2C sda (23) 8 pa0/int0 (40) 9 rdy1/slwr (9) 10 pa1/int1 (41) 11 pd7/fd15 (3) 12 pd6/fd14 (2) 13 pd5/fd13 (1) 14 pd4/fd12 (56) 15 pd3/fd11 (55) 16 pd2/fd10 (54) 17 pd1/fd9 (53) 18 pd0/fd8 (52) 19 pb7/fd7 (32) 20 pb6/fd6 (31) 21 pb5/fd5 (30) 22 pb4/fd4 (29) 23 pb3/fd3 (28) 24 pb2/fd2 (27) 25 pb1/fd1 (26) 26 pb0/fd0 (25)Pins of the Cypress chip that are not brought out on the headers are:
5 clkout 8 ready/slrd* 36 ctl0/flaga* 37 ctl1/flagb* 38 ctl2/flagc* 42 pa2/sloe* 43 pa3/wu2* 44 pa4/fifoadr0 45 pa5/fifoadr1 46 pa6/pktend 51 wkup