|local||Parallel port FAQ|
|www.doc.ic.ac.uk/~ih/doc/par/||Many parallel port projects|
|www.beyondlogic.org/||At Beyond Logic|
|ftp.ee.ualberta.ca/pub/cookbook/comp/ibm/pport094.doc.Z||Information about the IBM-PC parallel Port|
|ftp.ee.ualberta.ca/html/cookbook/comp/ibm/pport094.doc.Z||Information about the IBM-PC parallel Port|
|iglou.com/members/ITU/pc-int/||Information on parallel port interfacing|
|et.nmsu.edu/~etti/winter97/computers/logic/logic.html||Using a PC as logic analyzer|
|www.lvr.com/parport.htm||Jan Axelson's site|
|title||order at Amazon USA||price indication|
|Parallel Port Complete: Interfacing design and communication, includes EPP, ECP, IEE-1284||ISBN: 0965081915||$32|
|Programming the Parallel Port: Interfacing the PC for data acquisition and process control||ISBN: 0879305134||$36|
|Use of a PC Printer Port for Control and Data Acquisition||ISBN: 0965335704||$15|
|Build Your Own Low-Cost Data Acquisition and Display Devices||ISBN: 0830643486||$20|
|The Parallel Port Manual Vol. 2: Use of a PC printer port for control and data acquisition||ISBN: 0965335755||$19|
|Detecting the World: Capturing physical measurements with C++||ISBN: 0879305592||$36|
Date: 19960221 From: Adrian Ball To: Motorola 68HC11 Apps mailing list Subject: PC parallel ports
Is it possible to control the output pins on a typical PC parallel port directly? I've managed to access the 8 data lines as digital outputs and 4 other pins as digital inputs. It seems to me that I should be able to talk to 4 more pins. Is there some port (i.e. base address + x) I can talk to to configure all 16 pins (preferable controlling which are inputs and which are outputs)?
There are 3 registers associated with each
parallel port, the registers having slightly different functionality
depending on whether or not you have an enhanced (bi-directional) port.
03BC-03BF ---- parallel printer port, same as 0278 and 0378 03BC w(/r) data port 03BD r status port (inputs) bit 7 = 0 busy (pin 11) bit 6 = 0 acknowledge (pin 10) bit 5 = 1 out of paper (pin 12) bit 4 = 1 printer is selected (pin 13) bit 3 = 0 error (pin 15) bit 2 = 0 IRQ has occurred (internal, optional) bit 1-0 reserved 03BE r/w control port (outputs) bit 7-6 reserved bit 5 = 1 data port direction = read (enhanced only) bit 4 = 1 enable IRQ (internal) bit 3 = 1 select printer (pin 17) bit 2 = 0 initialize printer (pin 16) bit 1 = 1 automatic line feed (pin 14) bit 0 = 1 strobe (pin 1)
Be aware that the filtering provided on a printer port varies widely between
different PCs. If you intend to your device to be able to talk to a variety
of PCs, it would be a good idea to pull apart a printer and do the filtering
and tracking similar in your device. Also, dont try to drive any signals too
fast (stick to filtered 74LS* drivers), and ensure that your front end logic
is immune to incomming glitches. If your device is a dongle (ie no cable)
most of these issues disappear, except for the variety of filtering provided
in the PCs.
In short, BEWARE!, using a printer port can be a big can of worms.
Date: 19960221 From: Mark Harrison To: Motorola 68HC11 Apps mailing list Subject: PC parallel ports
Yes you can write to the 8 data lines and 4 control lines on the parallel
port. You can also read the 5 printer status lines by reading the port's
read only status register.
Note that the output control lines are inverted, as are 4 of the 5 status
lines (BUSY is not inverted). Also note that the ACK line can cause an IRQ7
if enabled by bit 4 of the control port!
I've used this port to communicate with an external device at up to several
100 kbps (using serial data transfer over 5 wires, data out, datain, clock,
strobe, and ground). One thing to watch are the 0.0022uf caps to ground on
each data output line - they really limit the maximum output rate!. I used
the control lines instead because they didn't have the caps - instead they
are open collector with a weak pullup to +5V (so they fall really quick but
are slow to rise to 5V!) - this was overcome by using additional 1.2K ohms
pull ups in the external device - your floppy drive should already have
these but may need enabling. It was also necessary to use Schmitt* buffers
in the external device to clean up the slow edges of the parallel ports
lines and reject crosstalk from other wires in a long cable.
Since the data lines are connected to a 74LS374 output register in IBM's
original circuit, and also to 74LS244 buffers to read the data line (all
though nobody ever does!), it is possible (but not recomended) to use this
port in a bi-directional mode - just set all the output register bits high
so they can be forced low by an external device (if it has a low impedance)
and read by the input register. The 74LS374 will sink as much current as it
can but shouldn't self destruct. Don't try this with boards with VLSI or
CMOS* drivers though! A better propersition is to use a real bi-directional
port, or wire the output enable of the 74LS374 to one of the printer control
lines and tri-state the data port properly when reading from it.
Date: 19980102 From: Jeremy N.E. Proffitt To: Multiple recipients of list CHIPDIR-L Subject: Parallel Port Interfacing Information and specifications!
Parallel Ports are addressed as 3 bytes in the computer's I/O memory map.
With three possible starting locations: 378H, 278H, 3BCH. The first two are
normally found on any I/O card, 3BCH for the longest time was only found on
monochrome monitor cards.
Anyways, I have interfaced to the parallel port and had great sucess and it's easy (all TTL signals, no MAX232!) But I only know the specs for a plain old parallel port, not in ECP, EPP or BiDirectional mode, althought this works on my 486 with an ECP port just like it's a regular old port on an XT!
The addresses: I will refer to the first address of the 3 byte I/O address range of the parallel port as PORT, the second as CTRL (PORT+1) and the third as STAT (PORT+2). PINS refer to the 25 pin DSUB connector of the parallel port. And ofcourse PORT.0 = LSB of PORT, etc.
PORT = 8 bytes of output on PINS 2-9, 2 being the LSB. You CAN NOT* READ from these pins, just write to them. PIN 10 = Acknoweldege Output/Input - STAT.6 PIN 11 = Busy Output/Input - STAT.7 PIN 12 = Paper End Output Input - STAT.5 PIN 13 = Select Output/Input - STAT.4 PIN 14 = Auto Feed Input - CTRL.1 PIN 15 = Error Output/Input -STAT.3 PIN 16 = Intialize Paper Input - CTRL.2 PIN 17 = Select Input Input - CTRL.3 PINS 18-25 GROUNDS
That's it for the pins. the Output/Input pins are open collector so to read
from them, make
sure to write a L into that bit before doing so. Also Some of these output
and input pins get inverted. I didn't document well enough on my code to
understand which one do or don't, but that's simple to do with debug or d86.
I will be putting my electronics lab back together in the next few weeks, so
I will have more data by then if anyone is interested.
James, as far as your applicaton, I don't know if the parallel port can
handle the frequency of the distance counter, my proposal is this - external
counter (4020 is nice) and a comparator to a few shift registers (bg micro*
has 74ls299 for 9 cents each, 74323 is very nice but $$$) Anyways, put
these together and pulse the input to the computer to reload the shift
registers - this way while you are shifting in the new stoping point, you
can ignore the comparator. You can try piping 2.5 Mhz on the parallel port
(maybe with a divider) but the ISA buss only runs at 8Mhz so more than
likely will not work. There are always many possiblities!
Date: 19980101 From: JeremyOm 19980101 J. Eduardo Santander wrote:
Can somebody tell me what is the right MAX233 (RS232* driver/receiver) configuration, in order to connect my digital diary to the COM port (DB25). Are there other ways (equally cheap) to communicate digital diary with PC?
The parallel port offers an endless possiblity.
It offers about 12 outputs and 4 inputs, plenty to do serial output to like
74299 (for which BG micro* has on sale for 9 cents each)
No expensive UART!!!!!
This is easy to do in any programming language. If you need help, I have programing examples in asembly and all the port information. I have done this interfacing before, easy.
Date: 19971226 From: Rudy Moniaga To: Motorola 68HC11 Apps mailing list Subject: Parrallel Port Control Shareware
Any one who wants to interface to the real world using parallel port
can try this shareware.
The address of the parallel port is configurable (use lpt1 or lpt2).
This program can be downloaded from:
If you want to contact me for further info:
Date: 19960917 From: Luiz Marques Organization: Enautec Ltda. To: Multiple recipients of list EDESIGN Subject: Bi-directional PC Parallel Ports Standards
I'm interested in additional features of using a bi-directional PC
Parallel Port instead of a old uni-directional Centronics port.
I've heared about *IEEE 1284* but I don't have none information around
Also the newest HP printers need a IEEE 1284 bi-directional Parallel Port
to use all features built-in. I've been with trouble in my HP 680C
Deskjet printer. The printer driver tell me the parallel port is not
bi-directional. I don't know if is a wrong cable or my PC port did not
Have anyone a wiring diagram for a IEEE-1284 compliant cable and/or a
software to verify if the PC port is IEEE-1284 compliant?
The needed information is, at least, the pin funtions, I/O address with
bit assignments and DB-25 to Amphenol-36 Centronics cable wiring.
If you know where I can get a copy of IEEE 1284 standard, please let me
Date: 19960917 From: Jean-Francois Larin To: Multiple recipients of list EDESIGN Subject: Re: Bi-directional PC Parallel Ports Standards
Have anyone a wiring diagram for a IEEE-1284 compliant cable and/or a software to verify if the PC port is IEEE-1284 compliant?
I don't know about IEEE-1284, but I know that bi-directionnal ports exists
in (at least) two flavors: EPP and ECP. I have a program that tests the
ports to find out if they are standtard, EPP or ECP, which I could forward
to you (BinHex* or MIME) if you are interested.
Date: 19960917 From: Tobin Gimber To: Multiple recipients of list EDESIGN Subject: Re: Bi-directional PC Parallel Ports StandardsOn 19960917 you wrote:
Also the newest HP printers need a IEEE 1284 bi-directional Parallel Port to use all features built-in. I've been with trouble in my HP 680C Deskjet printer. The printer driver tell me the parallel port is not bi-directional. I don't know if is a wrong cable or my PC port did not support IEEE-1284.
Your cable is probably fine. On most computers now, you can configure the
parallel port to be uni-directional or bi-directional by going into the cmos
setup of the computer. This is usually done by hitting delete at power up.
Inside the cmos setup there should be an option for the parallel port.
Date: 19960917 From: Herman van den Bergen To: Multiple recipients of list EDESIGN <EDESIGN@mercury.cc.uottawa.ca> Subject: Re: Bi-directional PC Parallel Ports StandardsOn 19960917 you wrote:
I'm interested in additional features of using a bi-directional PC Parallel Port instead of a old uni-directional Centronics port. I've heared about *IEEE 1284* but I don't have none information around these *standard*.
For IEEE 1284 try:
A source for economy bidirectional PPs (about$20 retail) see: