A primer on extending serial ports in embedded designs
Extending Serial Ports in Embedded
Systems
Since most embedded system provide fewer than required number of serial
ports, the board designer has to find some way to extend the number of
serial ports. Fortunately, a number of options exist and the choice
will depend upon the level of comfort of designer has with hardware
design as well as the amount of additional software support.
USB to Serial Port. If the processor has a USB host, this will be the best choice. The designer, for example, can add a 4 port USB Hub to an existing USB host. This will provide 4 USB ports. An example of the USB Hub is Genesys Logic's GL850A IC.
The designer can, for example, use one of these four ports for USB, while other three can be used for extending Serial port. A USB to serial port bridge can be used for extending serial port. An example of the USB to serial port bridge is Prolific's PL-2303 IC. Figure 2 below shows an example implementation.
![]() |
| Figure 2: Extending Serial Port using USB Hub and a USB to Serial Port Bridge |
The Prolific's PL-2303 gives the TTL logic level. If an RS232 level is desired, an RS-232 Line Driver/Receiver should be used after the Prolific's PL-2303 IC.
Usually the driver for the USB Hub as well as USB to Serial port IC are available, so there is very little software/hardware integration issues.
I2C to Serial Port. In smaller microcontrollers, where USB port is not usually available, an I2C to Serial Port converter is the best choice. Philips SC16IS752IPW is an example of I2C to Serial port converter. Figure 3 below shows how to extend 4 serial ports from an I2C port.
![]() |
| Figure 3: Extending the serial port using an I2C to Serial Port Bridge |
There is, however, a speed limitation in these kinds of implementation. Because of limitations on the I2C bus side, there are no very fast serial ports. So this implementation works only if the serial ports needed are connected to an application that does not need blazing performance.
It is also worth noting that this implementation will require driver development on the software side. On balance, however, this is a good scheme for small microcontrollers as well as some large microprocessor implementations.
Address/Data Bus to Serial Port (UART Controller). Almost always available no matter what the nature of the embedded system, is the the address/data bus to serial port (UART controller). It can almost always be employed in any processor system that has Address/Data bus support.
On the down site, for the functionality it provides it requires much more board space compared to some of the other alternatives discussed here On the plus side, however, it almost always has the driver support no matter what the platform. Philips Semiconductor's SC16C652IB48 UART controller, for example, provides two serial ports.
Adding a small microcontroller. We can also add a small microcontroller if we need to provide some functionalities in addition to the serial port. It can be useful to design a small microcontroller that will provide a number general purpose of functionalities to be used in many projects.
You should find a microcontroller that connects to the main processor without sacrificing the available serial port. As an example, a main processor that connects using SPI and the small microcontroller provides two serial ports.
Some things to watch out for
The designer should not rely on extending the serial port after
designing the complete system. If there is a requirement for more
serial ports, attempts should be made to choose a processor that will
provide the required number of serial ports without using any add-on
circuitry. For example, Atmel's ATMEGA640V-16AU IC provides 4 serial
port and is comes in the category of small microcontroller.
Also, be mindful of the fact that in most full fledged processors the first serial port is usually for the boot loader and the designer should try to leave it for debug purposes. Using the first serial port for the application can pose additional difficulty to the designers during the development phase.
Vikas Shukla is currently working
as Senior Design Engineer at BL
Healthcare. He has degree in Computer Science and Engineering from
IT-BHU, Varanasi, India. Mr. Shukla has over 15 years of experience in
design of microprocessor-based systems. His expertise includes signal
integrity, architecture and design of remote patient monitoring systems.




Loading comments... Write a comment