View Single Post
  #18   Report Post  
Ryan Kremser
 
Posts: n/a
Default computer interface help with at least 29 output ports

thanks thats what i needed, makes a lot more sence to me now.

"petrus bitbyter" wrote in message
m...
Ryan,

You have to connect the eight data lines of your parallel port to the

inputs
of all registers. To write an address into the address register you first
have to put that address on the data lines of the printer port. Then you
clock it into the address register using pin 17 (Select printer/EPP

Address
Strobe.)

To write into a data register you first have to write its address into the
address register, then put the data on the data lines of the paralel port
and then use pin 14 (Auto Linefeed/Data Strobe) together with the

(decoded)
address line to clock the data into the data register. So you have to

*AND*
the address line with the Data Strobe to achieve the result you want.

If you do not need more the 64 output lines you can do without address
decoders. The eight output lines of the address register can select eight
different data registers of eight bits each.

You can control up to seven counters with a common reset by one data
register. Seven output lines will be connected to the clockinput of a
counter, the remaining line will be connected to the reset input of all
counters. To increase a counter content you have to:
- Write its address to the address register.
- Write a one to the output line that controls the counter so to raise its
clock input.
- Write a zero to the same bit to lower the clock again.

Of course you can increase the content of any combination of counters that
are controlled by the same data register at the same time.

pieter.

"Ryan Kremser" schreef in bericht
s.com...
ok, for the most part i understand your last post but i'm still slightly
confused of how to connect the bus to the address register, and how to

get
to 3 bits which the address decoders accept. I"ve finally decided to

have
counters for the scores so i'll just need one signal per score + 1 reset
line for all of them. If i'm reading this correctly i'll then only setup

48
outputs using two data registers with 8 of the Hct138's Hopefully i'm
seeing this the right way, if not please point me in the right

direction.


"petrus bitbyter" wrote in message
...
Using the address- and dataregister approach you can have 8*8= output

lines
without address decoder. (So not 2^8=256 like I wrote in a previous
posting.) But with an address decoder you can have 2^8*8=2048 output

lines.

To outline the electronic part of the project I'll start with the

component
choice. The old 74LSxx serie will do but the 74HCTxx is slightly newer

but
consumes much less energy.

Connecting a lot of components to the parallel port you'd better first
buffer its output lines. A couple of HCT245 bus transceivers will do.

One
HCT245 and a HCT14 will be some cents cheaper.

The address register may be a HCT374 like I mentioned before. Use of

the LPT interface to
clock this register.

You initially required four dataregisters. Adding 3*6=18 seven segment
displays will add another eighteen. Add two for various purposes and

you
will end up with twentyfour dataregisters. Clock this registers with

pin
14
(Auto Linefeed/Data Strobe) of the LPT interface anded with the the
appropriate address selection line.

An addressdecoder is easily build with four HCT138. You can use two

bits
of
the address register to select one of the HCT138s and three bits to

select
a
line of the selected 138. This way you can create the twentyfour

address
selection lines, one for every dataregister. Keep in mind that the

outputs
of the HCT138 are active low.

It is possible of course to put all this logic on one board and hope

you
get
it to work. A far better approach is building units that can be build

and
tested separately.

pieter

"Ryan Kremser" schreef in bericht
s.com...
is there an easy way to add maybe 136 more address easily,

previously
i
was
looking into using a led counter to accept a pulse to incriment the

value
but now that i'm looking it seems to be a bit more expensive than i

was
hoping. I need to be able to drive 6 - 3 digit (7 segment)

displays.
plus
an extra 10 could make another aspect a bit easier. Would it

actully
be
a
good idea to use these outputs to control the led's or even with the
difference in price would the counters be a better solution?

"petrus bitbyter" wrote in message
. ..
Ryan,

A very thorough treatment of the parallel port interface you will

find
:
http://www.beyondlogic.org/

If you read the EPP part you will find out that for output only,

you
can
use
the method of address- and data register also with a standard

parallel
printer port. So with five (LS)374 (*not 473*) you can have 32

outputs.
Some
Googling and you'll find the datasheet.

For low voltages (15V) and low currents (0.5A) a solid state

relay
will
be
overkill. A small (reed) relay will do. Farnell sells HE221A0590

from
Breed/Hamlin priced about 3 euro. FAIK it's one of the cheapest.

This
relay
will need only a 15mA at 5V so with all outputs on, you still

require
only
about 0.5A. You'd better not use this relay to switch the mains

unless
you
want to start fireworks.

The outputs of the 374 cannot source the 15mA required so you have

to
use
a
transistor or an open collector/drain buffer p.e. a HC07. Keep in

mind
that
a transistor will invert the logic. Always place a diode parallel

to
the
relay coil.

pieter

"Ryan Kremser" schreef in bericht
s.com...
actually solid state would probably be a better solution for me,

for
the
most part all i'll be switching is 5 or 12 volt lines. If you

could
point me to some more information with the printer port it would

help
me
out a lot, so far this seems to be the best option. I was

actually
planning on running this through dos, complied used c++ as there

will
be
no monitor on the system and it will require fast boot and

response
times. Any better alternatives to dos or will i still be able

to
access
the parallel port in the same way. again thanks in advance

petrus bitbyter wrote:
Ryan,

You can use an EPP (printer) port. This way you can use a

separate
address-
and databyte. Using a 374 type of address register you can

enable
or
disable
up to eight 473 type data registers without address decoding.

That
gives
you
256 output pins which sure will be enough.

Do you really need relays to switch your equipment? They tend

to
be
pretty
expensive and need a good amount of current. So for twentynine
relays
you
may end up to need some 3A of current. If you want to switch

the
mains,
solid state relais are a better choice. (Although they are not

cheap
either.) You can also use triacs and optocouplers but you will

need
some
extra parts so you're building your own solid state relais

this
way.

Except from the hardware you'll also need some software. Newer

(NT
based)
Windows versions will not allow you to write directly to the

output
ports.
One of the methods to circumvent these problem is using a

special
driver.
For instance:
http://www.paraport.net/

pieter



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.515 / Virus Database: 313 - Release Date: 2-9-2003





---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.515 / Virus Database: 313 - Release Date: 1-9-2003





---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.519 / Virus Database: 317 - Release Date: 17-9-2003