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}>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
etc