Parallel printer interface
The most common standard for parallel printer interfaces from the 1970s to the early 2000s was the "Centronics interface" originally defined by printer manufacturer Centronics, and widely employed throughout the industry.
It has a parallel, originally unidirectional, 8-bit data path, with a /Strobe signal indicating new data, an /ACK signal indicating data acceptance (often ignored), and a Ready signal indicating the printer can accept data.
A minimum implementation would simply monitor BUSY for low status, apply data, pulse /Strobe low to transmit, and repeat. (Minimum width of the strobe pulse is 0.5 μs, data setup and hold times should also be ≥0.5 μs. SelectIn would need to be tied low.)
Signal levels are 5 V TTL.
The original connector - almost always used on on the printer side - was a 36-pin micro-ribbon connector. On the computer side, a 25-pin D-sub connector was the de-facto standard established with the IBM PC.
The IEEE-1284 standard later defined a bidirectional bus that is backwards compatible with the original Centronics parallel port and achieves 2 MByte/s transfer speeds.
Pinout
DB25 pin | MR36 pin | Signal name | Direction | Active |
---|---|---|---|---|
1 | 1 | /Strobe | C→P | Low |
2 | 2 | Data0 (LSB) | C→P | |
3 | 3 | Data1 | C→P | |
4 | 4 | Data2 | C→P | |
5 | 5 | Data3 | C→P | |
6 | 6 | Data4 | C→P | |
7 | 7 | Data5 | C→P | |
8 | 8 | Data6 | C→P | |
9 | 9 | Data7 (MSB) | C→P | |
10 | 10 | /Ack | P→C | Low |
11 | 11 | Busy | P→C | |
12 | 12 | PaperOut | P→C | |
13 | 13 | Select Out | P→C | |
14 | 14 | /Autofeed | C→P | Low |
15 | 32 | /Error | P→C | Low |
16 | 31 | /Reset | C→P | Low |
17 | 36 | /Select In | C→P | |
18-25 | 16,19-30,33 | Ground | ||
Shell | 17 | Chassis Ground |
- Sometimes printers provide +5 V on MR pin 35 and/or MR pin 18.
- Direction: P→C Printer to computer, C→P computer to printer