Quote:
I have been looking around online alot for a simple usb to 15-pin converter.
I guess I am just surprised this kind of device doesn't exist else where.
|
This is like saying why isn't there a simple SATA to IDE breakout cable or better yet, an IDE to SATA conversion cable! The IDE is a parallel bus, command and data bits are physically implemented. SATA is a serial bus, the serial bus requires a protocol overhead that encapsulates the data from the parallel physical implementation into a serial data packet that virtualizes the physical bus. You have to follow the serial bus transmission protocol and open and interpret the command/data packets in order to reconstitute the physical bus information. Since there could be different types of information in the packet - that too has to be included to identify the type of data.
Its the same with 15-pin joystick port and USB.
The 15 pin joystick cable is a physical implementation of switches and analog components. The physical components are right there on the pins. You can stick a multimeter on the pins and directly measure the switches and analog devices.
USB is a serial communications standard. Command and data packets are sent over the serial bus and embedded intelligence has follow the USB transmission protocol plus it needs to interpret the commands and data within the serial packets once it has them. Part of the command and control packet flow involves self-discovery (what are you? I'm a HID class device. Who are you? I'm a xbox 360 controller, etc.) So, the physical components on the controller, the switches, analog joysticks, D-pads, etc. are virtualized into serial command and data packets that sent over the USB port. To complicate matters, HID (human interface devices) can report out their data differently. There is no easy way to just rewire a USB virtual implementation into a physical implementation without a lot of embedded smarts to clock in/out the data, etc. Hence the chicklet.
http://en.wikipedia.org/wiki/Image:L...tion_Trace.jpg
http://en.wikipedia.org/wiki/USB_hum...e_device_class
You should be able to turn the expensive usb controller into a 15 pin controller but it requires major surgery. Open the controller cut out all the wires associated with the USB portion and throw them away. Now solder in a new 15-pin pig tail to the switches and joysticks directly - bypassing all the USB stuff. Of course if you do that, the joystick is no longer usable for its original USB purpose.
PS
As a complete aside - why go serial in the first place? Because there are physical limitations in parallel buses. Things like SCSI ULTRA320 have incredibly tight tolerances - both physical and electrical - because of signal propogation delay differences on the different bus lines. Signals are sent out together, but don't arrive together due to different propogation delays. In contrast, a serial data protocal like 4G FCP fibre also used in storage systems doesn't have those types of signal line limitations. In this case FCP-SCSI protocol is used. It virtualizes the standard SCSI storage protocol and allows multi-pathing, multi-drops, long transmission lines that are virtually impossible with parallel bus scsi. Networks using ethernet gigabit adapters are another serial protocol and there is SCSI over IP products. SD and MMC cards are serial. The I20 is a serial bus standard for which pre-packaged sensors exist. Lots and lots of serial buses. In addition, high pinout connectors are very costly especially ones for high frequency applications - simple 4 pin serial buses have relatively cheap connections in comparison. The big thing that serial needs to work is the additional intelligence to follow the communication protocol between the two ends and intelligence to package, send, recieve, and interpret the data once a packet arrives. Sorry for the digression - part of my day job.