|USB-Serial Dreamcast Coders Cable|
I changed the parts list to reflect the use of the 6.000Mhz crystal. You could put a socket on the board for the crystal, then you could try a 6.144Mhz one just to see if it would work for you. If the USB ports on your PC are USB 1.1 complient then the cable might just work at 1.56M baud. No guarantees though. I just got really lucky.BTW I sold one rev D board recently. There are not many left so don't wait too long to contact me if you think you might want a bare PCB for yourself.
Just a quick note. It seems some PC's USB ports don't like this USB Coders Cable. I traced the problem to the 6.144Mhz master clock. I might modify the design and add a 6.000Mhz crytal and jumper. Going back to the 6.000Mhz limits the max baud to 500K, but that's still faster than the traditional serial coders cable.
|The short story goes like this: It was spring of 2003 or so and I was depressed and didn't feel like programming or messing around with my Dreamcast anymore. My daughter wanted a Gamecube so I thought I'd sell off the Dreamcast and use the money to get it for her. It happened that the Midwest Classic was being held that weekend and Dan Potter was going to be in town. I sent him an IM and asked if he were interested in buying some DC stuff; BBA, games etc. So I loaded up the car and headed down to the east side with a trunk full of DC goodies. Sold the BBA and a couple games; shook hands with the master coder himself and his cohort Rodney; made the transactions and took in the sights at the show...|
|...Well my daughter has her Gamecube going on a year now, and yes, I've felt pangs of regret having sold the BBA during that time. I had looked for another BBA on EBAY, but none were to be found. This last August 2004 I was reading through some posts on the Cryptic Allusion Game forums and ran across a discussion about hacking a USB controller onto the DC. I was not up to adding a USB controller to the DC so external stuff like hard-drives, flash memory, etc. could be plugged in and used for all sorts of cool things, but wondered if I could build a faster serial coders cable using some sort of USB-serial cable. Thus this project was born.|
|Operate reliably at the the Dreamcast's maximum baud of 1.56M bps.
Cost less than a BBA.
Work with existing homebrew development tools: i.e. dcload serial.
Work with Linux, Mac OS/X, Windows (Cygwin) operating systems.
|The current design meets these goals with the following exceptions: a new driver needs to be released by the USB chip manufacturer so that non-standard bauds can be utilized under OS/X; Some changes were required to make Andrew Kieschnick's dcload serial work with faster bauds under Linux.|
|Dan Potter was kind enough to test the USB-Serial Dreamcast Coders Cable (USB-CC) under Mac OS/X and to hack dcload serial for OS/X. The final cut of dcload serial won't be ready until we are able to test it with new drivers.|
|How it works|
|Refer to the schematic and follow along. I suggest you download the image and print it using an image editing application that will let you fit the image on a single piece of paper in landscape orientation.|
|The heart of the circuit is IC1, the USB UART (USB-Serial) integrated circuit made by Future Technology Devices International Ltd. (FTDI). The FTDI part number for this chip is FT232BM. It is a second generation part that does all the hard stuff relating to the USB protocols. The coders cable is based on a bus powered reference design from the devices application notes. There are some subtle, yet important differences however. The most significant being the frequency of crystal X1. A frequency of 6.144 Mhz was chosen so that the coders cable can operate at the maximum baud supported by the Dreamcasts serial port. The chosen frequency is a compromise between readily available crystals and a calculated ideal frequency of 6.25Mhz. The FTDI engineers designed this chip so that low cost ceramic resonators could be used with it. The frequency does not have to be exactly 6.000Mhz. This design takes advantage of this feature by using a frequency that allows the chip to communicate on the USB and serial interfaces reliably and meet the design goals.|
|IC5 is a serial EEPROM used to store configuration data for IC1. For this project I have left it unprogrammed, but decided to keep it in the case I wanted to experiment with the settings. The parts IC5, R15 and R16 could be left out of the circuit to save space and or money if desired.|
|IC3 and IC4 form an isolation circuit that prevents currents from flowing between the Dreamcast and the host PC via the USB port when the power to either device is turned off. This is required to make the cable meet USB device specifications. IC3 is a low voltage high-speed bilateral analog switch whose I/O lines go to a hi impedance state (Hi-Z) when gate enables are taken high or when there is no power applied to the Vcc pin. These characteristics make this an ideal chip for this application. IC4 is used to invert the signal from the FT232BM's _SLEEP signal. The _SLEEP signal is high when there is power on the USB bus. the _SLEEP signal goes low either when the USB device is told to go into low power mode or when there is no power on the USB bus.|
|IC3 and IC4 get their power from the Dreamcasts serial port. When the Dreamcast is powered and the USB side is unpowered, the active low _SLEEP signal is inverted by IC4 which pulls the analog switches active low enables high isolating the serial interface lines.|
|When the USB side is powered and the Dreamcast is turned off there is no voltage to operate IC3 and its I/O lines go to Hi-Z isolating the serial interface signals on the USB chip.|
|With power applied to both sides of the circuit, IC3's analog switches allow signals to pass between the Dreamcasts serial port and the USB chip.|
|IC2 is a Transient Voltage Suppressor (TVS) array that along with resistors R3, R4, R5, R7, R10, R12, R13, and R14 form an I/O protection network. Resistors R4, R7, R12, and R14 keep the I/O lines from floating. Resistors R3, R5, R10, and R13 limit current and IC2 helps protect IC3 from static discharges.|
|Drivers - Serial Programming|
|There are drivers for Free BSD, Open BSD, Linux, Mac OS-8, OS-9, OS-X, and Microsoft Windows (98, ME, 2000, XP). To the operating systems the USB chip looks like a serial port. Programmers don't have know anything about USB protocols. On a Windows system the device will appear as a COM port. Under the *nix like operating systems it appears under the device file system as a character device. Standard serial programming practices are used to setup the serial parameters. There are a few gotchas however. The FT232BM's serial UART is capable of running at much higher bauds then a standard RS232 serial port. This can be a problem if the OS places restrictions on what bauds can be programmed. I have not had any problems setting high bauds under Windows, or Linux, but at the moment we have not been able to use non-standard bauds under the Apple Mac's OS's. FTDI explained to me that they are aware of the problem and hope to have new drivers at the end of 2004 or beginning of 2005.|
|Tools that work with the USB Coders Cable|
|A new version of Andrew Kieschnick's dcload-serial tool set is being readied for release. It supports the 50K and 1.56M bauds under Linux and Cygwin. There were a few improvements too and hopefully it will work under Mac OS-X as well once new USB drivers are available for it.|
|Other tools created for Marcus Comstedt's (Lik-Sang) coders cable will work with the USB coders cable. The Windows versions of these tools may work at the higher bauds without modification. Linux based tools will require some modification to enable the 50K and 1.5M bauds.|
|If you are going to build your own USB coders cable based on this design you will probably want to know where to get components and parts. This section has the Bill of Materials (BOM), and some sources. This section also has the pinouts and color codes for the serial plug.|
|1||100Mhz 600 Ohm Ferrite bead||0805||FB1||Digi-Key||240-1035-1-ND|
|4||0.1uf||0805||C2, C3, C8, C9||Digi-Key||PCC1828CT-ND|
|3||27||0805||R1, R6, R8||Mouser||260-27|
|4||100||0805||R3, R5, R10, R13||Mouser||260-100|
|5||100k||0805||R4, R7, R12, R14, R17||Mouser||260-100K|
|1||USB RECEPTACLE TYPE B||RT ANGLE PCB||J1||Mouser||571-7877802|
|1||DC Serial Plug||VS Link Cable||Plug||Lik-Sang||Item No. 592|
|1||Hammond Case||3.9 x 2.0 x 0.8||Case||Mouser||546-1591ATBU|
|1||PCB Card Adaptor||Hammond Case Accessories||Case||Mouser||546-1591Z6|
|Component and Technical Resources|
Future Technology Devices International Ltd. (FTDI)
|The USB Coders Cable is a USB 2.0 Full Speed device.|
|Get the schematic and layout files USBCC-F.zip in Eagle format|
|Here's some of the pictures taken during the development of the cable:|
|Copyright Axlen.com 2004-2008|
|SEGA and Dreamcast are trademarks of SEGA Enterprises
Nintendo and Gamecube are trademarks of Nintendo