Resistencias de terminación SDRAM: ¿son necesarias?

Para un proyecto que estoy diseñando, estoy usando una SDRAM IS42s32800 (TSOP) con un microcontrolador 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. Los trazos promedio entre la CPU y la RAM tienen una longitud de 60 mm, siendo el trazo más largo de 97 mm, la línea de reloj de 53 mm de largo y ninguna línea tiene resistencias de terminación montadas. Lo que tengo curiosidad es si es absolutamente necesario o no tener resistencias de terminación en las líneas DRAM. ¿Funcionaría este diseño sin ellos o ni siquiera debería molestarme en probarlo sin las resistencias?

¿Qué dice la hoja de datos?

Respuestas (2)

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

Modelo de línea de transmisión

Con un rastro más largo de 97 mm, creo que probablemente se saldrá con la suya sin ellos (dados los resultados de los cálculos a continuación) Si tiene un paquete de PCB que maneja modelos IBIS y simulación a nivel de placa (por ejemplo, Altium y otros paquetes costosos), simule su configuración y juzgue los necesita de los resultados.

Si no tiene esta capacidad disponible, puede hacer algunos cálculos aproximados usando SPICE.
Tuve un pequeño lío con LTSpice , aquí están los resultados (no dude en corregir las cosas si alguien ve un error)

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 PCB es de 1 oz = 0,035 mm
  • Altura de seguimiento sobre el plano del suelo = 0,8 mm
  • Ancho de trazo = 0,2 mm
  • Longitud de la pista = 97 mm
  • La entrada de datos de RAM es de 10kΩ en paralelo con 5pF (capacitancia de la hoja de datos, resistencia seleccionada para una entrada LVTTL típica ya que no se proporciona nada; la hoja de datos es bastante mala, por ejemplo, ¿¡la corriente de fuga en la página 21 se da como 10A!?)
  • La impedancia del controlador es de 100 Ω (tomada de los valores altos/bajos de salida de la hoja de datos y la corriente -> Vh = Vdd - 0,4 a 4 mA, por lo que 0,4 V/4 mA = 100 Ω)

Usando wCalc (una herramienta de cálculo de línea de transmisión) configurada en modo microstrip y marcando los números, obtenemos:

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

Ahora, si ingresamos estos valores en LTSpice usando el elemento de línea de transmisión con pérdida y simulamos, obtenemos:

línea de banda

Aquí está la simulación del circuito anterior:

Stripline Sim Zdrv = 100 ohmios

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

Solo por interés, supongamos que tuviéramos un controlador con una impedancia de salida de 20 Ω, el resultado sería bastante diferente (incluso a 50 Ω hay un sobreimpulso/insuficiencia de 0,7 V. Tenga en cuenta que esto se debe en parte a la capacitancia de entrada de 5pF que causa el timbre, el sobreimpulso a 2 ns sería menor sin capacitancia [~ 3.7 V], por lo que, como señala Kortuk, verifique los parámetros agrupados también, incluso si no se trata como un TLine; vea el final):

Stripline Sim Zdrv = 20 ohmios

Una regla general es que si el tiempo de demora (tiempo para que la señal viaje desde el controlador hasta 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, otros digamos 1/10, que son más conservadores) Con un retraso de 0.525 ns y un tiempo de subida de 2 ns dando 2/0.525 = 3.8 (<6) tenemos que tratarlo como un TLine. Si aumentamos el tiempo de subida a 4ns -> 4 / 0.525 = 7.61 y hacemos la misma simulación de 20 Ω nuevamente obtenemos:

Línea de banda Zdrv = 20 ohmios Tr = 4ns

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

Entonces, para responder a la pregunta, suponiendo que estoy cerca de los parámetros, entonces es poco probable que omitirlos le cause problemas, especialmente porque elegí 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)
Sin duda, poner una resistencia en serie de 50 Ω en cada línea probablemente no estaría de más.

Modelo de componentes concentrados

Como se señaló anteriormente, incluso si la línea no es una línea de transmisión, aún podemos tener un timbre causado por los parámetros agrupados. La traza L y el receptor C pueden causar mucho timbre si la Q es lo suficientemente alta.
Una regla general es que, en respuesta a una entrada de paso perfecta , 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 de paso es perfecta, pero si el paso de la señal tiene una energía significativa por encima de la frecuencia resonante de LC, habrá un timbre.

Entonces, para nuestro ejemplo de impedancia del controlador de 20 Ω, si solo tratamos la línea como un circuito agrupado, la Q será:

q = L C R s = 62.36 norte H 9.511 pag F 20 Ω = 4.05

(La capacitancia es 5pF de capacitancia de entrada + capacitancia de línea - se ignora la resistencia de línea)

La respuesta a una entrada de paso perfecto será:

V o v mi r s h o o t = 3.3 V mi π ( 4 q 2 ) 1 = 2.23 V

Entonces, el pico de sobreimpulso en el peor de los casos será 3.3V + 2.23V = ~ 5.5V

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

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

Frecuencia de llamada = 1 2 π L C = 1 2 π 62.36 norte H 9.511 pag F = 206 MHz

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

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

Con una frecuencia de codo de exactamente la frecuencia de llamada, el sobreimpulso será aproximadamente la mitad de la entrada de paso perfecta, por lo que a ~1,2 veces la frecuencia de codo probablemente estemos viendo alrededor de 0,7 de la respuesta de paso perfecta:

Entonces 0,7 * 2,23 V = ~1,6 V

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

La solución es reducir el Q a 0,5, lo que corresponde a un L C 0.5 = 162 Ω de resistencia (160 Ω servirá).
Con la resistencia del controlador de 100 Ω de arriba, esto significaría una resistencia en serie de 60 Ω (por lo tanto, "agregar una resistencia en serie de 50 Ω no estaría de más" arriba)

Simulaciones:

agrupado

Simulación de paso perfecto:

Respuesta de paso concentrada

Simulación de tiempo de subida de 2 ns:

Tiempo de subida agrupado de 2 ns

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

Solución concentrada críticamente amortiguada

Podemos ver que agregar la resistencia de 160 Ω produce la respuesta críticamente amortiguada de sobreimpulso de 0 V esperada.

Los cálculos anteriores se basan en reglas generales y no son del todo exactos, pero deberían acercarse lo suficiente en la mayoría de los casos. El excelente libro "Diseño digital de alta velocidad" de Jonhson y Graham es una excelente referencia para este tipo de cálculos y mucho más (lea el capítulo de ejemplo de NEWCO para obtener información similar a la anterior, pero mejor: gran parte de lo anterior se basó en el conocimiento de este libro)

@OliGlaser, en general, en el mundo real, medimos L y C de una microcinta (para un sistema agrupado) o simplemente lo calculamos para obtener una estimación informada de una resistencia para una Q de 0,5 y luego ajustamos ese valor empíricamente ?
Yo diría que depende de su proyecto y herramientas. Si está utilizando herramientas de PCB de gama alta, esto y más se realizarán automáticamente si especifica las restricciones correctas. Si no utiliza herramientas costosas, definitivamente vale la pena ejecutar al menos las estimaciones iniciales para evaluar si podría tener problemas; no toma mucho tiempo y puede evitar muchos problemas más adelante. Si no está seguro, siempre puede hacer cosas como agregar almohadillas para instalar una resistencia de terminación si es necesario (se pueden probar varios valores; empíricamente está bien si funciona)
También tenga en cuenta que no necesita que Q esté en el punto 0.5, por debajo de esto también está bien (es arriba donde comienza el timbre, subamortiguado) 0.5 es solo el valor óptimo (amortiguado críticamente) para el tiempo de subida más rápido sin sobreimpulso. A medida que aumenta R (sobreamortiguado), el tiempo de subida se ralentizará y eventualmente se convertirá en un problema, pero por lo general tendrá algo de margen.

Altera recomienda su uso con algunos tipos de SDRAM en este documento, pero dice que se pueden evitar usando una terminación interna para FPGA y 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 a menudo se dejan de lado. Deberías salirte con la tuya.

Yo tampoco, pero el fabricante de mi placa de desarrollo los usó, así que pensé que también debería hacerlo.
@ user9663 Si va a realizar algún tipo de prueba de emisiones, creo que las resistencias de terminación son una buena idea para evitar que suene. Sin embargo, para ser honesto, tengo muy poca experiencia con SDRAM.