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.