4
\$\begingroup\$

Apologies for all these questions about SDRAM, but I want to get this next board run right.

I have an LPC1788 processor with an external memory controller I am interfacing with SDRAM. There is no reference design in the user manual of the microcontroller, but I have a development kit I am using as a reference.

For some reason they have pull ups (not termination resistors) on signals such as CLK, CLKE, DQM0-3. Why is this? I was under the impression the microcontroller has internal pull ups for this sort of thing? Are they necessary, or just there out of good practice (is that the same thing)? Should these be places at the source or sink?

Also, what is the capacitor on the CLK line for? Will this not disturb the signal?

enter image description here

I have implemented the termination resistor packs in my own design (currently at 22Ohms although I understand it depends upon the trace impedance).

Many thanks.

\$\endgroup\$
  • \$\begingroup\$ aghh! always take time to read carefully. I thought I was seeing 33 ohms up there, not 33K. @davidKessner is right. \$\endgroup\$ – JustJeff Feb 20 '12 at 3:52
  • \$\begingroup\$ hey James, I'm deleting my erroneous commentary from earlier. You might want to hit delete on your responses to my dumb comments. Not a lot of value-added in leaving this around. \$\endgroup\$ – JustJeff Feb 20 '12 at 3:57
7
\$\begingroup\$

The 33k pullup/down resistors are to make sure the signal is at a valid logic level when those signals are not being actively driven. With some CPU's this can happen at startup, especally if those CPU pins must be configured before they work as an SRAM interface.

They do nothing that a normal "termination resistor" does, as the resistance is way too high. For a termination resistor to work it must be the same value (or thevenin equivalent) as the trace impedance. There is, to my knowledge, no way to make a trace impedance of 33K ohms. Although I could be wrong, I don't think you can make a trace with an impedance higher than the impedance of free space which is about 377 ohms. You will rarely see termination resistors larger than this (or the thevenin equivalent).

The cap on the clock line is a HACK, and I suspect that it's not actually installed on the PCB. Some people do this to compensate for a badly terminated signal or to actually tweak the timing of that signal. IMHO, this is stupid and a properly designed system should never need this kind of kludge. Of course, sometimes the stupidness is inside the chip and you have no alternative but to use something like this.

I am concerned that some of the comments on the question talk about termination resistors in terms that are not even close to correct. (Sorry @JustJeff, it's not personal.) Lack of proper termination causes overshoot, undershoot, ringing, and unwanted reflections. Proper termination does not dampen these things, instead it stops it from happening in the first place. Termination actually prevents the conditions from forming that cause bad signal integrity, not trying to band-aid it later by dampening the bad stuff.

The problem with "dampening" is that there is no distinction between dampening the bad stuff and dampening the signal itself. With proper termination you can get rid of the bad stuff without making the signal itself suffer! Learning exactly what trace impedance is, and how termination can deal with the effects of that, is super important for professional designs and is very useful for the hobbyist. It's beyond the scope of this answer, but suffice it to say that everybody needs to study up! :)

\$\endgroup\$
  • 1
    \$\begingroup\$ Any recommendations where to learn about this stuff, either online, or a book or something? \$\endgroup\$ – John Burton Feb 19 '12 at 19:21
  • 1
    \$\begingroup\$ @JohnBurton amazon.com/High-Speed-Digital-Design-Handbook/dp/0133957241/… It's expensive, but worth every penny! It will save you money in the long run. \$\endgroup\$ – user3624 Feb 19 '12 at 19:24
  • \$\begingroup\$ When I see caps on CMOS clock lines, I almost always wonder if a resistor wouldn't be a better means of achieving the same aim (or perhaps a resistor-cap combination). Every input is bound to have some capacitance, so adding resistance will add some RC delay. Ideally, circuits would be designed so that inputs won't change too close to the clock edge where they're sampled, but many circuits change their outputs on the same edge as they sample their inputs. That can be a good behavior if the output feeds the device that provides the clock, but bad if it feeds another clock slave. \$\endgroup\$ – supercat Feb 19 '12 at 22:10
  • \$\begingroup\$ Answer is exactly what I was looking for. Many thanks. \$\endgroup\$ – James Feb 19 '12 at 22:35
  • 1
    \$\begingroup\$ yo. got to your 2nd paragraph and realized I'd mistaken 33K for 33 ohms. I'm rather sleep deprived lately. \$\endgroup\$ – JustJeff Feb 20 '12 at 3:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.