Aetheric logo

The problem

Most small computers of recent vintage lack "traditional" RS-232 compatible serial communication ports. This makes the connection of Teletype machines to such computers somewhat difficult. While "USB to serial" converters are widely available, few such devices will operate at the low baud rates required by the mechanical Teletype machines.

We have developed a means for dealing with this annoyance.

The Silicon Laboratories CP2102

SiLabs USB to serial converter
Silicon Laboratories CP2102-EB evaluation board connecting a USB port to our Teletype interface board

The Silicon Laboratories CP2102 chip, which is a single-chip device for bridging USB ports to serial connections in current production, is capable of operating at slow baud rates if suitably configured. Here we are using the Silicon Laboratories CP2102-EB evaluation board, which has a DB-9 connector on one end and a USB connector on the other. This product sells for $29, including board, driver disk, and cables,, but without a case.

Reconfiguring the device for 45 baud.

Plugged into a Windows machine, this device will become a COM4 port. It will not, as delivered, run at 45.45 baud. To do that, it must first be reconfigured. Reconfiguring the device is performed with a program provided by Silicon Laboratories, the CP201x Baud Rate Reconfiguration Utility.

Instructions for this program are in Silicon Laboratories Technical Note AN205. (alternate link). Here we provide some brief directions.

Screenshot of SIlabs config tool

Select the row here that contains, in the "Application Requested Baud Rate Range" columns, the baud rate range you wish to map to the desired teletype speed. Double click on that row. We recommend remapping the range that contains 600 baud (High 600, low 301, not shown in this image, scroll the dialog box down), which is seldom if ever used.

The "Edit Configuration" box below should appear.

Screenshot of SIlabs config tool

Enter the desired baud rate (45, for 60-WPM teletypes) in the "Desired Baud Rate" box. Click "OK".

This returns you to the "Baud Rate Configuration" dialog. Click "Set Configuration" to set the baud rate table into the device. Then click "Exit". The device has been reconfigured and will stay that way..

Once you have done this, the device will thereafter use the baud rate you set (45 baud) when asked to operate at 600 baud by an application program. This configures the device itself, not the Windows machine using it. So once that's set, you can use it on other computers, including non-Windows machines.

Notes on using this device

This device is well-behaved on the input buffering side, and will deliver queued characters after a 1ms delay. It is not necessary to change the USB Receive Time Timeout for this device.

The device does have a large output buffer, enough for almost a minute of typing at 45 baud. This can be annoying in interactive applications. Unfortunately, the buffer size does not seem to be a configurable option. We have found it necessary to flush the output buffer when the user wants to input and the Teletype is already typing. On Windows, this is a standard function. The stock USB driver for Linux does not support flushing, so we set the device to a very high baud rate for a fraction of a second to flush queued output.

We've used this device with both a Windows PC and with a Linux EeePC 2G Surf, a very small subnotebook.

Using other devices which contain this part

There are other USB to serial converters on the market which use this part. However, they may "lock" the part during manufacturing so that the parameters cannot be changed as above. The evaluation board is "unlocked', and so the baud rate tables can be changed as desired. If you find a USB to serial port device which uses this chip and which can be configured with the Baud Rate Reconfiguration Utility, please let us know.

June 14, 2011