Introduction

This is a 24 bit I/O card designed to work with the parallel/printer port of an Amiga or
PC. It uses the Intel 82C55 I/O chip to facilitate this.

Design status

Breadboard prototype built and tested.
Software drivers for the Amiga written and going through final testing.
PC software drivers in progress (had to learn how to hit hardware with XP).
25th July 2003, first prototype PCBs received, ready for building.

4th May 2004 update
The parallel port drivers for the Amiga and PC versions have been written and tested. Windows 2000/XP is a bitch for I/O!
I am working on some simple applications and a GUI.

How it works

The 8255 was designed to work with the 8086 processor and the ISA bus, which makes interfacing easy. Making it work with the parallel port took some lateral thinking.

The device has 2 address lines, a chip select, read and write strobe. The parallel ports of the Amiga and PC have a limited (3) number of control lines, even then at different pin-outs, at least the 8 data pins line up! Remembering that the 8086 bus was multiplexed, inspired my solution, use 2 data pins with latches for the address and one control signal to control them. I then use an inverter to create /RD and /WR from another control line and the final control pin to control the chip select.

To access the chip requires two stages:

Phase 1, select the register you want to address and latch it into the 7474's using the CLK_LATCH pin.

Phase 2,

If it is a write operation, place the parallel port D0-D7 into output mode and write the data to the port. Then drive pins 13 (SELECT) and 11(BUSY) low, the data then gets latched into the 8255. Now set select high.

If it is a read operation, place the parallel port D0-D7 pins into input mode. Now set SELECT (pin 13) low and BUSY (pin 11) high. Read the data at the parallel port then set SELECT high.

There are jumpers on the schematic/PCB to select operation with the Amiga and PC.

Schematic
Click on the picture below for a full screen schematic.

Possible uses

With suitable interface circuits you can do many things, control LEDs, stepper motors, relays, solenoids and read many input devices.

At a later date I hope to add some circuits for A/D converters, D/A converters, relay circuits, and lamp drivers.

Design limitations

There are some limitations of this design. Accessing the device through the parallel port limits the device to around a 1 MHz/1us access time!

The 8255 can only source/sink 2.5mA of current per output, not enough to drive a standard LED at a reasonable brightness. I always buffer I/O devices like this with a 74245 bus transceiver, as it is cheaper to blow one of them up than the 8255.

Future Work

Finish the software drivers and publish the full notes.
Publish the PCB design.
Add the circuits mentioned under possible uses.

That's it for now.

Prototype pictures
(added 4th May 2004)

Here is my assembled prototype and a bare PCB.

Welcome
Projects
Links
Downloads
Micro Bits 'n' pieces
Amiga
Technical
About
Sales
24 bit I/O card