AN0001 - Four Port Serial Adapter for the EB675001DIP

Fully realised projectSections:
Introduction
Design
Schematic
Firmware
Prototype
PCB Design
Software
Documentation
Online Support

Introduction

This application note describes the addition of a quad serial controller to the EB675001 Module. A multi source quad Universal Asyncronous Reciver and Transmitter (UART), 16554 type, was selected to ease implementation and sourcing of components. The RS232 line drivers were similarly selected. The UART is connected to the system by using the user CPLD which removes the need for any additional logic.

Design

Computer serial communications

Serial communications are those where data is transmitted one bit at a time along a single communication channel, typically varying a voltage on a piece of wire between two computers. Serial peripheral buses within computing are very common, examples of some are USB, Firewire and RS232

This design is for RS232 type serial ports. There are a large number of RS232 serial peripherals used within the computing world and it is often desirable to access several of them over a network typically using an Ethernet connection.

The RS232 bus is almost always used in its asynchronous mode of operation that is a mode where the data is transmitted without a regular clock signal. The data to be sent is presented as a series of seven or eight bit wide values, each value is trasmitted as a binary level between start and stop bits. The data is sampled at a pre-determined rate and is triggered by the arrival of the start bit.

The RS232 specification also defines the voltages and physical requirements. Because the standard is so common simple devices exist, called line drivers, which implent it with minimal additional circuitry. The asyncronous signals are typicaly generated with a Universal Asynchronous Receiver and Transmitter (UART) this device connects to the computers I/O bus.

There are a large number of sources which explain the RS232 standard one such reference is this wikipedia article.

Outline

The proposed design is a quad UART and four line drivers attached to the EB675001DIP module using its user programmable CPLD to perform all the necessary decode and timing logic.

Block diagram showing the logical layout of the EB675001DIP quad serial port application note project The 16554 device is four 16550 style UARTs in a single package which allows for four independent high speed (921600 baud maximum) asynchronous serial ports. The addition of RS232 compatible line drivers provides a total of five RS232 serial ports (the EB675001DIP module has a 16550 style UART and line driver already built in).

Component Selection

A compact design was desired for this solution so a small 64pin TQFP package was selected (this measures 10mm x 10mm). Other physically larger packaging options exist e.g. a 68 pin PLCC package which should not affect the overall design.

The UART is available in the 3.3V supply, 64pin TQFP package from a number of suppliers, we have selected the Exar ST16C554D but alternatives exist such as Twist Semiconductor TG16C554, EPIC Semiconductor Ei16C554 or Philips SC16C554D (note there have been some issues reported with IRQ handling on the Philips part - use with caution)

The RS232 line drivers are similarly selected for size and multiple source supply. The line drivers are available in 28pin TSSOP package from a number of suppliers, we have selected the Texas Instruments SN75C3243 but alternatives such as MAXIM MAX3243 exist.

It was decided to use RJ45 type serial connections rather than 9 way D types to save space, the standard Cisco style wiring was selected.

Going further

If more ports were desired they could be added with a second UART. All data, address and control lines except the chip selects can be connected in parallel to the second UART. Some additional decoding within the CPLD to assert the correct chip selects would also be required.

Schematic

The schematic creates a specific design from the general ideas outlined previously. The design was generated directly by creating data, address and control buses and connecting the UART to them. The four line drivers were then wired to the UART and to the RJ45 connectors.

In addition six LED were wired using simple transistor drive to limit the current direct from the CPLD logic pins.

The schematic was created with the "light" version of the Cadsoft EAGLE package. This schematic layout package was used to demonstrate what can be achieved with freely available software on a single page with the flexibility of the EB675001DIP module.

Schematic of the EB675001DIP quad serial port application note project The schematic was constructed using standard EAGLE library with a few additions

The complete schematic diagram is straightforward and adheres to the logical layout as detailed previously. Please refer to the documentation section for this schematic in several alternative formats.

Firmware

To interface the EB675001DIP to the quad serial circuit the user CPLD must be programmed with the appropriate logic. This logic must decode the correct address and chip selects from the OKI ML675001 into the correct address and read/write strobes to the quad UART. In addition to this decode operation the CPLD must provide a clock signal suitable for use by the UART derived from the CPLD reference clock input.

The template VHDL EB675001DIP user CPLD project was copied and renamed. The decode and clock logic were constructed and attached to the CPLD pins using the schematic as a reference. The complete project is available as well as the xsvf file for use with the PlayXSVF tool which allows for the CPLD to be programmed without any additional hardware.

For more details on programming the user CPLD please refer to the user CPLD section EB675001DIP resource page

Prototype

A prototype was constructed on some wirewrap board, a board with the UART and line drivers was used which was available from another project which reduced the required wiring.

After construction of the prototype the firmware was uploaded and checked for correct operation using the peek and poke commands, from ABLE, to access the UART control registers.

The CPLD code had to be improved to hold the I/O cycles for the correct length of time as initially large numbers of characters were lost.

PCB Design

The next step after a working prototype was to progress to a printed circuit board. A half eurocard (100mmx80mm) sized board was prepared in EAGLE. It should be noted that for complete use of this design the EB675001DIP module should be ordered without its Ethernet and RS232 connectors fitted.

Board design of the EB675001DIP quad serial port application note project The main design parameters of the board were :

By using these design parameters this board should be relatively easy to manufacture. A larger track and gap rule could not be used as these values are a result of the UART TQFP sizes.

A complete archive of the generated Gerber has been produced for convenience. Many small run board houses will generate circuits directly from the eagle board file, please be sure to get the DC socket connections cut as slots (eagle does not have a way to directly specify this).

Board design of the EB675001DIP quad serial port application note projectA 3D povray model was created with Eagle 3D. This model is useful in designing enclosures and for visualizing the completed design.

Populated prototype PCB for quad serial port projectPrototype PCBs were purchased and populated, correct operation was verified and the design modified slightly to improve areas the initial batch have highlighted. Main areas were lack of RTC backup battery for keeping the time, using the correct footprint for the RJ45 connectors and ensuring the VIAs were as large as possible to improve required drilling tolerances.

The complete partlist lists every component and its value, the abbreviated list here is useful as a simple BOM.

QuantityValueComponent
1 DC21PDC 2.1mm Socket
1 CR2032V3.3V lithium standby battery
4 MAX3243UITSSOP28
1 ST16C554CQ64Exar ST16C554CQ64 64Pin TQFP
1 EB675001DIPQILSimtec EB675001DIP
6 BC817-25SMDSOT23 small signal transistor
1 LM1086VCT-3.33.3V power regulator TO220V
1 B3F-31XXOmron switch
6 L-934CB1ID3mm Kingbright LED
1 557571-1AMP RJ45 Ethernet with LEDs
1 557786-1AMP Single RJ45
1 0569564-1AMP Quad RJ45
140RR0603
1 0RR0805
1710kR0603
4 33KR0603
1 10uC0805
2 10uElectrolytic
22100nC0603
8 390RR0603

The zero ohm resistors on R25, R26, R27 and R28 are not fit parts and are provided for the forcing of the line drivers to always be powered. These four resistors are not listed in the BOM.

Software

To use the ports in a familiar environment it was decided to modify μCLinux to support the additional four ports. A simple patch to apply against the EB675001DIP μCLinux port was created. Once applied and the kernel and initrd rebuilt, the created image may be booted as explained in the μCLinux notes.

This patch allows access to an additional set of four serial ports, devices ttyS1 through ttyS4, as standard UNIX style serial ports. These ports may be used as with any Linux serial port, applications range from a serial terminal server to command and control applications. The user space usage is beyond the scope of this application note.

Documentation

Schematic DiagramPDF filePNG image filePostscript fileEAGLE Schematic file

Online Support


Disclaimer

Information contained in these publications regarding device applications and the like is intended as suggestion only and may be superseded by updates.

It is your responsibility to ensure that your application meets with your specifications. No representation or warranty is given and no liability is assumed by Simtec Electronics with respect to the accuracy or use of such information, or infringement of patents or other intellectual property rights arising from such use or otherwise.

Trademarks

All trademarks mentioned are the property of their respective owners.