Re: gEDA-user: series terminators

2006-09-22 Thread Dave McGuire

On Sep 22, 2006, at 2:16 PM, DJ Delorie wrote:

   Ahh, I'm using the CY7C1049 in some of my stuff.


Did you need terminators?


  Nope.  (eZ80F91 @ 50MHz, 3.3V, nothing else on the bus)

   -Dave

--
Dave McGuire
Cape Coral, FL



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-22 Thread DJ Delorie

>Ahh, I'm using the CY7C1049 in some of my stuff.

Did you need terminators?


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-22 Thread Dave McGuire

On Sep 22, 2006, at 11:13 AM, DJ Delorie wrote:

I don't know what chips you're using,


For completeness, M32C/83 and CY7C1049B


  Ahh, I'm using the CY7C1049 in some of my stuff.  Now I'm as cool as 
DJ. =)


  -Dave

--
Dave McGuire
Cape Coral, FL



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-22 Thread DJ Delorie

> I don't know what chips you're using,

For completeness, M32C/83 and CY7C1049B


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread Evan Lavelle
After all that, I forgot to mention the line length. Rule of thumb: if 
the first reflection gets back to the driver before the driver has 
finished transitioning, then you probably don't have a problem, and you 
don't need termination. In your case, that's 12", or about 1ns. So, if 
your drivers have edge rates of ~1ns or faster, you may have a problem. 
Another rule of thumb: modern CMOS circuits which are designed to go 
'fast-ish' (quick clock->out, so high slew rate drivers) probably have a 
slew rate in the range of 1.5 - 2.5ns. I don't know what chips you're 
using, but you probably don't have a problem.


Evan


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread DJ Delorie

> If you can afford a 4 layer, you can definitely afford a faster scope.

It's not just the cost, it's the justification and size.  I just got a
500MHz logic analyzer that's the size of my hand (Intronix Logicport)
and I have a 32Ms/s parallel-port scope (er, about 10-15MHz) and a Tek
561A (er, about 1MHz these days) with some plugins.

The 4 layer board will go into the furnace, which will easily repay
its cost, and it's slow enough that my existing tools are sufficient.
The existing furnace controller has already paid for itself.

Now, if I start doing more high speed stuff (which I hope happens :),
I'll probably start shopping for a USB-based high speed scope then.  I
don't want to use up a lot of space on a big scope, I have too much
stuff in my office already.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread Darrell Harmon
On Thu, Sep 21, 2006 at 01:48:48PM -0400, DJ Delorie wrote:
> 
> > > Double sided, 0.062.
> > 
> > How quaint.  ;-)
> 
> Yeah, well, it's just going to sit on my desk anyway.  Plus, it's
> panelized with the challenge boards, so cost is an issue.  I was extra
> careful about adding planes to the bottom side, and bypassing all over
> the place.
> 
> The proto-pcb industry is starting to catch up with what hobbiests
> want, but they're still way behind what high-tech boards demand.
> 
> > The board I'm in the middle of bringing up is 6-layer, 0.045.
> 
> The furnace board will be 4 layer 0.062 (it's cheapest).
> 
> Oh, for checking part footprints, I've found the paste layers to be
> most useful, at least for SMD parts.
> 
> > Only if you work with slow parts.  Edge speeds faster than 1ns are
> > fairly common these days.
> 
> Well, I want slower edges ;-)
> 
> (And I can't afford faster tools)
> 
> 
> ___
> geda-user mailing list
> geda-user@moria.seul.org
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

If you can afford a 4 layer, you can definitely afford a faster scope.
I think I have around $100 in my Tek 7903. It is a 500 MHz analog 
mainframe. It is actually 3 dB down at about 800 MHz and triggers to 
1 GHz. It was dead when I bought it (blown pass transistor in the 
power supply, 3 shorted tantalums on the +15V rail), but working ones
sell for around $200. The only bad things about it are that it has some
ICs that are not available and is large and heavy. If one of the Tek
ICs dies, I will just pick up a parts unit. Tek published schematics
then, so repairs are possible.

The 1 GHz 7103 tempts me occasionally. 

-- 
Darrell Harmon
http://dlharmon.com


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread Evan Lavelle

DJ Delorie wrote:

I'm thinking I should design in some series resistors on the address
and data lines for my RAM expansion board (30MHz, about 6" of 8 mil
trace on DS FR4, 5v).  How does one go about calculating an ideal
resistance?  The mcu spec doesn't have a min rise time spec, the ram
chips are 20ns (50MHz) and imply they want a 3ns rise time.

I figure I can put in zero-ohm resistors for now, and experiment with
one of the lines, but I'd rather just come close enough on the first
try ;-)


You could write a book on this but, for starters:

1 - if you have an impedance mismatch on your lines, then there will be 
reflections on it when the line driver switches.


2 - does this matter? Sometimes, sometimes not. If you're driving a 
clock input, you want a clean monotonic signal at the clock pin, and you 
won't get this with reflections going up and down the line. 
Alternatively, if your timing is tight, then you may need to ensure that 
you get a full signal swing at the receiver within the timing budget. 
You may have a problem if, for example, you need the signal to propagate 
several times up and down the line before it reaches the required level 
at the receiver. There are other issues, but probably not important 
here. Early generation DRAMs, for example, sometimes had problems with 
excessive ringing.


3 - You're not driving a clock pin, so how tight is your timing? 
Probably not tight. Is this a synchronous or an async RAM? Do the 
address lines have to set up for a clock edge? Calculate your timing. If 
you've got a few ns spare on your address and data lines, then there's 
no point in impedance matching, since you can tolerate a few reflections 
on the line.


4 - If - and it's probably unlikely - you find that your timing is so 
tight that you can't tolerate reflections, then you need to terminate 
your lines in some way. There are several ways to do this; series 
termination resistors are the simplest. These go at the driver, *not* in 
the middle of the line. The point is to match the output impedance of 
your MCU address drivers to the track impedance on your PCB. Calculate 
your track impedance. There used to be a web-based calculator at 
ultracad.com, but it's not responding at the moment; or try 
eskimo.com/~ultra, but that's not responding either. Yours are probably 
quite high; probably well over 100 Ohms. Now find the output impedance 
of your drivers. This is easier said than done, since it won't be in the 
datasheet. You can calculate it from the I/V curves, but these won't be 
in the datasheet either. As a last resort, you can guess that they're 
probably about 20 Ohms, for both low-going and high-going transitions. 
Your resistor then has to be, in this case, about 100R - 20R = ~80R. 
This ensures a half-amplitude signal gets propagated down the line, 
which will then reflect at the receiver to the full 100%, with no 
further reflections. But you probably don't need to do this anyway.


5 - the data lines are more complex, because they have drivers at both 
ends (unless you have separate data in/data out buses). This is much too 
complex to go into quickly, but you may need to double-terminate for 
best performance. But, in your case, you probably don't need it at all. 
If your timing budget is this tight, use faster components instead.


6 - the RAM chip input rise time spec isn't relevant. They're just 
concerned that there might be oscillation problems if the input ramps 
too slowly.


7 - The important spec on your scopes/analysers is the front-end 
bandwidth. To have any hope of detecting and dealing with "faster" slew 
rates (~2ns and below) you need at least 500MHz bandwidth.


8 - Bottom line for this sort of board and until you get more experience 
- forget it, except when driving clock lines, in which case design the 
track for 50 Ohms, and put in a pad at the driver for a resistor, which 
will probably be about 33R. 50 Ohms requires wide tracks unless you have 
small layer gaps; run the calculator.


Further reading: look up old articles on EDN; these are generally 
pitched at beginner level, but will be good enough for most designs. I 
found http://www.interfacebus.com/Design_Termination.html recently; I 
haven't looked at it in detail, but it looks Ok at first sight.


Evan



___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread DJ Delorie

> > Double sided, 0.062.
> 
> How quaint.  ;-)

Yeah, well, it's just going to sit on my desk anyway.  Plus, it's
panelized with the challenge boards, so cost is an issue.  I was extra
careful about adding planes to the bottom side, and bypassing all over
the place.

The proto-pcb industry is starting to catch up with what hobbiests
want, but they're still way behind what high-tech boards demand.

> The board I'm in the middle of bringing up is 6-layer, 0.045.

The furnace board will be 4 layer 0.062 (it's cheapest).

Oh, for checking part footprints, I've found the paste layers to be
most useful, at least for SMD parts.

> Only if you work with slow parts.  Edge speeds faster than 1ns are
> fairly common these days.

Well, I want slower edges ;-)

(And I can't afford faster tools)


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread ldoolitt
DJ -

On Thu, Sep 21, 2006 at 12:18:46PM -0400, DJ Delorie wrote:
> Double sided, 0.062.

How quaint.  ;-)

The board I'm in the middle of bringing up is 6-layer, 0.045.
I've probably linked to it before:
 http://recycle.lbl.gov/llrf4/
So the distance between a trace and its ground plane is
an order of magnitude smaller than what you have.

And yes, it's laid out with Gnu/PCB.

> I figured that; they're going on the SRAM side of the DIN connector,
> about in the middle of the run.

On the board above, I have some 100-ohm series resistors [*] on
digital traces.  Signalling rate could be as high as 105 MS/s, and
the longest traces are about 4.5 cm.

> I have a 32 Ms/s scope and a 500MHz logic analyzer, neither of which
> is great for this kind of test, but might be close enough.

Only if you work with slow parts.  Edge speeds faster than 1ns are
fairly common these days.

- Larry

[*] On the board photo, look in the center of the board, to
the left of the "big" FPGA.  There is a vertical line of eight
resistor packs, in series with the data pins from the four
high speed ADCs just to their left.


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread DJ Delorie

> 5 Volts?  How quaint.

Yeah, well, that's what the eval board uses.  My furnace controller
uses 5v too, because that's what the LCD panels need.  It throws in a
bunch of issues about level converting, though.

> You didn't give the thickness of the FR4 between the trace and the
> ground plane.

Double sided, 0.062.

> Series resistors for a bidirectional trace go near the middle of
> their length.  For unidirectional traces, place the resistor anywhere
> from the middle to the source end.

I figured that; they're going on the SRAM side of the DIN connector,
about in the middle of the run.

> It takes a good FET probe and a fast 'scope to characterize the
> system well enough to optimize on the bench.

I have a 32 Ms/s scope and a 500MHz logic analyzer, neither of which
is great for this kind of test, but might be close enough.

> Any resistor in the range of 25 to 150 Ohms will damp the ringing.
> Whenever I have this concern, I just put in 100 Ohms, observe that
> it works, and go on to the next chore.

Ok, sounds reasonable.

Thanks!


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


Re: gEDA-user: series terminators

2006-09-21 Thread ldoolitt
DJ -

On Thu, Sep 21, 2006 at 11:47:38AM -0400, DJ Delorie wrote:
> I'm thinking I should design in some series resistors on the address
> and data lines for my RAM expansion board (30MHz, about 6" of 8 mil
> trace on DS FR4, 5v).

5 Volts?  How quaint.

You didn't give the thickness of the FR4 between the trace and the
ground plane.

Series resistors for a bidirectional trace go near the middle of
their length.  For unidirectional traces, place the resistor anywhere
from the middle to the source end.

> How does one go about calculating an ideal
> resistance?  The mcu spec doesn't have a min rise time spec, the ram
> chips are 20ns (50MHz) and imply they want a 3ns rise time.

Think of it this way: you want to charge a parasitic capacitance
(guess 10 pF) with a rise time of 3 ns.  That means you need a
series resistance less than 3.0 ns / 10 pF = 300 Ohms.

> I figure I can put in zero-ohm resistors for now, and experiment with
> one of the lines, but I'd rather just come close enough on the first
> try ;-)

Any resistor in the range of 25 to 150 Ohms will damp the ringing.
It takes a good FET probe and a fast 'scope to characterize the
system well enough to optimize on the bench.  Whenever I have this
concern, I just put in 100 Ohms, observe that it works, and go on
to the next chore.

- Larry


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user


gEDA-user: series terminators

2006-09-21 Thread DJ Delorie

I'm thinking I should design in some series resistors on the address
and data lines for my RAM expansion board (30MHz, about 6" of 8 mil
trace on DS FR4, 5v).  How does one go about calculating an ideal
resistance?  The mcu spec doesn't have a min rise time spec, the ram
chips are 20ns (50MHz) and imply they want a 3ns rise time.

I figure I can put in zero-ohm resistors for now, and experiment with
one of the lines, but I'd rather just come close enough on the first
try ;-)


___
geda-user mailing list
geda-user@moria.seul.org
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user