Re: gEDA-user: series terminators
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
>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
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
> 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
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
> 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
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
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
> > 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
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
> 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
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
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