On 2017-Mar-30, at 1:13 PM, Noel Chiappa via cctalk
wrote:
>> From: Allison
>> FYI this is the same problem designers hit with DRAMS back 40 years ago.
> This didn't ring (pun not intended) a bell for me; can you say a bit more?
>
Early Dram memories were fickle to design and many poor designs got out
with notable consequences. Examples wer common in the S100 realm and
others too. The MITS 88-4K was replaced with 88-S4K for that reason it was
that bad and that was using the non-multiplexed 22 pin 4K parts. The
later 16K
multiplexed 16 pin parts 4116 were worse Tandy TRS80 EI version 1(no buffer)
and 2(buffered cable) leading to the later third try a complete redesign.
The problem was a high capacitance load of many NMos Drams and the
address and
data drive. The fix was not trivial. A fairly hard source like a
74S157 (treat as similar
in this case to a voltage source) provides a fast stepped input to a
signal line and
if the line were terminated in its characteristic impedance it would
simply transfer
the signal and preserve waveform. But an array of 16 DRAM for one
address line
with board and input capacitance looks like a roughly 160pf capacitor to
ground.
Your S157 switches and a step waveform goes from ground to +2.7V (lets say)
and the instantaneous current is rather large with an exponential decay.
Since the line does not see a termination like its characteristic
impedance or
anything acceptable much of the energy in the pulse is reflected back
and you
see ringing or waveform distortion (depends on length of the line). So
the then
simple fix was series resistance by experimental (maybe empirical too)
testing
for the best waveform and timing compromise. Usually this lead to both
re-layout
of the board as when you get 8 or 9 lines doing this the ground gridding
starts
showing noise too. In the end its all transmission lines that have
poor termination.
What people often forget at DC and very low frequencies the MOS/CMOS
input are
essentially open circuits. At high frequencies (pulse rates) its a
capacitor which is
an energy storage device. Changing that voltage across the cap takes
energy and
time and is not a friendly load by any cable/transmission line.
So putting a SD or even a CF at the end of a ribbon or spectra cable
without adequate
grounds (every other wire or a backplane ground) means the field around
those
wires will couple and be the fields around its neighbours and make
itself known in
the most offensive ways.
For those that have forgotten.... those that forget history will relive it.
*Vonada's Engineering Maxims* are a group of pithy observations about
computer engineering
compiled by Don Vonada, an engineer at DEC
<http://gunkies.org/wiki/DEC>, and reproduced in:
* C. Gordon Bell, J. Craig Mudge, John. E. McNamara, "/Computer
Engineering/"
They are:
1. There is no such thing as ground.
2. Digital circuits are made from analog parts.
3. Prototype designs always work.
4. Asserted timing conditions are designed first; unasserted timing
conditions are found later.
5. When all but one wire in a group of wires switch, that one will
switch also.
6. When all but one gate in a module switches, that one will switch also.
7. Every little pico farad has a nano henry all its own.
8. Capacitors convert voltage glitches to current glitches
(conservation of energy).
9. Interconnecting wires are probably transmission lines.
10. Synchronizing circuits may take forever to make a decision.
11. Worse-case tolerances never add - but when they do, they are found
in the best customer's machine.
12. Diagnostics are highly efficient in finding solved problems.
13. Processing systems are only partially tested since it is impractical
to simulate all possible machine states.
14. Murphy's Laws apply 95 percent of the time. The other 5 percent of
the time is a coffee break.
Allison
From: Chuck Guzis
I'll offer a suggestion that if your SD card *must* be a significant
distance from its host
Like I said, this is a pre-prototype; on the production
units, there will be
_no_ cable. The SD socket will be about 1-2" from the FPGA.
From: Dwight Kelvey
this behavior on my PDP-8/e where a 7474 flip flop chip was bad. The
input looked great and the output was "half baked"
There's no chip
at all on the driving end of the line (just that 470K
resistor); we see this with the SD card _unplugged_. And we see the exact
same thing on several lines.
I'm still not clear, from the discussion, how exactly that nice
'square-wave'
interference is happening - could it be capacitative crosstalk? (I'd have
thought capacitative cross-talk would be inverted - driving a positive voltage
on one 'side' of the 'capacitor' would, I would think, induce an
oppposing
voltage on the other. But I'm clearly no EE! :-)
I don't have a full
enough picture of the circuit and circumstances to provide a definitive suggestion but,
some principles:
Yes, you can 'pass' a square wave through a capacitor - if you couldn't then
all the theory behind capacitor-coupled audio amplifiers would be shot.
The condition required to do so is a long resistor - capacitor time constant relative to
the period of the (square) wave:
RC time constant: t(seconds) = R (ohms) * C (farads)
With a high load R, and large enough C, the current in an R-C series circuit is limited
to a tiny level, so it takes a long time for the cap to fully charge.
For as long as the cap is charging there is current flowing through the R and so you see
a voltage drop across the R.
If you reduce the R value or the C value, at some point you would see the square wave
start to distort (the flat top would start to slope down to the right / later in time),
as the capacitor would start to reach full charge within the period of the square wave
and the voltage would start to divide between the C and R.
No, you won't see the inverse polarity, if you drive a + voltage to one side of the
cap it sucks the electrons out of the plate on that side, that attracts electrons into the
other 'load-side' plate. Those electrons are coming from (being drawn away from)
the rest of the load side circuit, here through the R, so you see a + voltage across the R
(current is flowing from GND through R into the C, so the RC-junction side of R is more +
than the GND side of the R).
Your circuit:
It's not clear C-coupling is what's going on here (the wave shape looks pretty
sharp for what I understand of the circuit/layout).
Notably though, C-coupling would remove any DC bias, but David's screen shot
indicates a DC bias on the line.
Is this line currently connected to the FPGA, or is it just the wire and R?
Perhaps the bias is coming from the FPGA, with C-coupling of the wave via the wire.
Or perhaps it's all crosstalk from within the FPGA, 'visible' because of the
high load R.
If the wire and FPGA pin are connected, separate them (reduce the wire circuit to just
the wire and R to GND): see whether the DC bias and/or the square wave disappear.
You could play with reducing the load R value to see what happens to the sig level and
wave shape.
(You've mentioned both 470K and 270K for the R, could make a difference to the
analysis).