|  | 16c95x serial port driver

16C95x serial port driver — background, design, and implementation guide

The 16C95x family (often referred to as 16C950 / 16C954 / related PCI UART-style devices) are multi-channel serial controller chips commonly found on industrial I/O cards and embedded platforms. This post explains the device features, driver architecture, key implementation details, common pitfalls, and a small reference implementation outline suitable for a Linux-like environment. The goal is practical: give an engineer what they need to write, port, or debug a driver for a 16C95x-based serial card.

You can find this document on the official MaxLinear website under the "UARTs" product section.

Benchmarks show that a well-tuned 16C95x driver can achieve >1 Mbps with <5% CPU usage, compared to >50% CPU on a 16550 at the same rate.

Buffer Overrun: If you are losing data at high speeds, ensure Flow Control (Hardware RTS/CTS) is enabled in both your software and the driver settings.

Important: The Rx FIFO may also trigger a timeout interrupt (when less than threshold bytes are pending for 4 character times). The driver must handle this by reading the remaining bytes.

windows

ABOUT THE AUTHOR

POST YOUR COMMENTS