Cálculo de resistencias en serie para líneas I2C/SPI para reducir EMI y timbre

¿Cómo determina si se necesita una resistencia en serie para las líneas de E/S y qué valor se necesita? ¿Dónde debe colocarse la resistencia en serie?

Mi suposición es que la resistencia debe colocarse lo más cerca posible de la fuente (en el caso de CLK y MOSI, debe colocarse cerca del maestro, etc.). ¿Hay alguna manera de calcular la resistencia en serie necesaria? ¿La colocación de resistencias en serie en el I2C afectaría el rendimiento ya que I2C se basa en pull-ups?

Mi suposición es que lo siguiente podría ser importante:

  1. Fuerza de la unidad de salida/resistencia de salida del IC que controla esa línea en particular.
  2. Longitud de traza, impedancia, inductancia.
  3. Caminos de retorno.

¿Hay alguna fórmula?

Si mantenemos las líneas de datos lo suficientemente cortas, ¿todavía se necesitan resistencias? Si no, ¿qué tan corto es corto?

Nunca he necesitado usar la terminación en serie en I2C y diría que no se recomienda. Los controladores I2C normales tienen una velocidad de respuesta limitada y los receptores tienen filtros de rechazo de ruido. Una resistencia en serie podría comprometer los márgenes de nivel lógico, ya que hay corriente que fluye intencionalmente hacia las resistencias de elevación cuando están en estado bajo.
Estoy de acuerdo con @KevinWhite, pero si REALMENTE los quisiera, usaría perlas de ferrita para I2C debido a todas las limitaciones de velocidad de respuesta que ya tiene I2C. No resistencias. También es más fácil de dimensionar, ya que solo mide la frecuencia del timbre y elige una cuenta que alcanza su punto máximo en esa frecuencia.

Respuestas (2)

Muchas preguntas. Sí, cuando la señal no sea bidireccional, coloque la resistencia cerca de la fuente. También debe colocar un condensador cerca de la carga. Puede comenzar con el condensador sin cargar, ya que probablemente no será necesario.

Por lo general, el valor de la resistencia se determina experimentalmente. Los valores típicos para relojes de baja velocidad son 0-56 ohmios. Los relojes de mayor velocidad utilizan valores más bajos (0-33). El factor limitante es que la resistencia en serie disminuirá el tiempo de subida como se ve en la carga. Si la resistencia es demasiado grande, la sincronización se desactivará o, en el caso de un reloj, la señal nunca alcanzará la amplitud total y el sistema dejará de funcionar de manera confiable.

Tenga en cuenta que a veces puede usar una perla de ferrita en lugar de una resistencia.

Para I2C, siempre que la resistencia en serie sea mucho más pequeña que el pullup, no debería tener demasiado efecto. Para I2C y SPI, debe comenzar con resistencias en serie de 0 ohmios y solo aumentar el valor si es necesario.

En general, controlar la potencia de la unidad mediante registros internos es una forma mucho mejor de hacerlo, porque el control interno de la potencia de la unidad del circuito activo ofrece una mayor reducción de las emisiones con una menor amenaza para la integridad de la señal.

No existe una fórmula, pero la simulación podría ser útil para determinar los límites de una buena integridad de la señal.

La longitud de la traza y la impedancia generalmente no importan demasiado para I2C y SPI si las señales no salen de la PCB y si su PCB no es inusualmente grande.

La ruta de retorno es muy importante para todas las señales de reloj. El mejor escenario es enrutar las trazas del reloj sobre un plano sólido. No cruce los límites de división del plano o, si lo hace, conecte la división con un pequeño capacitor para proporcionar una ruta de baja impedancia para la corriente de retorno. Si el avión no es GND, debe haber un capacitor en la fuente y cargar desde el avión a GND para proporcionar una ruta de retorno de baja impedancia. (Por lo general, ya hay un capacitor de derivación en ambos extremos, por lo que la mayoría de las veces no necesita preocuparse por agregar un capacitor solo para la corriente de retorno de la señal del reloj).

I2C rara vez causa problemas por sí mismo. El reloj SPI tiene cierto potencial para causar emisiones radiadas, especialmente si lo ejecuta fuera de la placa en un cable.

Recomendaría usar el manual de usuario del bus I2C de NXP (originalmente Phillips). Aquí: https://www.nxp.com/docs/en/user-guide/UM10204.pdf Las resistencias en serie se analizan, por ejemplo, en las páginas 57 y 58. Su máx. el valor depende del voltaje de pull-up elegido, las resistencias de pull-up elegidas (corriente), la capacitancia del bus, etc. (También hay gráficos para ayudar con los valores de las resistencias en serie y pull-up). El valor de la resistencia en serie puede ser un compromiso de la velocidad del bus frente a la supresión de EMI.