Searching \ for ' Relay question...' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/io/motors.htm?key=relay
Search entire site for: 'Relay question...'.

No exact or substring matches. trying for part
PICList Thread
'[PICLIST] Relay question...'
2000\06\25@154133 by Greg Peyton

flavicon
face
I've been charged with building an improved test fixture (T/F) at work and
would appreciate some help from the group. Before I begin I'd like you to
know that I'm not an engineer, only a technician who has been studying the
pics that have been used in our products for the last few years.

In the past, we've used manual rotary switches as a signal path through our
T/Fs. This is an inherited design, one which I've never been happy with. If
it were up to me we would have scrapped this concept many, many years ago.
When new the T/Fs work fine. With time these contacts wear and tarnish,
eventually cause false readings, resulting in final test product rejects.
Eventually the outer coating on the contacts would wear off, revealing only
brass. The contacts became erratic and drove up labor costs for testing. The
product is a sensitive instrument used for testing of telephone lines and
therefore requires very low, or at least resonably matched low resistances in
all contact points.  Changing over to solid silver alloy wafers contacts and
a lubricant greatly improved T/F lifespan but at a large $ cost. The T/Fs
themselves are entirely manual, time consuming to use, build and maintain.

I've come to the conclusion, and I invite different optinions, that we'd be
better off with an array of relays under direction of a ucontroller.
The T/F presents to the product a variety of resistances, capacitances, ac
and dc voltages (up to 300V) to be measured in the different settings. Simple
stuff but nonetheless we require a degree of accuracy that is repeatable.

My question (and I do have one) is this: What is the best way of designing
and controlling an array of latching relays?

We use NEC EB2-5S 5VDC latching relays in our product so I have an huge
supply to work with. The coil of these relays is stated at 250 ohms. I would
like to have available about 32 of these relays but a design that would allow
expandability for future unimagined tests. One of the engineers has proposed
that I use a 74HC373 off of the pic ports to activate the relays. His
thinking is that using two of the '373 output pins for each relay, in a daisy
chain, I could energize the desired relay for a few miliseconds. I understand
this, having seen it used in one of our products, and believe that it is a
possible solution for this T/F business. I have huge respect for our
engineers but something in the back of my head tells me that there is a
better, more efficient or possibly better organized way of doing this.
At this point I can see that there are several competing factors involved;
programming efficiency, component count, simplicity for troubleshooting,
allowance for future expansion, etc.
Obviously this isn't the ultimate solution to the problem but I know that
we're not going to be able to convince the guy who controls the purse strings
to buy new computers, interface cards, dataloggers, calibrators, etc. To
improve the existing setup is what I'm trying to accomplish. Besides,
anything I learn from this helps me out.

Does anyone have experience with this kind of thing? I'd be willing to
entertain other ideas since I haven't bought any parts yet.
Any web sites or application notes that deal with this type of thing? I don't
believe in reinventing the wheel. Every time I do that I get admonished by
the boss for wasting time (three times before getting it right is normal for
me).
I'm looking for a dialog on this so feel free to respond with questions and
advice before flames.


-Greg Peyton

2000\06\25@165805 by Arthur Brown

flavicon
face
How many nodes?

are the relays pulse once for on pulse for off? or 2 pins ?

if this is the case pic could easy do this or if in doubt use Transistor
Array ULN2804 with or with out (Rin)

see http://www.forwessun.com/ a firm in uk I worked for once.
they do it all. build program test and supply probes and receptacles

Regards Art

----- Original Message -----
From: Greg Peyton <spam_OUTGPEYCOTakeThisOuTspamCS.COM>
To: <.....PICLISTKILLspamspam@spam@MITVMA.MIT.EDU>
Sent: Sunday, June 25, 2000 12:39 PM

2000\06\25@200624 by Greg Peyton

flavicon
face
In a message dated 6/25/00 1:58:58 PM Pacific Daylight Time,
artbspamKILLspamCABLEINET.CO.UK writes:

> How many nodes?
>
>  are the relays pulse once for on pulse for off? or 2 pins ?
>
>  if this is the case pic could easy do this or if in doubt use Transistor
>  Array ULN2804 with or with out (Rin)
>
>  see http://www.forwessun.com/ a firm in uk I worked for once.
>  they do it all. build program test and supply probes and receptacles
>
Arthur, thank you for your response.
I don't have the datasheet in front of me (I'm at home for the weekend) but
I'll try to describe. The NEC relays are latching type. Closing the relay is
accomplished by energizing the coil with a 5vDC supply of a certain polarity
for, from what I remember 2-5 ms. In the product at work, the driving IC
would then be pulled to high z output. Opening the relay is accomplished
exactly the opposite, by reversing the voltage across the coil for 2-5ms.
This is why the engineer suggests using a 74HC373, with the relay coils
chained across the output pins. That way the individual output pins can be
reversed. Where 8 or more relays are used, a second 'HC373 would be added,
with the eighth relay spanning from the last pin of the first 'HC373 to the
first pin of the second 'HC373. This scenario would continue for as many
relays as were necessary. Of course the correct 'HC373 would need to be
properly selected, which I haven't even touched on yet.
The downside is that I lose use of one pin from the top (if there are more
than one being used) 74HC373. That is to say I'll only be able to get 7
relays on each eight pin output 'HC373. Not a big price to pay. It does
complicate the hardware design a bit, which is what I'd like to improve.
Ideally, I'd have a single line driving each relay. I think this might be
possible by driving the relay from across an inverter, itself being driven by
a buffer/inverter. At least that way I could get a direct relationship
between the output pins and the relays.

Unfortunately this is exactly the kind of wacked out, rube goldberg solution
I come up with that I'm trying to avoid.

If I'm being less than clear in my circuit description let me know and I'll
take another shot at it.

It occurs to me that I may be attempting to simplify my hardware too much. I
suppose software contortions could solve all my problems. It just irks me to
make my first pic design with little or no hardware style. I consider my job
to idiot proof so that later technicians have little or no difficulty with
troubleshooting and repairs.
I'll take a look at the web site you've given me later tonight.

-Greg

2000\06\25@202525 by Bob Ammerman

picon face
You can get 8 per chip if you just wrap the last relay around to the first
position.

IE:

Relay 1 connects to Q0 and Q1
Relay 2 connects to Q1 and Q2
...
Relay 7 connects to Q6 and Q7
Relay 8 connects to Q7 and Q0

Bob Ammerman
RAm Systems
(high performance, high function, low-level code)

2000\06\25@215718 by Greg Peyton

flavicon
face
In a message dated 6/25/00 5:25:52 PM Pacific Daylight Time,
.....RAMMERMANKILLspamspam.....PRODIGY.NET writes:


{Quote hidden}

Bob,
Thank you for your reply.
I'm really glad I posted the problem, it's forced me to think through the
potential pitfalls and will undoubtedly improve the final results.
I read your post and though "Doh, boy do I feel stupid". It seemed so simple.
Then I started working this out in a spreadsheet to see if it was possible.
It almost immediately became clear that a second relay could possibly be
affected. At first I thought this might be a possible flaw in the design for
unseen future settings. Imagine if, for only a few ns a high voltage was
applied across a low resistance (or a short) linked to an adjacent relay. For
safety, I thought it best if only one relay be changed at a time.

I may be wrong (I frequently am) but what I found was that you could not use
the wrap-around scheme without possibly effecting two relays simultaneously.
The only way that all other relays, besides the targeted relay, can remain in
the current position is if both sides of the coil are in the same state. With
the wrap around scheme you are possibly forced into affecting one other
relay. Scratch out the binary for this out on paper and see what I mean. I'm
sure I'll hear about this from MANY people if my take is wrong headed.

Although As I think about this it would seem that I only have to worry about
T/F settings immediately adjacent to the present position. That could be
dealt with in software. I'm beginning to see the beauty in creating a stack
that allows me to define which relays (in the correct order) need to be set
and then unset as I move from one test to the next. I'm tempted to say more
but think that I'd better give this some thought.

I'm going to take another look at this but what I see right now isn't
encouraging. Let me know if there's a fix for this that I've overlooked.

-Greg

2000\06\26@040633 by Rex's Dingo Mail

flavicon
face
I have done something similar for the monitoring of push buttons then
controlling the output relays/leds to indicate the state of the input
circuits.

I used a combination of 74HC595 serial latches controlled by the 16F84.  As
each of these requires a data and clock line these can all be paralled and a
separate enable line is required for each latch, therefore for 32 outputs
there would be a requirement for 6 control lines from the 16F84.

This would leave 6 for input control/sensing.

As an alternative I have also used the I2C bus to control output devices (8
outputs) PCF8574 if I remember correctly.  Each of the devices has 4
addresses allowing 32 outputs from 2 control wires, in addition there is an
"A" part that allows an addition 4 addresses giving the possibility of 64
outputs from  the 2 wire bus.

Hope this helps

Rex Pearson
NT Police, Fire & Emergency Services
{Original Message removed}

2000\06\26@064627 by Russell McMahon

picon face
Greg,

Bear in mind that an open collector driver can be used if you use pullup
resistors

ie
5 volt 250 ohms = 20 mA per relay.
Using say a 12 volt supply.
Connect each side of each relay to 12 volt supply with a 330 ohm resistor.
This could be part of an 8 pack of resistors.
Pull down any one lead to ground and the relay will have 12/(250+330) ~=
21mA applied and will operate.
Pull down BOTH sides at once and it will not operate (this allows pin
sharing amongst several relays if relays are appropriately connected).
Power dissipation in each resistor will be about 130 milliwatt but will only
be required while the coil is being activated.
Using something like an MM5450 serial driven 34 segment driver will allow 17
relays to be driven totally independently and take only 2 PIC pins to drive
the lot.
32 relays will take 2 x MM5450, 8 x 8-resistor SIP arrays, 4 PIC pins.
You could probably reduce this to a single MM5450 by cunning driving of
several pins at once and array arrangements of relays but the small extra
cost of using 2 ICs is probably worthwhile.

If you haven't met it before:     The MM5450 (and there are other more
modern ICs available which do the same job) is driven with a clock and data
line only. There are a number of versions of MM545X which have slightly
different options (some with LCD drive) and 32 to 34 segment capability. An
oldie but a goodie.
Code is very easy. I have some ST6 code for it but others here will have PIC
code probably.
Basically:

Lower clock line
Repeat 34 times:
   Place data bit on data line
   Raise clock line
   Lower clock line
End repeat.

With 16 relays per MM5450 all relays may be controlled completely
independently.
The MM5450 can (probably) support simultaneous short term activation of all
leads at once although this would seldom be required.



regards,



     Russell McMahon
_____________________________

What can one man* do?   Help the hungry at no cost to yourself!
at  http://www.thehungersite.com/
(* - or woman, child or internet enabled intelligent entity :-))
From other worlds:
http://www.changingourworld.com    http://www.easttimor.com   http://www.sudan.com


{Original Message removed}

2000\06\26@073923 by Russell McMahon

picon face
>As an alternative I have also used the I2C bus to control output devices (8
>outputs) PCF8574 if I remember correctly.  Each of the devices has 4
>addresses allowing 32 outputs from 2 control wires, in addition there is an
>"A" part that allows an addition 4 addresses giving the possibility of 64
>outputs from  the 2 wire bus.


Could also use eg 4094 or similar 8 bit serial load / parallel output shift
registers  chained together as required but these often have low ish drive
and MAY need buffers as well. eg ULN2803 etc. Advantage is only 3 lines to
control the whole array (clock, data, load). Care needs be taken with ripple
carry for large arrays.




RM

2000\06\26@090552 by Bob Ammerman

picon face
Greg:

Now I see what you're saying. In order to turn on  a given relay you output
a string of zeros and ones such that the desired relay is the only one which
has different values on its two inputs. You need to keep the ends open,
because otherwise there would always be two relays that saw different
values.

You should plan on always sending the entire byte at one time to the
hardware, then you will only have the skew between bits to deal with,
certainly much too short an interval to falsely trigger a relay. I guess I
would use an 8-bit port as a data bus. Three additional bits could select
one out of eight '373's via a '138 decoder. A final output bit could act as
the enable through the '138. This would allow for 8*7 = 56 relays.

So, as I understand it, the values to turn the relays on and off would be:

00000000   Idle state
11111111  Alternate idle state

00000001  Turn on relay 1
00000011  Turn on relay 2
00000111  Turn on relay 3
00001111  Turn on relay 4
00011111  Turn on relay 5
00111111  Turn on relay 6
01111111  Turn on relay 7

11111110  Turn off relay 1
11111100  Turn off relay 2
11111000  Turn off relay 3
11110000  Turn off relay 4
11100000  Turn off relay 5
11000000  Turn off relay 6
10000000  Turn off relay 7

Note that you can operate more than one relay simultaneously, although there
are restrictions on the combinations you can do. For example:

01010101  Turns on relays 1, 3, 5 and 7 and turns off relays 2, 4 and 6.

Message -----
From: Greg Peyton <EraseMEGPEYCOspam_OUTspamTakeThisOuTCS.COM>
To: <PICLISTspamspam_OUTMITVMA.MIT.EDU>
Sent: Sunday, June 25, 2000 9:55 PM
Subject: Re: [EE]: Relay question...


> In a message dated 6/25/00 5:25:52 PM Pacific Daylight Time,
> @spam@RAMMERMANKILLspamspamPRODIGY.NET writes:
>
>
> >  You can get 8 per chip if you just wrap the last relay around to the
first
{Quote hidden}

simple.
> Then I started working this out in a spreadsheet to see if it was
possible.
> It almost immediately became clear that a second relay could possibly be
> affected. At first I thought this might be a possible flaw in the design
for
> unseen future settings. Imagine if, for only a few ns a high voltage was
> applied across a low resistance (or a short) linked to an adjacent relay.
For
> safety, I thought it best if only one relay be changed at a time.
>
> I may be wrong (I frequently am) but what I found was that you could not
use
> the wrap-around scheme without possibly effecting two relays
simultaneously.
> The only way that all other relays, besides the targeted relay, can remain
in
> the current position is if both sides of the coil are in the same state.
With
> the wrap around scheme you are possibly forced into affecting one other
> relay. Scratch out the binary for this out on paper and see what I mean.
I'm
> sure I'll hear about this from MANY people if my take is wrong headed.
>
> Although As I think about this it would seem that I only have to worry
about
> T/F settings immediately adjacent to the present position. That could be
> dealt with in software. I'm beginning to see the beauty in creating a
stack
> that allows me to define which relays (in the correct order) need to be
set
> and then unset as I move from one test to the next. I'm tempted to say
more
> but think that I'd better give this some thought.
>
> I'm going to take another look at this but what I see right now isn't
> encouraging. Let me know if there's a fix for this that I've overlooked.
>
> -Greg

2000\06\26@110338 by Russell McMahon

picon face
The MM525x  I mentioned could use the scheme below and would allow 31 or 33
relays (depending on version used) with a single IC.
It would still require pullup resistors and the instantaneous current would
be a wee bit high but possibly tolerable (I'd have to check the data sheet
to see for sure).

The MM545x drives all its outputs on/off essentially simultaneously and
switching times are much faster than relay response time.


     Russell McMahon
_____________________________


>Greg:
>
>Now I see what you're saying. In order to turn on  a given relay you output
>a string of zeros and ones such that the desired relay is the only one
which
{Quote hidden}

etc

'[EE]: Fw: Re: Relay question...'
2000\06\26@111205 by Russell McMahon

picon face
-----Original Message-----
From: Russell McMahon <KILLspamapptechKILLspamspamclear.net.nz>
To: pic microcontroller discussion list <RemoveMEPICLISTTakeThisOuTspamMITVMA.MIT.EDU>
Date: Monday, 26 June 2000 23:32
Subject: Re: Re: Relay question...


>>As an alternative I have also used the I2C bus to control output devices
(8
>>outputs) PCF8574 if I remember correctly.  Each of the devices has 4
>>addresses allowing 32 outputs from 2 control wires, in addition there is
an
>>"A" part that allows an addition 4 addresses giving the possibility of 64
>>outputs from  the 2 wire bus.
>
>


Could also use eg 4094 or similar 8 bit serial load / parallel output shift
registers  chained together as required but these often have low ish drive
and MAY need buffers as well. eg ULN2803 etc. Advantage is only 3 lines to
control the whole array (clock, data, load). Care needs be taken with ripple
carry for large arrays.




RM

'[EE]: Relay question...'
2000\06\26@144228 by Oliver Broad

picon face
UCN5818.

Serial load, 32 buffered outputs, source and sink.

Not sure what the actuall drive is but should be stronger than PIC?

Oliver.

2000\06\26@172354 by Peter L. Peres

picon face
Hi,

there is no need to use one driver per relay, with latching relays use a
matrix. For 32 relays you could use 2 x 373 as latches, with 6 data bits
used in each, and two additional PIC pins used as strobes (total 8 pins
used - but see below for a solution using only 3 pins - chip count == 2
n/incl pic). A set of diodes are required at the drivers to remove the
kickback problem. These are available integrated (in nines even). To steer
the array you first strobe one side of the matrix, then the other, then
turn it off. If you need to steer all the relays statically (not latching)
then it might be better to use a serial in parallel out shift register, or
rather many of these, chained. You'd need four for 32 IOs, using only
three PIC pins. You can use only two shift registers for a matrix of
latching relays (8x8 = 64).  This I have done (with 20 latching reed
relays in a 5x4 crossbar matrix). Note that you may not need to use
separation diodes in the matrix, because the phantom circuits will only
have 1/2 Vcc or less applied and most bistable relays do not change state
under these conditions (you need to check specs).

Peter

2000\06\27@003025 by Harold Hallikainen

picon face
Use an Allegro UCN5832 to get 32 high current, high voltage open drain
(or collector) outputs to drive the relays. It's serial in, parallel out,
all in one 40 pin chip. You can cascade them for more outputs.  I like
them!

Harold

________________________________________________________________
YOU'RE PAYING TOO MUCH FOR THE INTERNET!
Juno now offers FREE Internet Access!
Try it today - there's no risk!  For your FREE software, visit:
dl.http://www.juno.com/get/tagj.

2000\06\27@123605 by Howard Cripe

flavicon
face
I am in the process of designing a board which needs to drive 16 12v
solenoids at 1.2amps. I found a chip very similar to the 74HC595 which will
drive relays or solenoids directly. It is the TPIC6595 made by TI and it
will handle 1.5amps pulsed per output. DigiKey has it for $2.84 in singles.
I am controlling them (daisy chained) with 4 pic lines (clock, data, strobe
& clear). With the strobe line, you can shift all the bits in, then latch
them, to avoid small spikes on the relays/solenoids as the bit are being
shifted. The chip has built in voltage clamping diodes on the outputs,
which will handle up to 45 volts.

Data sheet: http://www-s.ti.com/sc/psheets/slis010a/slis010a.pdf

Maybe this will be an option.

Howard

2000\06\27@180909 by Peter L. Peres

picon face
---------- Forwarded message ----------
Date: Tue, 27 Jun 2000 00:08:16 +0300 (IDT)
From: "Peter L. Peres" <spamBeGoneplpspamBeGonespamplp.plp.home.org>
To: pic microcontroller discussion list <TakeThisOuTpiclistEraseMEspamspam_OUTmitvma.mit.edu>
Subject: Re: Relay question...


Hi,

there is no need to use one driver per relay, with latching relays use a
matrix. For 32 relays you could use 2 x 373 as latches, with 6 data bits
used in each, and two additional PIC pins used as strobes (total 8 pins
used - but see below for a solution using only 3 pins - chip count == 2
n/incl pic). A set of diodes are required at the drivers to remove the
kickback problem. These are available integrated (in nines even). To steer
the array you first strobe one side of the matrix, then the other, then
turn it off.

If you need to steer all the relays statically (not latching)  then it
might be better to use a serial in parallel out shift register, or rather
many of these, chained. You'd need four for 32 IOs, using only three PIC
pins. You can use only two shift registers for a matrix of latching relays
(8x8 = 64).  This I have done (with 20 latching reed relays in a 5x4
crossbar matrix).

Note that you may not need to use separation diodes in the matrix, because
the phantom circuits will only have 1/2 Vcc or less applied and most
bistable relays do not change state under these conditions (you need to
check specs).

Peter

'[EE]: Relay question...the continuing saga'
2000\06\27@202142 by Greg Peyton

flavicon
face
part 1 2840 bytes content-type:text/plain; charset=iso-8859-1 (decoded quoted-printable)

First off. My apologies for not using [EE] in my original post. I should've, even though this entire discussion does eventually lead back to a PIC.
Secondly, I'd like to thank everyone, both on and off the discussion, for the responses to my post. The suggestions were extremely helpful. I had no idea the use of relay arrays was so widespread. My delay in responding is due to work on another project. Yep, we actually got real work to do during the week. This stuff counts as fun in my book.
Now...
I like the idea of using the 30 pin serial driver IC's. This keeps the chip count low and reduces the port pins being used. I might use this idea if some of the other more intriguing ideas don't pan out.

Peter, I read your post using 373s and at first thought it was not much different from the original scheme I had in mind. After rereading it though...Whoahh! "MATRIX". Now we're onto something. This is what I'm looking for (at least for using the 373s). I'd like you to take another shot at describing how you get 32 relays off two 373s. I was with you as far as using the 6pins + 2 strobes but got lost on the actual matrix connections. I'm having some trouble visualizing that.

-Greg

Greg Peyton
Metrology Lead Technician
Tempo
(760)598-8900 x293
RemoveMEgpeytonspamTakeThisOuTtempocomm.com
http://www.tempocomm.com

>>> Peter L. Peres<plpEraseMEspam.....ACTCOM.CO.IL> 06/27/00 02:35PM >>>
---------- Forwarded message ----------
Date: Tue, 27 Jun 2000 00:08:16 +0300 (IDT)
From: "Peter L. Peres" <EraseMEplpspamplp.plp.home.org>
To: pic microcontroller discussion list <RemoveMEpiclistEraseMEspamEraseMEmitvma.mit.edu>
Subject: Re: Relay question...


Hi,

there is no need to use one driver per relay, with latching relays use a
matrix. For 32 relays you could use 2 x 373 as latches, with 6 data bits
used in each, and two additional PIC pins used as strobes (total 8 pins
used - but see below for a solution using only 3 pins - chip count == 2
n/incl pic). A set of diodes are required at the drivers to remove the
kickback problem. These are available integrated (in nines even). To steer
the array you first strobe one side of the matrix, then the other, then
turn it off.

If you need to steer all the relays statically (not latching)  then it
might be better to use a serial in parallel out shift register, or rather
many of these, chained. You'd need four for 32 IOs, using only three PIC
pins. You can use only two shift registers for a matrix of latching relays
(8x8 = 64).  This I have done (with 20 latching reed relays in a 5x4
crossbar matrix).

Note that you may not need to use separation diodes in the matrix, because
the phantom circuits will only have 1/2 Vcc or less applied and most
bistable relays do not change state under these conditions (you need to
check specs).

Peter


part 2 4520 bytes content-type:multipart/related; boundary="____UCIKJWTPROYMYHAIVDAO____" (decode)

part 3 2 bytes
-

2000\06\27@203927 by Bob Ammerman

picon face
I am not sure the matrix idea will work in its simplest form with these
relays that have to be driven in both directions -- you can't use steering
diodes!

On the other hand: if the matrix were driven by 1/2 H-bridge chips that
could pull up or down, or remain hi-Z then it should be rather easy to do.

You do have to be careful of the 'sneak' current paths in the matrix. Even
if the non-selected relays don't see enough voltage to latch, they _do_ draw
current... and there are many 'sneak' paths in a relatively large matrix.
This current has to be taken into account in determining the driver
requirements.

Bob Ammerman
RAm Systems
(high performance, high function, low-level software)

2000\06\28@071854 by Tom Theron

flavicon
face
Hi Peter

>latching relays (8x8 = 64).  This I have done (with 20 latching reed
>relays in a 5x4 crossbar matrix). Note that you may not need to use
Peter

Can you supply some manufacturer/part no for latching reed relays?

Rgds
Tom Theron

2000\06\28@094038 by gacrowell

flavicon
face
I missed most of this thread, and maybe you are already aware of some
version of serial driver IC's, but I thought I'd mention the Allegro
UCN5895.  We have used it with good success.  16-pin DIP, serial in/out
cascadable, separate power for logic/load, controls 8 relays.

Gary Crowell
Micron Technology


{Original Message removed}

2000\06\28@164254 by Peter L. Peres

picon face
Hi,

wrt matrix: It seems that I am mistaken about the 373's being usable as I
have said in a matrix. I have done this with open collector drivers in a
system that had no microprocessor. I had high side and low side drivers
actuated separately (18 bits driving 20 relays from LSI logic).

The matrix works like this: You apply a '1' on the column that has the
relay you want to switch and a '0' on the line.  All other lines and
columns float. Maintain the '1' output for 2-5 msec and then turn off. To
turn the same relay off, set '1' to the line and '0' to the column. All
the other lines and columns remain undriven (you have separate high and
low side switches for each lines and columns - I had 5+5 line drivers and
4+4 column drivers. The low side drivers were a 9(?) x NPN transistor
array and the high side discrete PNP).

I suppose that you could use two 373's per matrix side and diode arrays to
achieve this (total four 373's or four 595's for a maximum of 8 x 8 relays
= 64). You would also need 32 diodes to separate the outputs of the 373s
from the matrix. My part count was very low because of the open collector
transistors I used (this is a tautology). I had 10 parts (+2 SIP resistor
arrays) to steer 20 relays. The control required 18 bits which came from
LSI logic.

To drive the 373 solution, for each line and column, the upper driver
would have forward biased diodes, and the lower driver would have reverse
biased diodes towards its line/column. To steer you would output a single
bit 1 in the high side driver for columns and a single bit 0 pattern in
the low side driver for lines, then turn off.  Initialization would be all
1's in the low side drivers and all 0's in the high side drivers. You can
also steer 32 relays directly from four 373s using a small electrolytic
capacitor in series with each relay. Each 373 output drives one relay
through a cap. 22uF 6.3V seemed to work ok with 10 mA I think. The other
side of the relay coil is grounded. You need to cycle each output for
initialization (in the matrix solution too ! - in all of them !).

Which brings us back to PICs. You can program a PIC to have an output only
on the port pin(s) where you want it, leaving all other pins tristate. A
PIC64 will steer your 8 x 8 bipolar relay matrix using only 2 ports. You
would tristate all the outputs except the ones driven, then tristate all
again after 2-5 msec. Now comes the interesting part where you calculate
the Requiv across two points in the matrix to determine Imax. It is
smaller than 2 * Irel no matter how many relays there are in the matrix,
and no relay in the matrix excepting the one selected will see a voltage
grater than 1/2 Vcc, however please check your numbers ;-).  In other
words, if you use 5V 10 mA reed bistable relays then the PIC will be able
to drive the matrix directly. You still need clamping diode arrays ouside
the PIC on each column and line. That would put your driver part count to
three (3) parts to steer 64 relays, with controlling computer included,
w/o clock and power supply.

The phantom circuits appear between the relays in the matrix. The actually
required current in the drivers is higher than what is required to drive a
single relay because of this, but none of the other relays will switch. I
had 0.5A spec drivers for 8 mA relays (Hamlin I think). It is an exercise
to compute the equivalent resistance between a line and a column in such a
matrix (esp. if it is large) ;-)

Peter

PS: Sorry for the long posting.

2000\06\28@213306 by Bob Ammerman

picon face
See my notes marked "****" below:

Bob Ammerman
RAm Systems
(high performance, high function, low-level software)


{Original Message removed}

2000\06\29@034554 by Harold Hallikainen

picon face
**********************************************************************
*                  This is an automated message.                     *
* This email message has been delayed due to a major system failure. *
*           We apologise for any inconvenience caused.               *
*             Please ignore any duplicate messages.                  *
**********************************************************************


Use an Allegro UCN5832 to get 32 high current, high voltage open drain
(or collector) outputs to drive the relays. It's serial in, parallel out,
all in one 40 pin chip. You can cascade them for more outputs.  I like
them!

Harold

________________________________________________________________
YOU'RE PAYING TOO MUCH FOR THE INTERNET!
Juno now offers FREE Internet Access!
Try it today - there's no risk!  For your FREE software, visit:
dl.http://www.juno.com/get/tagj.

2000\06\29@185033 by Peter L. Peres

picon face
>Can you supply some manufacturer/part no for latching reed relays?

I am pretty sure that they were by Hamlin. It's been 10+ years since I did
this. I think that Mouser or Jameco did carry some latching reed relays.
If I remember well all reed latching relays are changeover relays (SPDT)
and I remember pretty well that they have some draconic constraints on
lead bending and cutting near the glass case (by near I mean 1/4" or
more).

Peter

2000\06\29@194612 by Peter L. Peres

picon face
Hi Bob,

wrt your doubts: I did the calculation on paper for 2 x 2 and 3 x 3
matrices. In the morning, not now ;-).

The trick to solve the mes(s|h) is to observe that the lowest resistance
point appears when you measure between the centermost line and column.
From this start adding rows and columns outwards.

>Each time we add a new row and column we create at least one new 3*Rrelay
>sneak path.

Yes. For a 3 x 3 matrix you have 1/R and 2/(2R) + 1/(4R) in parallel. For
4 x 4 you have an asymmetrical matrix that is harder. 5 x 5 is again
"easy"  etc. In general the matrix simplifies to a sum of fractions of R
in parallel with 1R for N%2 and the (N+1)%2 case should be harder to
express.  When N%2 then a great deal of shorts can be made in the
equivalent schematic and the fraction sum simplifies neatly.

The equivalent maximum I for some matrix sizes is:

2 x 2: I  =   1.(3)    x I0: 1.098:  0.235: 0.176
3 x 3: I  =   1.8      x I0: 1.609:  0.191: 0.106
4 x 4: i ~=   2.285    x I0: 2.484: -0.199: 0.087
5 x 5: I ~=   2.777    x I0: 2.995: -0.218: 0.078
6 x 6: I ~=   3.272    x I0: 3.401: -0.129: 0.039
7 x 7: I ~=   3.769    x I0: 3.737:  0.032: 0.008
8 x 8: I ~=   4.2(6)   x I0: 4.025:  0.241: 0.056

The fourth column is the result of ln((N-1)*N) and the fifth the error it
gives in approximating the calculated Imax/I0. The sixth is the same error
normalized. I don't think that ln((N-1)*N) is the limit but it seems to
approximate to within 20% for common (small) matrix size values ?.

(the numbers in column 2 were calculated right now using circuit
simulation - use numbers at your own risk)

I cannot see where this is going. Maybe someone else can ? BTW I seem to
remember that some core memory addressing scheme I saw in an old book
worked on similar principles ?! But I am not sure of this. I got the idea
back then from a typical problem of the kind teachers give to students so
as to torture them, with resistors, not relays ;-)

So I did remember somewhat correctly that my 5 x 4 matrix drew about 2 x
I0 ;-). One can still drive a 6x6 matrix of 8 mA relays with a PIC64 I
think.

Peter

2000\06\30@072712 by Jinx

face picon face
If a practical circuit is arrived at, Ken Webster has a site for
relay drivers

http://www.scooby.flysaturn.com/cktlib/relaydrv/index.html

that I'm sure he wouldn't mind adding a matrix driver to

(to which he wouldn't mind adding a matrix driver ?)

I've a library of symbols to draw such a circuit if anyone wants it

2000\06\30@161343 by Oliver Broad
picon face
I thought about it (using a diode in series with each relay) and I think
diodes could work, but you'd need to double up the rows or the columns so
that both directions could be activated.

Say we double the columns. One set has the 'Push' Diodes on it, the other
has the 'pull' diodes. This way one set remains safely reverse biased while
the other set operates the relay.

Oliver.


'[EE]: Relay question...the continuing saga (fwd)'
2000\07\02@143250 by Peter L. Peres
picon face
---------- Forwarded message ----------
Date: Fri, 30 Jun 2000 01:45:31 +0300 (IDT)
From: "Peter L. Peres" <RemoveMEplpspam_OUTspamKILLspamplp.plp.home.org>
To: pic microcontroller discussion list <RemoveMEpiclistTakeThisOuTspamspammitvma.mit.edu>
Subject: Re: [EE]: Relay question...the continuing saga


Hi Bob,

wrt your doubts: I did the calculation on paper for 2 x 2 and 3 x 3
matrices. In the morning, not now ;-).

The trick to solve the mes(s|h) is to observe that the lowest resistance
point appears when you measure between the centermost line and column.
From this start adding rows and columns outwards.

>Each time we add a new row and column we create at least one new 3*Rrelay
>sneak path.

Yes. For a 3 x 3 matrix you have 1/R and 2/(2R) + 1/(4R) in parallel. For
4 x 4 you have an asymmetrical matrix that is harder. 5 x 5 is again
"easy"  etc. In general the matrix simplifies to a sum of fractions of R
in parallel with 1R for N%2 and the (N+1)%2 case should be harder to
express.  When N%2 then a great deal of shorts can be made in the
equivalent schematic and the fraction sum simplifies neatly.

The equivalent maximum I for some matrix sizes is:

2 x 2: I  =   1.(3)    x I0: 1.098:  0.235: 0.176
3 x 3: I  =   1.8      x I0: 1.609:  0.191: 0.106
4 x 4: i ~=   2.285    x I0: 2.484: -0.199: 0.087
5 x 5: I ~=   2.777    x I0: 2.995: -0.218: 0.078
6 x 6: I ~=   3.272    x I0: 3.401: -0.129: 0.039
7 x 7: I ~=   3.769    x I0: 3.737:  0.032: 0.008
8 x 8: I ~=   4.2(6)   x I0: 4.025:  0.241: 0.056

The fourth column is the result of ln((N-1)*N) and the fifth the error it
gives in approximating the calculated Imax/I0. The sixth is the same error
normalized. I don't think that ln((N-1)*N) is the limit but it seems to
approximate to within 20% for common (small) matrix size values ?.

(the numbers in column 2 were calculated right now using circuit
simulation - use numbers at your own risk)

I cannot see where this is going. Maybe someone else can ? BTW I seem to
remember that some core memory addressing scheme I saw in an old book
worked on similar principles ?! But I am not sure of this. I got the idea
back then from a typical problem of the kind teachers give to students so
as to torture them, with resistors, not relays ;-)

So I did remember somewhat correctly that my 5 x 4 matrix drew about 2 x
I0 ;-). One can still drive a 6x6 matrix of 8 mA relays with a PIC64 I
think.

Peter

http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics

More... (looser matching)
- Last day of these posts
- In 2000 , 2001 only
- Today
- New search...