Browse over 10,000 Electronics Projects

AT90LS8515 PBX

AT90LS8515  PBX

In this project, we demonstrate the 4 line telephone systems with full signaling and switching functions similar to those of the central office systems. Dial tone, busy tone, and ring tone are provided during call progress. Ringing is generated at the receiving end of the phone being called. Switching employs integrated circuit (IC) matrix switches on four buses.
Motivation for doing this project

We were looking for a project, which offers a balance between software and hardware. Telephone switching came to our mind after we first considered X-Y plotter. The latter, however, is rather involved in mechanical hardware, neither of us has really had experience on. So, we opted for telephone switching where the hardware involved is electronics in nature. High level design

The telephone systems we built consist of the phone line interface circuits and the MCU on the STK2000 development board.

Each phone line interface circuit has the following hardware.


Hook switch relay

Tone frequency generator

DTMF receiver

IC switch

The four phones share a common ringer; for all the other components, each phone has its own individual. This is primarily due to the wattage rating of the ICs, we use.

The MCU on the STK2000 is the central brain of the systems, whose embedded software provides the control functions to each of the phone line interface circuits connected to it. PORT-A is used as the address bus, which, via decoding logic, provides the enabling signal to appropriate functional units. PORT-C is used as the data bus that read and/or write data to those units. PORT-D is reserved for UART. Initially, it is used for debugging during systems start-up. It can be modified to provide the central monitoring function for the entire systems.


All communication to the functional units via the PORT is asynchronous and level enable.

Program design

The embedded program in the MCU that provides the control functions cycle through the state machine shown. (Receiver, Sender#1, and Sender#2)

Timer 0 is used to provide a time base for polling each phone. It is set such that each phone gets serviced every 40 ms. Note that this is more than adequate for phone state update as a human typically press a dial button for more than 100 ms before releasing it.

The busy tone and ring tone cadence can be change at #define at the beginning portion of the program.

The number assigned to each phone can be increased if we expand the states after CALLEROFFHOOK to cycle through a number registration state machines before moving on to CHECKRECEIVER.

The switching scheme is such that the sender acts as a master to the bus to which it is assigned. When a receiver is available, the program switches the sender on its bus and forces the switch on the receiving end to switch on the same bus.

We use a scheme, which the receiver is the full slave of the sender. The receiver state after RINGING is completely determined by the sender. The receiver is able to return to IDLE after RINGING and RECTALKING (receiver talking) only when the sender has returned to IDLE. This is done to reduce the overall states and signaling and, hence, simplify the programming and the required hardware.

Visit Here for more.