BobW said:
The issue is signal integrity. You have to have a clock with monotonic
edges and one that doesn't violate undershoot/overshoot specs.
It used to be, with slow clock edges, that you could connect a single
clock source via daisy chain or star configuration. That just isn't true
any more.
I inherited a design that used a single clock driver output to connect to
several pins. Although the clock rate was slow (1MHz) the rise/fall time
was about 1ns. This resulted in double clocking due to the placement of
the reflection at one of the pins. It failed to pass error free data.
You can't use source termination for multiple if multiple clock pins are
connected in a daisy chain when the receivers are LVTTL or CMOS logic
levels because you won't meet their levels during the forward transmission
of the edge (and then comes along the reflected wave to add insult to
injury). You have a chance using source termination in a star topology but
it's kinda tricky.
If you use end termination for the daisy chain and star configuration then
you have to have a super low impedance clock driver to assure that it will
launch a full amplitude wave into the trace(s). Otherwise, you won't meet
the logic levels.
I will have star network for the clock(obviously) and daisy chain the data.
I can have significant driving capabilities so I don't think that will be a
problem with the clock. Although it will be distributed rather far apart and
I might have a problem with termination. Not quite sure how to terminate but
I guess it's the same as if it was just a single connection? (terminate at
destination which would be at each IC in this case)
It is MUCH easier to bite the bullet and put in a clock distribution chip.
They're cheap and they work and they allow you to sleep peacefully.
The main question here is it really needed. They might be cheap but I have
another issue which has to do with the mechanical aspects. (basically I need
as few components as possible because they way the circuit will be used)
It is not critical to have glitch free operation. In fact, because I have to
update the IC every time any glitch won't have much of an impact as long as
it is random and doesn't occur to often. This is a lighting situation and I
have the IC's driving several rows which means I need to update them
continuously. Any glitch will only cause the light to be slightly brighter
or not.
One main problem is that my uP will be almost completely tied up transfering
the data to the chips. I suppose I will have to use it as a slave and
another uP to update it(which can be done slower).
Another way I was thinking was to use a larger serial-in/serial-out to
update the IC's transparently and just update those chips when needed... but
then it requires much more circuitry.
The point here because I am using PWM and have more than one row I have to
update the circuitry repeatedly even though each row won't change much(still
needs to be updated because the IC only see's one row).