23 votos

Resistencias de terminación SDRAM: ¿Son necesarias?

Para un proyecto que estoy diseñando, estoy utilizando un IS42s32800 (TSOP) SDRAM con un LPC1788 (QFP). En la PCB tengo 4 capas con un plano de tierra justo debajo de la capa de señal superior y un plano VDD justo encima de la capa de señal inferior. Las trazas medias entre la CPU y la RAM son de 60 mm de largo siendo la traza más larga de 97 mm, la línea de reloj de 53 mm de largo y ninguna línea tiene resistencias de terminación montadas. Tengo curiosidad por saber si es absolutamente necesario o no tener resistencias de terminación en las líneas de la DRAM. ¿Funcionaría este diseño sin ellas o debería ni siquiera molestarme en intentarlo sin las resistencias?

0 votos

¿Qué dice la ficha técnica?

0 votos

2 votos

37voto

SandeepJ Puntos 1339

Si la frecuencia/tiempo de subida y la distancia son lo suficientemente altas como para causar problemas, entonces sí, necesitas terminación.

Modelo de línea de transmisión

Si tienes un paquete de PCB que maneje modelos IBIS y simulación a nivel de placa (por ejemplo, Altium y otros paquetes caros), entonces simula tu configuración y juzga si los necesitas a partir de los resultados.

Si no dispone de esta capacidad, puede realizar algunos cálculos aproximados con SPICE.
Tuve un pequeño lío con LTSpice Aquí están los resultados (si alguien ve algún error, puede corregirlo)

Si asumimos:

  • El tiempo de subida de la señal de entrada de la RAM es de unos 2 ns.
  • PCB es FR4 con un Er o ~4.1
  • El grosor del cobre de la placa de circuito impreso es de 1 onza = 0,035 mm.
  • Altura de la traza sobre el plano del suelo = 0,8 mm
  • Anchura del trazo = 0,2 mm
  • Longitud de trazado = 97 mm
  • La entrada de datos RAM es de 10kΩ en paralelo con 5pF (capacitancia de la hoja de datos, resistencia elegida para una entrada LVTTL típica ya que no se da nada - la hoja de datos es bastante mala, por ejemplo la corriente de fuga en la p.21 se da como 10A!?)
  • Impedancia del conductor es 100Ω (tomado de hoja de datos de salida de alta / baja valores y corriente -> Vh = Vdd - 0.4 @ 4mA, por lo que 0.4V / 4mA = 100Ω)

Utilizando wCalc (una herramienta de cálculo de líneas de transmisión) en modo microstrip y haciendo los números, obtenemos:

  • Zo = 177,6Ω
  • L = 642,9 pH/mm
  • C = 0,0465 pF/mm
  • R = 34,46 mΩ/mm
  • Retraso = 530,4 ps

Ahora si introducimos estos valores en LTSpice utilizando el elemento de línea de transmisión con pérdidas y simulamos obtenemos:

Stripline

He aquí la simulación del circuito anterior:

Stripline Sim Zdrv = 100 ohm

A partir de este resultado, podemos ver que con una impedancia de salida de 100 Ω no deberíamos esperar ningún problema.

Sólo por interés, digamos que tuviéramos un driver con una impedancia de salida de 20 Ω, el resultado sería muy diferente (incluso a 50 Ω hay 0,7 V de sobreimpulso/desimpulso. Tenga en cuenta que esto se debe en parte a la capacitancia de entrada 5pF causando timbre, el sobreimpulso a 2ns sería menor sin capacitancia [~ 3,7V], por lo que como Kortuk señala comprobar parámetros agrupados, así incluso si no se trata como un TLine - ver final):

Stripline Sim Zdrv = 20 ohm

Una regla general es que si el tiempo de retardo (tiempo para que la señal viaje desde el conductor a la entrada) es más de 1/6 del tiempo de subida, entonces debemos tratar la traza como una línea de transmisión (tenga en cuenta que algunos dicen 1/8, algunos dicen 1/10, que son más conservadores) Con un retardo de 0,525 ns y un tiempo de subida de 2ns dando 2 / 0,525 = 3,8 (<6) tenemos que tratarlo como una TLine. Si aumentamos el tiempo de subida a 4ns -> 4 / 0,525 = 7,61 y volvemos a hacer la misma simulación de 20 Ω obtenemos:

Stripline Zdrv = 20 ohm Tr = 4ns

Podemos ver que el timbre es mucho menor, por lo que probablemente no haya que tomar ninguna medida.

Así que para responder a la pregunta, suponiendo que estoy cerca con los parámetros, entonces es poco probable que dejarlos fuera le causará problemas - sobre todo porque he elegido un tiempo de subida / bajada de 2ns, que es más rápido que la hoja de datos LPC1788 (p.88 Tr min = 3 ns, Tfall min = 2,5 ns)
Para estar seguros, poner una resistencia en serie de 50 Ω en cada línea probablemente no haría daño.

Modelo de componentes agrupados

Como ya se ha indicado, aunque la línea no sea de transmisión, podemos tener timbres causados por los parámetros lumped. La traza L y el receptor C pueden causar mucho timbre si el Q es lo suficientemente alto.
Una regla general es que en respuesta a un perfecto paso de entrada, un Q de 0,5 o menos no sonará, un Q de 1 tendrá un 16% de sobreimpulso y un Q de 2 un 44% de sobreimpulso.
En la práctica, ninguna entrada escalonada es perfecta, pero si la señal escalonada tiene una energía significativa por encima de la frecuencia de resonancia LC, entonces habrá timbre.

Así que para nuestro ejemplo de impedancia de conductor de 20 Ω, si simplemente tratamos la línea como un circuito lumped, el Q será:

\$ Q = \dfrac{\sqrt{\dfrac{L}{C}}}{Rs} = \dfrac{\sqrt{\dfrac{62.36 nH}{9.511 pF}}}{20 \Omega} = 4.05 \$

(La capacitancia es 5pF capacitancia de entrada + capacitancia de línea - resistencia de línea ignorada)

La respuesta a una entrada de paso perfecto será:

\$ V_{overshoot} = 3.3 V \cdot e^{-\dfrac{\pi}{\sqrt{ (4 \cdot Q^2) - 1}} } = 2.23 V \$

En el peor de los casos, el pico de sobreimpulso será de 3,3 V + 2,23 V = ~5,5 V.

Para un tiempo de subida de 2 ns, necesitamos calcular la frecuencia resonante LC y la energía espectral por encima de ésta debido al tiempo de subida:

Frecuencia de llamada = 1 / (2PI * sqrt(LC)) = 1 / (2PI * sqrt(62.36nH * 9.511pF)) = 206MHz

Frecuencia de llamada = \$ \dfrac{1}{2 \pi \cdot \sqrt{LC}} = \dfrac{1}{2 \pi \cdot \sqrt{62.36nH \cdot 9.511pF}} \$ = 206 MHz

Un tiempo de subida de 2 ns tiene una energía significativa por debajo de la (regla empírica) frecuencia de "rodilla" , que es:

0,5 / Tr = 0,5 / 2 ns = 250 MHz, que está por encima de la frecuencia de timbre calculada anteriormente.

Con una frecuencia de curva de exactamente la frecuencia de timbre, el sobreimpulso será aproximadamente la mitad de la entrada escalonada perfecta, por lo que a ~1,2 veces la frecuencia de curva probablemente estemos ante un 0,7 de la respuesta escalonada perfecta:

Así que 0,7 * 2,23 V = ~1,6 V

Pico de sobreimpulso estimado con un tiempo de subida de 2 ns = 3,3 V + 1,6 V = 4,9 V

La solución consiste en reducir el Q a 0,5, lo que corresponde a un \$\dfrac{\sqrt{\dfrac{L}{C}}}{0.5} \$ = 162 Ω de resistencia (basta con 160 Ω).
Con la resistencia del conductor de 100 Ω de arriba, esto significaría una resistencia en serie de 60 Ω (de ahí el "añadir una resistencia en serie de 50 Ω no estaría de más" de arriba)

Simulaciones:

Lumped

Simulación de paso perfecto:

Lumped Step Response

Simulación de tiempo de riesgo de 2 ns:

Lumped 2ns risetime

Solución (con 100 Ω de Rdrv + 60 Ω de resistencia en serie = 160 Ω totales de R1 añadidos):

Lumped critically damped solution

Podemos ver que añadir la resistencia de 160 Ω produce el sobreimpulso de 0 V respuesta críticamente amortiguada esperada.

Los cálculos anteriores se basan en reglas empíricas y no son totalmente exactos, pero deberían aproximarse lo suficiente en la mayoría de los casos. El excelente libro "High Speed Digital Design" por Jonhson y Graham es una excelente referencia para este tipo de cálculos y mucho más (leer el capítulo de ejemplo NEWCO para similares a los anteriores, pero mejor - gran parte de lo anterior se basa en el conocimiento de este libro)

0 votos

@OliGlaser, en general, en el mundo real, ¿medimos L y C de un microstrip (para un sistema lumped) o simplemente lo calculamos para obtener una suposición educada para una resistencia para un Q de 0,5 y luego ajustamos ese valor empíricamente?

1 votos

Yo diría que depende de tu proyecto y de las herramientas. Si utilizas herramientas de PCB de gama alta, esto y mucho más se hará automáticamente si especificas las restricciones adecuadas. Si no utilizas herramientas caras, merece la pena que al menos realices las estimaciones iniciales para sopesar si puedes tener problemas; no lleva mucho tiempo y puede evitarte muchos problemas más adelante. Si no está seguro, siempre puede hacer cosas como añadir almohadillas para colocar una resistencia de terminación si es necesario (se pueden probar varios valores, empíricamente está bien si funciona).

0 votos

También tenga en cuenta que no es necesario que el Q sea exactamente 0,5, por debajo de esto está bien también (es por encima de donde comienza el zumbido - underdamped) 0,5 es sólo el valor óptimo (críticamente amortiguado) para el tiempo de subida más rápido sin sobreimpulso. A medida que aumente R (sobreamortiguado) el tiempo de subida se ralentizará, y eventualmente se convertirá en un problema, pero por lo general tendrá cierto margen.

7voto

Mark Biek Puntos 41769

Altera recomienda su uso con algunos tipos de SDRAM en este pero dice que pueden evitarse utilizando terminación interna para la FPGA y la SDRAM, si se ofrece. Ninguna de las placas FPGA que tengo con SDRAM tiene terminación externa en las conexiones y los dispositivos no tienen terminación interna. Parece que deberían usarse, idealmente, pero en la práctica suelen omitirse. Deberías salirte con la tuya.

0 votos

Yo tampoco, pero el fabricante de mi placa de desarrollo los utiliza, así que pensé que yo también debería hacerlo.

1 votos

@user9663 Si vas a hacer algún tipo de prueba de emisiones yo pensaría que las resistencias de terminación son una buena idea para evitar el timbre. Para ser honesto, sin embargo, tengo muy poca experiencia con SDRAM.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X