Repositories: cp210x, APT Repository.

A USB to UART chip

Silicon Labs sells a single-chip USB to UART bridge, the cp210x. For windows platforms, Silicon Labs offers manufacturing support for setting the various USB descriptor fields, port configurations, etc. They also offer a DLL and example programs showing how to manipulate the GPIO pins available on the cp2103 part. This driver is a strict superset of the driver supplied with the Linux Kernel, but we have not tested the extended features with newer chips, like the cp2104.

The cp210x-module-dkms package in the TMI APT repository has been tested on the following Ubuntu distributions:

  • 14.04 LTS (Trusty Tahr)
  • 12.04 LTS (Precise Pangolin)
  • 11.04 (Natty Narwhal),
  • 10.10 (Maverick Meerkat)
  • 10.04 LTS (Lucid Lynx)
  • 9.10 (Karmic Koala)
  • 8.04 LTS (Hardy Heron)

In our shop we use Xubuntu, but any Ubuntu distribution flavor should be fine. We are now exclusively using 64-bit packages internally. The 32-bit packages are still built, but don't receive much testing.

With support from Silicon Labs, TMI has modified their GPLv2 licensed reference Linux driver to support all of the features their Windows DLLs and utilities provide. This is accomplished via extended ioctl() calls from the kernel cp210x driver, and various utilities and sample code. This code is invaluable for those working on hardware designs using the cp2103. For example, TMI enhancements to tos-bsl in TinyOS allow programming of an MSP430 based target using a USB/serial connection, by leveraging two of the four additional GPIO pins present on the cp2103.

Driver Differences

  • The in-kernel driver does NOT include GPIO or manufacturing features.

  • Silicon Labs has added GPIO features in the driver available on their website, but none of the manufacturing capability. At one point,

  • This driver supports both GPIO and manufacturing capabilities, and includes a user-space header for accessing those features conveniently.