Maker Pro
Maker Pro

Modernizing old electronics with many I/O lines

J

Joe Bott

Jan 1, 1970
0
Hello! Sorry if this is the wrong newsgroup for this sort of thing. I have a
jukebox thats about 25 years old (Rowe-Ami R-81). For now it works okay, but
could use some playing with to clean up amp noise and such. But mostly I'm
worried that someday the electronics on it will finally pop, and I'll have
no way to replace them. I know the memory unit on it is some custom chip
thats no fun to replace.

So, I got it into my head that it'd be interesting to see if I could replace
all of the control electronics with something more modern. But, I'm a
software guy. Programming the logic will be easy, but I dont know about
controlling/reading the hardware. I should know enough about electronics
that controlling some motors and stuff shouldnt be a huge deal, I hope. But
I'm not sure about interfacing with the relatively large number of lines I
have. Heres exactly what I'm working with:

User I/O
Input
12 keyboard lines - (0-9, Reset)
5 coin switches (could ignore)
Output
5 lights
10 display lines - (888 LED display: 3 lines to select digit, 7 for
lights)

Operation
Input
10 encoder lines (Encodes record magazine position)
1 tone arm cutoff switch
4 cam switches (Might not need to be read)
1 auto cancel switch
Output
1 detent coil
1 record magazine motor
1 turntable motor
1 transfer motor
1 shift coil (right/left side selector)
1 amp mute relay

Diagnostics
Input
1 manual cancel switch
1 scan switch
1 service switch

36 input lines, 21 output lines

So my question is, what sort of equipment would I need to do this? I'm
thinking a PC based solution would be easiest for me since I'm a programmer.
A microprocessor based solution might work okay too, but I'd still like to
be able to interface it with a PC and I'm not sure how easy thatd be. But I
dont know how I'd connect all the I/O lines. I dont know of any options for
that many lines. A PC with a few extra parallel ports would be fairly easy,
but they have mostly output lines so I'd need way too many. The
microprocessor options I've found top out at around 40 I/O lines. Preferably
less than $100 for the I/O interface, much more and I could buy a new
jukebox. :) It doesnt even need to be fast, the fastest thing on there is
the strobing LED display. I could probably do some clever things to reduce
the number of lines, but I'm not sure. Like, maybe I could replace the 12
keyboard lines with the guts from a USB keypad if I go with a PC, reduce the
encoder lines to 2 and track the record magazine position in software, or
find a way that I wouldnt have to control the LEDs directly (serial
connection to a small microcontroller?).

Once I can control/read the I/O lines, I dont think I'd have much trouble.
Trickiest bit would be the relatively high voltage (28V AC/DC) required by
some components, but I'm thinking that using a few relays would solve that.
I hope.

Ah well, I hope this all made sense. Thanks for any suggestions. :)
Joe
 
R

Rich Webb

Jan 1, 1970
0
[snip...snip...]
So my question is, what sort of equipment would I need to do this? I'm
thinking a PC based solution would be easiest for me since I'm a programmer.
A microprocessor based solution might work okay too, but I'd still like to
be able to interface it with a PC and I'm not sure how easy thatd be. But I
dont know how I'd connect all the I/O lines. I dont know of any options for
that many lines. A PC with a few extra parallel ports would be fairly easy,
but they have mostly output lines so I'd need way too many. The
microprocessor options I've found top out at around 40 I/O lines.

I guess that a single-board CPU, passive backplane, and several parallel
port cards would most match what you have in mind. Doesn't seem to map
all that well to the problem domain, though.

It could be done with one microcontroller driving an address buss. An
8-bit I/O port could drive 6 address lines (64 addresses) with a R/W bit
and an enable bit. Another bit (or several) as the data bus.

However, I'd probably approach it with several smaller processors, say
one to handle the user interface, one the mechanics, and a supervisor
that coordinated it all and also handled PC-side comms. Tie it all
together with I2C or Microwire.
 
D

Dennis Clark

Jan 1, 1970
0
He he,

You could probably replace the whole of the innards with a single iPod and
just fiddle with the mechanics twiddling fake 45's around!

DLC

: Hello! Sorry if this is the wrong newsgroup for this sort of thing. I have a
: jukebox thats about 25 years old (Rowe-Ami R-81). For now it works okay, but
: could use some playing with to clean up amp noise and such. But mostly I'm
: worried that someday the electronics on it will finally pop, and I'll have
: no way to replace them. I know the memory unit on it is some custom chip
: thats no fun to replace.

: So, I got it into my head that it'd be interesting to see if I could replace
: all of the control electronics with something more modern. But, I'm a
: software guy. Programming the logic will be easy, but I dont know about
: controlling/reading the hardware. I should know enough about electronics
: that controlling some motors and stuff shouldnt be a huge deal, I hope. But
: I'm not sure about interfacing with the relatively large number of lines I
: have. Heres exactly what I'm working with:

: User I/O
: Input
: 12 keyboard lines - (0-9, Reset)
: 5 coin switches (could ignore)
: Output
: 5 lights
: 10 display lines - (888 LED display: 3 lines to select digit, 7 for
: lights)

: Operation
: Input
: 10 encoder lines (Encodes record magazine position)
: 1 tone arm cutoff switch
: 4 cam switches (Might not need to be read)
: 1 auto cancel switch
: Output
: 1 detent coil
: 1 record magazine motor
: 1 turntable motor
: 1 transfer motor
: 1 shift coil (right/left side selector)
: 1 amp mute relay

: Diagnostics
: Input
: 1 manual cancel switch
: 1 scan switch
: 1 service switch

: 36 input lines, 21 output lines

: So my question is, what sort of equipment would I need to do this? I'm
: thinking a PC based solution would be easiest for me since I'm a programmer.
: A microprocessor based solution might work okay too, but I'd still like to
: be able to interface it with a PC and I'm not sure how easy thatd be. But I
: dont know how I'd connect all the I/O lines. I dont know of any options for
: that many lines. A PC with a few extra parallel ports would be fairly easy,
: but they have mostly output lines so I'd need way too many. The
: microprocessor options I've found top out at around 40 I/O lines. Preferably
: less than $100 for the I/O interface, much more and I could buy a new
: jukebox. :) It doesnt even need to be fast, the fastest thing on there is
: the strobing LED display. I could probably do some clever things to reduce
: the number of lines, but I'm not sure. Like, maybe I could replace the 12
: keyboard lines with the guts from a USB keypad if I go with a PC, reduce the
: encoder lines to 2 and track the record magazine position in software, or
: find a way that I wouldnt have to control the LEDs directly (serial
: connection to a small microcontroller?).

: Once I can control/read the I/O lines, I dont think I'd have much trouble.
: Trickiest bit would be the relatively high voltage (28V AC/DC) required by
: some components, but I'm thinking that using a few relays would solve that.
: I hope.

: Ah well, I hope this all made sense. Thanks for any suggestions. :)
: Joe
 
S

Si Ballenger

Jan 1, 1970
0
Hello! Sorry if this is the wrong newsgroup for this sort of thing. I have a
jukebox thats about 25 years old (Rowe-Ami R-81). For now it works okay, but
could use some playing with to clean up amp noise and such. But mostly I'm
worried that someday the electronics on it will finally pop, and I'll have
no way to replace them. I know the memory unit on it is some custom chip
thats no fun to replace.

So, I got it into my head that it'd be interesting to see if I could replace
all of the control electronics with something more modern. But, I'm a
software guy. Programming the logic will be easy, but I dont know about
controlling/reading the hardware. I should know enough about electronics
that controlling some motors and stuff shouldnt be a huge deal, I hope. But
I'm not sure about interfacing with the relatively large number of lines I
have. Heres exactly what I'm working with:

User I/O
Input
12 keyboard lines - (0-9, Reset)
5 coin switches (could ignore)
Output
5 lights
10 display lines - (888 LED display: 3 lines to select digit, 7 for
lights)

Operation
Input
10 encoder lines (Encodes record magazine position)
1 tone arm cutoff switch
4 cam switches (Might not need to be read)
1 auto cancel switch
Output
1 detent coil
1 record magazine motor
1 turntable motor
1 transfer motor
1 shift coil (right/left side selector)
1 amp mute relay

Diagnostics
Input
1 manual cancel switch
1 scan switch
1 service switch

36 input lines, 21 output lines

So my question is, what sort of equipment would I need to do this? I'm
thinking a PC based solution would be easiest for me since I'm a programmer.
A microprocessor based solution might work okay too, but I'd still like to
be able to interface it with a PC and I'm not sure how easy thatd be. But I
dont know how I'd connect all the I/O lines. I dont know of any options for
that many lines. A PC with a few extra parallel ports would be fairly easy,
but they have mostly output lines so I'd need way too many. The
microprocessor options I've found top out at around 40 I/O lines. Preferably
less than $100 for the I/O interface, much more and I could buy a new
jukebox. :) It doesnt even need to be fast, the fastest thing on there is
the strobing LED display. I could probably do some clever things to reduce
the number of lines, but I'm not sure. Like, maybe I could replace the 12
keyboard lines with the guts from a USB keypad if I go with a PC, reduce the
encoder lines to 2 and track the record magazine position in software, or
find a way that I wouldnt have to control the LEDs directly (serial
connection to a small microcontroller?).

Once I can control/read the I/O lines, I dont think I'd have much trouble.
Trickiest bit would be the relatively high voltage (28V AC/DC) required by
some components, but I'm thinking that using a few relays would solve that.
I hope.

Ah well, I hope this all made sense. Thanks for any suggestions. :)
Joe

You can control a lot of on/off out lines from the parallel port.
The below link shows how to do 380 seperate out lines for
controlling 380 strings of christmas lights from the parallel
port. I made a simple gizmo to use the parallel port status pins
to check the status of some contacts open or closed. It uses 12
diodes, 8 resistors, 4 npn transistors, a D-25 connector and some
phone wire to check the status of 12 contacts. You could combine
the two and have more I/O than you can probably use.

http://tinyurl.com/3cqad
 
S

Si Ballenger

Jan 1, 1970
0
Hello! Sorry if this is the wrong newsgroup for this sort of thing. I have a
jukebox thats about 25 years old (Rowe-Ami R-81). For now it works okay, but
could use some playing with to clean up amp noise and such. But mostly I'm
worried that someday the electronics on it will finally pop, and I'll have
no way to replace them. I know the memory unit on it is some custom chip
thats no fun to replace.

So, I got it into my head that it'd be interesting to see if I could replace
all of the control electronics with something more modern. But, I'm a
software guy. Programming the logic will be easy, but I dont know about
controlling/reading the hardware. I should know enough about electronics
that controlling some motors and stuff shouldnt be a huge deal, I hope. But
I'm not sure about interfacing with the relatively large number of lines I
have. Heres exactly what I'm working with:

User I/O
Input
12 keyboard lines - (0-9, Reset)
5 coin switches (could ignore)
Output
5 lights
10 display lines - (888 LED display: 3 lines to select digit, 7 for
lights)

Operation
Input
10 encoder lines (Encodes record magazine position)
1 tone arm cutoff switch
4 cam switches (Might not need to be read)
1 auto cancel switch
Output
1 detent coil
1 record magazine motor
1 turntable motor
1 transfer motor
1 shift coil (right/left side selector)
1 amp mute relay

Diagnostics
Input
1 manual cancel switch
1 scan switch
1 service switch

36 input lines, 21 output lines

So my question is, what sort of equipment would I need to do this? I'm
thinking a PC based solution would be easiest for me since I'm a programmer.
A microprocessor based solution might work okay too, but I'd still like to
be able to interface it with a PC and I'm not sure how easy thatd be. But I
dont know how I'd connect all the I/O lines. I dont know of any options for
that many lines. A PC with a few extra parallel ports would be fairly easy,
but they have mostly output lines so I'd need way too many. The
microprocessor options I've found top out at around 40 I/O lines. Preferably
less than $100 for the I/O interface, much more and I could buy a new
jukebox. :) It doesnt even need to be fast, the fastest thing on there is
the strobing LED display. I could probably do some clever things to reduce
the number of lines, but I'm not sure. Like, maybe I could replace the 12
keyboard lines with the guts from a USB keypad if I go with a PC, reduce the
encoder lines to 2 and track the record magazine position in software, or
find a way that I wouldnt have to control the LEDs directly (serial
connection to a small microcontroller?).

Once I can control/read the I/O lines, I dont think I'd have much trouble.
Trickiest bit would be the relatively high voltage (28V AC/DC) required by
some components, but I'm thinking that using a few relays would solve that.
I hope.

Ah well, I hope this all made sense. Thanks for any suggestions. :)
Joe

You can control a lot of on/off out lines from the parallel port.
The below link shows how to do 380 seperate out lines for
controlling 380 strings of christmas lights from the parallel
port. At the bottom link I made a simple gizmo to use the
parallel port status pins to check the status of some contacts
open or closed. It uses 12 diodes, 8 resistors, 4 npn
transistors, a D-25 connector and some phone wire to check the
status of 12 contacts. You could combine the two and have more
I/O than you can probably use.

http://tinyurl.com/3cqad
http://zoomkat.d2g.com:88/cgi/status.bat
 
C

CWatters

Jan 1, 1970
0
Nothing too hard. I would recommend looking for an I/O board that has
optical isolation - that way if you stuff up the electronics it will be next
to impossible to damage your PC.

I would also be tempted to break the problem down in to blocks. Don't think
of it as 57 pins all at once. Try making each block stand alone (eg build a
keyboard interface that lives at one address, an LED display interface that
lives at another address etc). That should reduce all the interactions
between blocks and allow the S/W to be more modular.
 
J

Joe Bott

Jan 1, 1970
0
Joe Bott said:
<snippety snip>
36 input lines, 21 output lines

So my question is, what sort of equipment would I need to do this?
<snipppety snip>

Thanks for everyone's comments. So far the option I like best is the circuit
Si Ballenger pointed out for controlling 320 outputs with 1 parallel port.
It was enough to jog my memory regarding flip-flops and decoders/encoders.
I'm glad I paid some attention in digital-logic classes. :) I could scale
the project way down to fit my needs, reducing the parallel port output
lines if needed. Then I could use the remaining output lines, run through a
decoder, to select input banks. Polling input 5 bits at a time shouldnt be
an issue. LED display would be tricky, since I have to update at least 9
output lines simultaneously to make it display nicely. But I should be able
to add another layer of flip-flops for LED data, and save a parallel port
output line to update them all at once. Then I can take as many cycles as
needed to update LED data.

My only concern is hardware, but I think I'll be able to figure that out.
Once I figure out where to buy them, the components mentioned in the article
should go a long way. Then I'd need a mess of AND gates for selecting input
banks, and a few relays for switching motors and coils. This might actually
work!

Thanks again,
Joe
 
P

petrus bitbyter

Jan 1, 1970
0
Joe Bott said:
Hello! Sorry if this is the wrong newsgroup for this sort of thing. I have a
jukebox thats about 25 years old (Rowe-Ami R-81). For now it works okay, but
could use some playing with to clean up amp noise and such. But mostly I'm
worried that someday the electronics on it will finally pop, and I'll have
no way to replace them. I know the memory unit on it is some custom chip
thats no fun to replace.

So, I got it into my head that it'd be interesting to see if I could replace
all of the control electronics with something more modern. But, I'm a
software guy. Programming the logic will be easy, but I dont know about
controlling/reading the hardware. I should know enough about electronics
that controlling some motors and stuff shouldnt be a huge deal, I hope. But
I'm not sure about interfacing with the relatively large number of lines I
have. Heres exactly what I'm working with:

User I/O
Input
12 keyboard lines - (0-9, Reset)
5 coin switches (could ignore)
Output
5 lights
10 display lines - (888 LED display: 3 lines to select digit, 7 for
lights)

Operation
Input
10 encoder lines (Encodes record magazine position)
1 tone arm cutoff switch
4 cam switches (Might not need to be read)
1 auto cancel switch
Output
1 detent coil
1 record magazine motor
1 turntable motor
1 transfer motor
1 shift coil (right/left side selector)
1 amp mute relay

Diagnostics
Input
1 manual cancel switch
1 scan switch
1 service switch

36 input lines, 21 output lines

So my question is, what sort of equipment would I need to do this? I'm
thinking a PC based solution would be easiest for me since I'm a programmer.
A microprocessor based solution might work okay too, but I'd still like to
be able to interface it with a PC and I'm not sure how easy thatd be. But I
dont know how I'd connect all the I/O lines. I dont know of any options for
that many lines. A PC with a few extra parallel ports would be fairly easy,
but they have mostly output lines so I'd need way too many. The
microprocessor options I've found top out at around 40 I/O lines. Preferably
less than $100 for the I/O interface, much more and I could buy a new
jukebox. :) It doesnt even need to be fast, the fastest thing on there is
the strobing LED display. I could probably do some clever things to reduce
the number of lines, but I'm not sure. Like, maybe I could replace the 12
keyboard lines with the guts from a USB keypad if I go with a PC, reduce the
encoder lines to 2 and track the record magazine position in software, or
find a way that I wouldnt have to control the LEDs directly (serial
connection to a small microcontroller?).

Once I can control/read the I/O lines, I dont think I'd have much trouble.
Trickiest bit would be the relatively high voltage (28V AC/DC) required by
some components, but I'm thinking that using a few relays would solve that.
I hope.

Ah well, I hope this all made sense. Thanks for any suggestions. :)
Joe

Joe,

Looks like a good newsgroup for this.

Looks like a cool project as well.

If you use old DOS or WIN95 - so you can program the hardware directly - the
parallel port is a good choice. WINNT, -2000 or -XT need special drivers and
may give speed problems, especially for the 7 segment displays.

To work comfortable you best can get a parallel printer port card at least
during the experimental stage. It should also be a bi-directional port. An
EPP-port will do best. You can check out the EPP specifications on the web.
For instance:
http://www.beyondlogic.org/

You should have to build some hardware. First of all I advise to buffer the
parallel port lines. A bidirectional LS255 type buffer for the data lines.
The direction pin of this device should be controlled by the (buffered)
direction line of the parallel port. The address strobe, data strobe and
direction lines can be buffered with an LS14 type. As the LS14 inverts you
may need two inverters to keep the right polarity or use non-inverting
buffers like LS07. Can't advise the latter for this purpose as they have no
schmitt-trigger inputs and do have open collector outputs.

You will need an address register. An LS364 type will do. You put an address
in it using the address strobe line. Subsequent data actions will use this
address to control the correct data registers/buffers. With an appropriate
address decoder you can control 256*8=2k input lines and the same amount of
output lines. As you do not need this huge amount you can use 1 out of 8
decoding. That's to say, each bit of the address register controls one
8-bits output register and one 8-bits input buffer. So you have up to 64
input - and 64 ouput lines which covers all your needs.

You need a read- and a write signal. One is the address strobe logical ANDED
with the direction, the other the address strobe logical ANDED with the
inverted direction.

You will need up to eight data registers. LS364 types will do. To write data
into them you use the write signal logical ANDED with the appropriate
address bit.

You can use up to eight data buffers. LS245 types are good again. To read
data from them you enable them using the read signal logical ANDED with the
appropriate address bit.

That's it. The hardware is straightforward, simple and minimal.

Let us hear your experiences.

petrus
 
P

petrus bitbyter

Jan 1, 1970
0
petrus bitbyter said:
have But

Joe,

Looks like a good newsgroup for this.

Looks like a cool project as well.

If you use old DOS or WIN95 - so you can program the hardware directly - the
parallel port is a good choice. WINNT, -2000 or -XT need special drivers and
may give speed problems, especially for the 7 segment displays.

To work comfortable you best can get a parallel printer port card at least
during the experimental stage. It should also be a bi-directional port. An
EPP-port will do best. You can check out the EPP specifications on the web.
For instance:
http://www.beyondlogic.org/

You should have to build some hardware. First of all I advise to buffer the
parallel port lines. A bidirectional LS255 type buffer for the data lines.
The direction pin of this device should be controlled by the (buffered)
direction line of the parallel port. The address strobe, data strobe and
direction lines can be buffered with an LS14 type. As the LS14 inverts you
may need two inverters to keep the right polarity or use non-inverting
buffers like LS07. Can't advise the latter for this purpose as they have no
schmitt-trigger inputs and do have open collector outputs.

You will need an address register. An LS364 type will do. You put an address
in it using the address strobe line. Subsequent data actions will use this
address to control the correct data registers/buffers. With an appropriate
address decoder you can control 256*8=2k input lines and the same amount of
output lines. As you do not need this huge amount you can use 1 out of 8
decoding. That's to say, each bit of the address register controls one
8-bits output register and one 8-bits input buffer. So you have up to 64
input - and 64 ouput lines which covers all your needs.

You need a read- and a write signal. One is the address strobe logical ANDED
with the direction, the other the address strobe logical ANDED with the
inverted direction.


Oops, you need to use the *data strobe* for this read - and write signals.

petrus
 
J

Joe Bott

Jan 1, 1970
0
petrus bitbyter said:
Joe,

Looks like a good newsgroup for this.

Looks like a cool project as well.

Thanks. Its proving to be interesting so far, and I havent even touched any
hardware yet. :)
If you use old DOS or WIN95 - so you can program the hardware directly - the
parallel port is a good choice. WINNT, -2000 or -XT need special drivers and
may give speed problems, especially for the 7 segment displays.

Yeah, I thought about that. I found drivers that will let me control the
parallel port with XP, but I dont know about speed. At least to start, I'd
probably drop my laptop in there, which is running XP. So, I might have to
live with XP for now.
To work comfortable you best can get a parallel printer port card at least
during the experimental stage. It should also be a bi-directional port. An
EPP-port will do best. You can check out the EPP specifications on the web.
For instance:
http://www.beyondlogic.org/

Interesting. I've been looking at the standard parallel port so far. But, I
suppose if I can use an enhanced port, I may be able to get away with less
components in my schematic. If I have to actually build this thing, less is
better. :) And I may have to buy a USB->Parallel cable for my laptop
anyways, so I may be able to find an EPP version. I've already found a ECP
one.
You should have to build some hardware. First of all I advise to buffer the
parallel port lines. A bidirectional LS255 type buffer for the data lines.
The direction pin of this device should be controlled by the (buffered)
direction line of the parallel port. The address strobe, data strobe and
direction lines can be buffered with an LS14 type. As the LS14 inverts you
may need two inverters to keep the right polarity or use non-inverting
buffers like LS07. Can't advise the latter for this purpose as they have no
schmitt-trigger inputs and do have open collector outputs.
<snipped the rest of the nice hardware description>

Eep. Okay, this might drift into sci.electronics.basics territory, but
first: LS255, LS14, LS364, LS245. I have no idea what those parts are. :)
Theyre not in the software I'm using for design, so I'm having trouble
putting everything together. I'm guessing 74xx series? I found a few of
these on online, if theyre 74xx, but the rest are a mystery. And, I'm not
sure how to add them to the software so I can play with them, but I may be
able to find equivalents. But beyond that, thanks a bunch, I'll have to lay
out your idea and see if I can make sense of it. It sounds like it'd be less
of a mess than what I have now, which would be nice.

What I've been doing so far is playing with schematic design tools. I
started with the student version of CircuitMaker, which was great. But I
didnt like the limited part library, and I'm not experienced enough to try
adding my own components, so I ended up switching to the free version of
Eagle. CircuitMaker let me simulate enough that I got something that looked
like it might work, and Eagle has enough parts that I can play around even
more. Although it still comes up empty when I search for the above parts. :\

So, heres my work in progress schematic: http://www.bunkmonkey.com/schem.jpg
.. It probably doesnt make any sense, and it might not even work at all. But
I'll try to explain what I'm trying to do...

Input side - On the standard parallel port, I use 4 input lines and 3 output
lines. I use the 3 outputs to address 8 banks of 4 inputs each - giving me
32 inputs, 1 more than I need. I have a 74LS138 decoder to select the bank,
connected to 4 4019 quad AND/OR select gates which the inputs are connected
to. The 4019 outputs go through some OR gates, and I have my 4 inputs. Well,
thats the theory anyways. :)

Output side - I use a total of 8 output pins on the parallel port. 4 are for
data, 3 for address, and 1 for updating the LED data. Again I use the
74LS138 decoder to select which bank I'm outputting to. I use 6 74LS175 Quad
D Flip-Flops to store my output - I could use 8 but I dont ned the extra 2.
So, I put my data on the 4 data lines, then select the bank using the 3
address lines. The decoder is connected to the 74LS175's CLK pins, so the
clock goes high, and data is stored. I hope. For the 7 seg, I use a 74ACT821
10-bit flip-flop. The inputs are connected to 3 of the 74LS175's outputs,
and then I use the 1 extra parallel port output connect to the CLK to update
it all at once. Beyond that, I have a few AQG12105 solid state relays, but I
dont know if they're suitable at all. :)

So, if I had to update every output and read every input, it'd take me 18
writes and 8 reads every cycle (8x input read, 6x data write, 8x address
write, 1x LED update set/unset). That seems like a lot. But I'd have to see
how fast I can update the port, in practice.

And thats the direction I was going. It still needs work, mostly with the
decoders. They have inverted outputs, which I forgot about. And I wont know
if it'll work until I have my hands on parts. If the 7-seg strobing is going
to be an issue, I could add yet another set of flip-flops, one for each
digit, and use a strobing circuit to switch between them. But thats yet more
stuff I'd have to wire, bleh.

Thanks again, now I have to see if I can make sense of your solution. :)

Joe
 
S

Si Ballenger

Jan 1, 1970
0
Interesting. I've been looking at the standard parallel port so far. But, I
suppose if I can use an enhanced port, I may be able to get away with less
components in my schematic. If I have to actually build this thing, less is
better. :) And I may have to buy a USB->Parallel cable for my laptop
anyways, so I may be able to find an EPP version. I've already found a ECP
one.

Check the specs on the USB to parallel port adapters, as they may
only work fro print calls from windows and not for toggling the
individual parallel port pins.

So, heres my work in progress schematic: http://www.bunkmonkey.com/schem.jpg
. It probably doesnt make any sense, and it might not even work at all. But
I'll try to explain what I'm trying to do...

Input side - On the standard parallel port, I use 4 input lines and 3 output
lines. I use the 3 outputs to address 8 banks of 4 inputs each - giving me
32 inputs, 1 more than I need. I have a 74LS138 decoder to select the bank,
connected to 4 4019 quad AND/OR select gates which the inputs are connected
to. The 4019 outputs go through some OR gates, and I have my 4 inputs. Well,
thats the theory anyways. :)

You may want to try the 74LS238 chips that are not inverting.
I've used the 74HCT259 8-Bit Addressable latch (Radio Shack
276-2868, $1.49) chips which also demultiplex like the 138/238
chips.
Output side - I use a total of 8 output pins on the parallel port. 4 are for
data, 3 for address, and 1 for updating the LED data. Again I use the
74LS138 decoder to select which bank I'm outputting to. I use 6 74LS175 Quad
D Flip-Flops to store my output - I could use 8 but I dont ned the extra 2.
So, I put my data on the 4 data lines, then select the bank using the 3
address lines. The decoder is connected to the 74LS175's CLK pins, so the
clock goes high, and data is stored. I hope. For the 7 seg, I use a 74ACT821
10-bit flip-flop. The inputs are connected to 3 of the 74LS175's outputs,
and then I use the 1 extra parallel port output connect to the CLK to update
it all at once. Beyond that, I have a few AQG12105 solid state relays, but I
dont know if they're suitable at all. :)

So, if I had to update every output and read every input, it'd take me 18
writes and 8 reads every cycle (8x input read, 6x data write, 8x address
write, 1x LED update set/unset). That seems like a lot. But I'd have to see
how fast I can update the port, in practice.

And thats the direction I was going. It still needs work, mostly with the
decoders. They have inverted outputs, which I forgot about. And I wont know
if it'll work until I have my hands on parts. If the 7-seg strobing is going
to be an issue, I could add yet another set of flip-flops, one for each
digit, and use a strobing circuit to switch between them. But thats yet more
stuff I'd have to wire, bleh.

The below link is how I use the 259 chips in the demultiplex mode
for a DIY webcam switcher. The next link is a simple gizmo using
three data lines and four status lines to check to see if
contacts are open or closed (uses qbasic). The next link is a
very clever setup using the parallel port using the 138 chips for
controlling some christmas lights. The bottom link is to a neat
little application called wnpar011.zip that is very handy when
testing the gizmos connected to the parallel port (click the data
lines to toggle on/off, and you can see the status lines state).
Keep posting on your project.

http://www.geocities.com/zoomkat/ppswitcher3.htm
http://zoomkat.d2g.com:88/cgi/status.bat
http://tinyurl.com/3cqad
ftp://mirrors.aol.com/mir03/SIMTEL/pub/simtelnet/win95/util/wnpar011.zip
 
J

Joe Bott

Jan 1, 1970
0
Si Ballenger said:
Check the specs on the USB to parallel port adapters, as they may
only work fro print calls from windows and not for toggling the
individual parallel port pins.

Bah, I didnt think of that. I was assuming that the driver would mirror the
port status to the standard memory location, to retain the best device
compatibility. Ah well, once I figure out which type of paralel port I'd
like to use, I'll figure something out. Maybe a PCMCIA card would be better?
Although, they seem to be pretty expensive. It looks like I could build a
computer for cheaper than some PCMCIA cards
You may want to try the 74LS238 chips that are not inverting.
I've used the 74HCT259 8-Bit Addressable latch (Radio Shack
276-2868, $1.49) chips which also demultiplex like the 138/238
chips.

Thanks! Eagle doesnt list the 74LS238, but as long as I know it exists, that
will work. I'll check out the 74HCT259 also.
The below link is how I use the 259 chips in the demultiplex mode
for a DIY webcam switcher. The next link is a simple gizmo using
three data lines and four status lines to check to see if
contacts are open or closed (uses qbasic). The next link is a
very clever setup using the parallel port using the 138 chips for
controlling some christmas lights. The bottom link is to a neat
little application called wnpar011.zip that is very handy when
testing the gizmos connected to the parallel port (click the data
lines to toggle on/off, and you can see the status lines state).
Keep posting on your project.

http://www.geocities.com/zoomkat/ppswitcher3.htm
http://zoomkat.d2g.com:88/cgi/status.bat
http://tinyurl.com/3cqad
ftp://mirrors.aol.com/mir03/SIMTEL/pub/simtelnet/win95/util/wnpar011.zip

Ooh, thanks again for the links. Good info in there. The Christmas lights
thing was what got me started. :) I think I'm going to start on the software
side while my hardware design solidifies. I'll quick hammer out my control
software, and maybe some "fake interface circuit" and "fake jukebox"
software for testing.

Joe
 
Top