Article
16 from 4
Port expansion using 74HC595s
Not having enough ports on a microcontroller to drive all the functions of a circuit is a commonly-encountered problem. The clever port expansion boards described here offer a solution, and need just four signals from the microcontroller. The first board provides sixteen digital output bits; the second board, equally simple to drive, can be used to interface to a HD44780-compatible LCD module. A C library is available to facilitate using the boards with AVR microcontrollers.
Materials
Gerber file
CAM/CAD data for the PCB referred to in this article is available as a Gerber file. Elektor GREEN and GOLD members can exclusively download these files for free as part of their membership. Gerber files allow a PCB to be produced on an appropriate device available locally, or through an online PCB manufacturing service.
Elektor recommends the Elektor PCB Service service from its business partner Eurocircuits or AISLER as the best services for its own prototypes and volume production.
The use of our Gerber files is provided under a modified Creative Commons license. Creative Commons offers authors, scientists, educators and other creatives the freedom to handle their copyright in a more free way without losing their ownership.
PCB
Extra info / Update
Features
* Port expansion from four outputs to sixteen outputs
* Additional circuit board to interface to HD44780-compatible LCD using four port pins
* Controlled using software SPI emulation with free choice of microcontroller output pins
* Boards may be cascaded
* Maximum total load on all outputs approximately 70 mA
* C library available for AVR microcontrollers to drive port expansion and LCD interface boards
* Port expansion from four outputs to sixteen outputs
* Additional circuit board to interface to HD44780-compatible LCD using four port pins
* Controlled using software SPI emulation with free choice of microcontroller output pins
* Boards may be cascaded
* Maximum total load on all outputs approximately 70 mA
* C library available for AVR microcontrollers to drive port expansion and LCD interface boards
Component list
LCD board
Resistors
R1,R2 = 1kO
R3 = 4kO7
P1 = 10kO preset
Capacitors
C1,C2 = 100nF
Semiconductors
T1 = BC557
IC1 = 74HC595
Miscellaneous
K1 = 2-way pinheader
K2 = 10-way pinheader (2x5)
JP1 = 3-way pinheader with jumper
PCB no. 080682-1
Port expansion board
Resistors
R1 = 1kO
Capacitors
C1,C2 = 100nF
Semiconductors
IC1,IC2 = 74HC595
Miscellaneous
K1,K2 = 2-way pinheader
K3,K4 = 8-way pinheader
K5 = 10-way pinheader (2x5)
JP1 = 3-way pinheader with jumper
PCB no. 080682-2
Resistors
R1,R2 = 1kO
R3 = 4kO7
P1 = 10kO preset
Capacitors
C1,C2 = 100nF
Semiconductors
T1 = BC557
IC1 = 74HC595
Miscellaneous
K1 = 2-way pinheader
K2 = 10-way pinheader (2x5)
JP1 = 3-way pinheader with jumper
PCB no. 080682-1
Port expansion board
Resistors
R1 = 1kO
Capacitors
C1,C2 = 100nF
Semiconductors
IC1,IC2 = 74HC595
Miscellaneous
K1,K2 = 2-way pinheader
K3,K4 = 8-way pinheader
K5 = 10-way pinheader (2x5)
JP1 = 3-way pinheader with jumper
PCB no. 080682-2
Discussion (0 comments)