Maker Pro
Maker Pro

How to check 125 logic states...?

B

Bob Parker

Jan 1, 1970
0
I'm designing a gadget which uses a small micro to look at the
0V/3.3V logic states on 125 lines. I need to turn it into serial data.
It doesn't have to be very fast.
There doesn't seem to be any electrical problem with stringing 16
8-bit parallel-serial shift registers (74HC165 etc) together, except
that it'll take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

Bob
 
D

dmm

Jan 1, 1970
0
I'm designing a gadget which uses a small micro to look at the
0V/3.3V logic states on 125 lines. I need to turn it into serial data.
It doesn't have to be very fast.
There doesn't seem to be any electrical problem with stringing 16
8-bit parallel-serial shift registers (74HC165 etc) together, except
that it'll take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

Bob

There's the On Semi MC14067 analog 16 channel mux/demux, also
Vishay Siliconix's DG406B 16 ch analog mux. I've used it in the past
successfully. The On Semi device is considerably cheaper from Farnell
than the Siliconix chip.
 
S

swanny

Jan 1, 1970
0
Bob said:
I'm designing a gadget which uses a small micro to look at the
0V/3.3V logic states on 125 lines. I need to turn it into serial data.
It doesn't have to be very fast.
There doesn't seem to be any electrical problem with stringing 16
8-bit parallel-serial shift registers (74HC165 etc) together, except
that it'll take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

Bob
You could use 16-bit shift registers in SO package to halve your chip count and
keep the area down (eg 74*676 etc).
 
D

David L. Jones

Jan 1, 1970
0
Bob said:
I'm designing a gadget which uses a small micro to look at the
0V/3.3V logic states on 125 lines. I need to turn it into serial data.
It doesn't have to be very fast.
There doesn't seem to be any electrical problem with stringing 16
8-bit parallel-serial shift registers (74HC165 etc) together, except
that it'll take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

Bob

The 74xx674 is a 16bit parallel in serial out shift register, 24 pin
package.
If you can get it in a small SMD (doubt it) then you could save some
space, otherwise just use the 165 et.al in the smallest SMD package you
can get.
If you are really strapped for space, consider doubled sided component
mounting. Or if you are keen, then design a "module" using a dedicated
PCB which does just that job, hen it can go over other SMD parts on
your board to better utilise the space.
Otherwise it's a large pin count PLD, FPGA, or micro, although that's
just too much trouble I recon, and has the potential disadvantage of
the part or package being discontinued in a few years (likely these
days)

Dave :)
 
J

jasen

Jan 1, 1970
0
I'm designing a gadget which uses a small micro to look at the
0V/3.3V logic states on 125 lines. I need to turn it into serial data.
It doesn't have to be very fast.
There doesn't seem to be any electrical problem with stringing 16
8-bit parallel-serial shift registers (74HC165 etc) together, except
that it'll take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

use programmable chips, program them to behave like shift registers.
that way you can get more lines per chip with larger chips.

what's your input from? can it be arranged in a matrix, a 12x12 matrix would
get you 144 inputs...

Bye.
Jasen
 
B

Bob Parker

Jan 1, 1970
0
Don said:
Hi Bob, my normal answer is to do it all with micros, but if you are
looking at 125 dats bits, then you may need 4 x 40 pin micros, then you
have to write the software to co-ordinate the data gathering.

I have strung 164 type chips over a distance of 5 meters, for large LED
message boards. Just use a few bypass caps to shut them up. One per chip
of course.

I often wonder if a PCB designed for serial/parallel Input (and or)
Output shift registers, would be a handy thing.

Don...

Thanks Don!
In fact I was half way through writing an e-mail to ask your advice
(if anyone knows about stringing lots of shift registers together it
would be you with your big message displays!), then realized you'd see
my question on the newsgroup anyway.

My micro just wants to output one clock pulse to grab each input
state in sequence and decide what to do about it, so lots of shift
registers are best suited to this application.

There are times when it would be handy to be able to input/output a
lot of bits serially. Maybe a board like that would sell.

If that idea interests you, I found a Philips (who've changed their
name to NXP Semiconductors) I2C chip with 40 I/O lines which could be
handy, called a PCA9506. You can download the PDF file from
http://s1.upload.sc/request/61e7fa7b87ed208bb7bab533174b1786
I sorta considered using it for this project.

Cheers
Bob
 
B

Bob Parker

Jan 1, 1970
0
jasen said:
use programmable chips, program them to behave like shift registers.
that way you can get more lines per chip with larger chips.

what's your input from? can it be arranged in a matrix, a 12x12 matrix would
get you 144 inputs...

Bye.
Jasen

Thanks Don, Dave, Adrian, DMM, Swanny and Jasen!
Unfortunately the inputs can't be arranged as a matrix. :-( There's
a fair bit of space available on the board, but I didn't want to go
ahead with a long string of 8 bit shift registers if there was a tidier
way of doing it.
I think it would only complicate things if I used micros
programmed to behave like shift registers or analog switch chips. I've
been burned by Allegro chips becoming obselete, making me reluctant to
use their parts.
The 74xx674 would be ideal but I can't find anyone selling the HC
version, plus as Dave expected, they only seem to be available in the
DIP 28 package. The 74xx676 seems to be equally scarce.
Isn't electronics fun? :)

Cheers
Bob
 
B

Brenden

Jan 1, 1970
0
Bob,
If you can use boring old 74HC165's that would be the cheapest and
simplest way to do it. They should cost less than $0.05 per input pin,
will load the sensed circuit by less than 1 microamp and have a
quiescent power draw of less than 80 microamps each chip.
They're available in lots of different packages from multiple sources
and should be a stock line from most distributors.
You'll need 16 of them in series but that's less 1.28 milliamps of power
being used to read your 125 input lines, making it probably the lowest
power option as well.

Regards,
Brenden Ede
 
B

Bob Parker

Jan 1, 1970
0
Brenden said:
Bob,
If you can use boring old 74HC165's that would be the cheapest and
simplest way to do it. They should cost less than $0.05 per input pin,
will load the sensed circuit by less than 1 microamp and have a
quiescent power draw of less than 80 microamps each chip.
They're available in lots of different packages from multiple sources
and should be a stock line from most distributors.
You'll need 16 of them in series but that's less 1.28 milliamps of power
being used to read your 125 input lines, making it probably the lowest
power option as well.

Regards,
Brenden Ede

Thanks Brenden,
I think you're right. :) I've already been using 7 x 74HC165 to
give me 56 inputs so I'll expand it to 16 of them... with a 0.1uF bypass
cap on the power leads of each one as Don mentioned.

Cheers
Bob
 
D

David L. Jones

Jan 1, 1970
0
Brenden said:
Bob,
If you can use boring old 74HC165's that would be the cheapest and
simplest way to do it. They should cost less than $0.05 per input pin,
will load the sensed circuit by less than 1 microamp and have a
quiescent power draw of less than 80 microamps each chip.
They're available in lots of different packages from multiple sources
and should be a stock line from most distributors.
You'll need 16 of them in series but that's less 1.28 milliamps of power
being used to read your 125 input lines, making it probably the lowest
power option as well.

That's at full speed, so it'll be even much lower power than that given
that he only has to clock it at a slow rate.

Dave :)
 
D

Dac

Jan 1, 1970
0
Bob Parker said:
I'm designing a gadget which uses a small micro to look at the 0V/3.3V
logic states on 125 lines. I need to turn it into serial data. It doesn't
have to be very fast.
There doesn't seem to be any electrical problem with stringing 16 8-bit
parallel-serial shift registers (74HC165 etc) together, except that it'll
take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

This can be done easily with latch shift registers. I don't see how it would
be more elegant. You will find surface mount shift registers easily and they
will be tiny. could do the whole thing well within 1" square on just one
side of the board.
 
B

Bob Parker

Jan 1, 1970
0
Dac said:
This can be done easily with latch shift registers. I don't see how it would
be more elegant. You will find surface mount shift registers easily and they
will be tiny. could do the whole thing well within 1" square on just one
side of the board.

They'd have to be awfully tiny shift register ICs to fit 16 of them
into a 1" square area of the board, wouldn't they? I was planning to
leave them inside their packages. :)

Bob
 
L

Lionel

Jan 1, 1970
0
I'm designing a gadget which uses a small micro to look at the
0V/3.3V logic states on 125 lines. I need to turn it into serial data.
It doesn't have to be very fast.
There doesn't seem to be any electrical problem with stringing 16
8-bit parallel-serial shift registers (74HC165 etc) together, except
that it'll take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

I'd use surface-mount 8 bit buffers or latches with Tri-State outputs
(eg; 74x573, etc) & mux them onto an 8 bit buss back to an 8 bit input
port on the CPU.
You could select which latch to red with 4 output bits from the CPU, &
maybe 1 more output bit (connected to all the clock/enable inputs of
your latches) to trigger a simultaneous capture from all your data
lines.
This type of scheme is cheap, compact, well-proven, & can be made to
work reliably for sample rates of well past 20MHz.

No matter how slow your sample rate, you'll still need to build in
decoupling caps (100nF monolithics) at the power pins of *every* chip,
or you'll get ground-bounce, which wil cause random-looking data
errors that will be a nightmare to debug.
 
B

Bob Parker

Jan 1, 1970
0
Lionel said:
I'd use surface-mount 8 bit buffers or latches with Tri-State outputs
(eg; 74x573, etc) & mux them onto an 8 bit buss back to an 8 bit input
port on the CPU.
You could select which latch to red with 4 output bits from the CPU, &
maybe 1 more output bit (connected to all the clock/enable inputs of
your latches) to trigger a simultaneous capture from all your data
lines.
This type of scheme is cheap, compact, well-proven, & can be made to
work reliably for sample rates of well past 20MHz.

No matter how slow your sample rate, you'll still need to build in
decoupling caps (100nF monolithics) at the power pins of *every* chip,
or you'll get ground-bounce, which wil cause random-looking data
errors that will be a nightmare to debug.


Thanks for the idea Lionel,
I can see its advantages and I'll add it to my mental collection of
solutions to problems for future use.
Unfortunately in this application, I don't have enough available
micro port lines to use that configuration. Also the way the firmware's
structured, it's much easier to output one clock pulse to read each
captured bit in sequence as it steps through a lookup table.
Thanks for the tip on putting a bypass cap right at each chip, as
Don also suggested. This is something I learned about quite a long time
ago. :)

Cheers
Bob
 
L

Lionel

Jan 1, 1970
0
Thanks Don, Dave, Adrian, DMM, Swanny and Jasen!
Unfortunately the inputs can't be arranged as a matrix. :-( There's
a fair bit of space available on the board, but I didn't want to go
ahead with a long string of 8 bit shift registers if there was a tidier
way of doing it.
I think it would only complicate things if I used micros
programmed to behave like shift registers or analog switch chips. I've
been burned by Allegro chips becoming obselete, making me reluctant to
use their parts.
The 74xx674 would be ideal but I can't find anyone selling the HC
version, plus as Dave expected, they only seem to be available in the
DIP 28 package. The 74xx676 seems to be equally scarce.

Try Texas instruments. They seem to carry all the weird 74xxx logic
families & obscure latch/register/shifter functions:

<http://focus.ti.com/logic/docs/logicportal.tsp?templateId=5985>

If you can't spare 8 input bits for the suggestion I posted, you can
simply add a single 8 bit parallel to serial shifter to it to convert
the output to serial.
 
B

Bob Parker

Jan 1, 1970
0
Lionel said:
Try Texas instruments. They seem to carry all the weird 74xxx logic
families & obscure latch/register/shifter functions:

<http://focus.ti.com/logic/docs/logicportal.tsp?templateId=5985>

If you can't spare 8 input bits for the suggestion I posted, you can
simply add a single 8 bit parallel to serial shifter to it to convert
the output to serial.

Thanks again
I couldn't find any suitable devices with 16 inputs on the TI site.
In addition, I couldn't find any supplier like Digikey, Mouser or anyone
local who could sell me anything useful, whereas 74HC165s are plentiful
and cheap.
There's pressure from 'on high' for me to get a prototype working
ASAP so I've already drawn 16 x 74HC165s into the schematic with dear
old Protel 99SE (my 'favourite' piece of software) and I'm about to
start making big changes to the original PCB artwork which currently has
7 x 74HC165s looking at 50 input lines.
Better luck next time. :)

Bob
 
A

AJ

Jan 1, 1970
0
Bob Parker said:
I'm designing a gadget which uses a small micro to look at the 0V/3.3V
logic states on 125 lines. I need to turn it into serial data. It doesn't
have to be very fast.
There doesn't seem to be any electrical problem with stringing 16 8-bit
parallel-serial shift registers (74HC165 etc) together, except that it'll
take up a fair amount of board area.
Does anyone know of a more 'elegant' way of doing it with a smaller
number of bigger chips?
Thanks!

Bob

Just an idea, but could you possibly use 16 x OP AMPS configured as summing
amplifiers with the inputs scaled to 1,2,4,8,16,32,64,128 (Im pretty sure
you can get resistors close to those values in 0603 packages from Farnell)
and feed the outputs into a PIC with 16 x A/D's like the PIC18F6720. With
the inputs scaled that way you should be able to calculate which individual
inputs are on or off according to the output voltage. This way you would
need about 150 resistors, a couple of OP AMPS and the PIC which you need
anyway, may work out cheaper in parts and might simplify your design and
layout but would probably be harder to put together.

Best regards


AJ
 
A

Andy Wood

Jan 1, 1970
0
.. . .
Just an idea, but could you possibly use 16 x OP AMPS configured as summing
amplifiers with the inputs scaled to 1,2,4,8,16,32,64,128 (Im pretty sure
you can get resistors close to those values in 0603 packages from Farnell)
and feed the outputs into a PIC with 16 x A/D's like the PIC18F6720. With
the inputs scaled that way you should be able to calculate which individual
inputs are on or off according to the output voltage. This way you would
need about 150 resistors, a couple of OP AMPS and the PIC which you need
anyway, may work out cheaper in parts and might simplify your design and
layout but would probably be harder to put together.

A PIC?

Somehow, I think not!

http://members.ozemail.com.au/~bobpar/pichate.htm


Andy Wood
[email protected]
 
Top