🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.robotics
Article #961

Re: 68HC11EVBU fanout data

#961
From: Fred G Martin
Date: Tue, 13 Oct 1992 16:23
53 lines
2894 bytes
In article <1992Oct12.163640.25052@hemlock.cray.com> kilian@cray.com
(Alan Kilian) writes: 

>The synchronous connections are generally daisy chained so that each CPUs
>output only drives one other CPUs input. This way you can connect an infinite
>number of CPUs together. Like this:
>
>   CPU A                  CPU B           CPU C
>+-----------+          +----------+     +-----------+
>|    MOSI   +---->-----+ MOSI MISO+-->--+ MOSI MISO +-->--+
>|    MISO   +--<-+     |          |     |           |     |
>+-----------+    |     +----------+     +-----------+     |
>                 +----------------------------------------+
>Now believe it or not this diagram is correct.
>CPU A is the master. CPUs B&C are slaves.

Alan,

While this arrangement will probably work technically, I don't think
it's standard practice.

First off, it's generally not problematic for a CMOS output to drive
lots and lots of CMOS inputs.  10 is easy, 100 is likely to be
possible.  So there isn't a fan-out problem in the first place that
might need to be solved by the daisy-chaining scheme.  Also, in your
solution, the SCK (serial clock) line from the master must drive all
of the slaves, so if there is a fan out problem, the daisy-chain
doesn't solve it.

Second, your scheme is very sensitive to the exact number of CPUs in
the chain.  If the master CPU (CPU A in your example) wants to get
data back from CPU B, it must know exactly how many CPU's are in the
return data path (in your example, one; CPU C).  This isn't a very
easy arrangement to deal with in software: if you add a CPU to the
loop, either you have to change a bunch of constants or get the
network to figure out for itself how many CPUs there are.


The more accepted solution will tie together each of the MOSI, MISO,
and SCK lines for each CPU.  The one CPU is the master (its Master Out
Slave In functions as output) and all the other CPUs are slave (their
MOSIs are input).  Likewise, a given slave can respond to the master
by driving its MISO (Master In Slave Out).

This topology is much more robust when it comes to adding and removing
nodes; if each node has a unique ID, then the master can send out a
network package of sorts that is addressed to a particular slave.  If
that slave doesn't respond, well then it is not connected.  But
communication with all of the other slaves can continue without
modification.


	- Fred
Technical Details
Message-ID: <1992Oct13.162310.3110@news.media.mit.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!rutgers!micro-heart-of-gold.mit.edu!news.media.mit.edu!fredm
References: <1992Oct12.163640.25052@hemlock.cray.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!rutgers!micro-heart-of-gold.mit.edu!news.media.mit.edu!fredm
From: fredm@media.mit.edu (Fred G Martin)
Newsgroups: comp.robotics
Subject: Re: 68HC11EVBU fanout data
Message-ID: <1992Oct13.162310.3110@news.media.mit.edu>
Date: 13 Oct 92 16:23:10 GMT
References: <1992Oct12.163640.25052@hemlock.cray.com>
Sender: news@news.media.mit.edu (USENET News System)
Organization: MIT Media Laboratory
Lines: 53