Resistencia serial para bus SPI (33 ohms, 50 ohms....)

Tengo una pregunta sobre la comunicación SPI. Aprendí que debíamos colocar una resistencia serial de 33 o 50 ohms en las líneas MOSI/MISO para la adaptación, y overshot. Mi pregunta es ¿cómo podríamos encontrar estos valores (33 o 50 ohmios)?

Quiero calcularlo. Tengo un poco de conocimiento en línea de transmisión, pero nunca veo la prueba.

¿Podrías decir cómo encontrarlo?

Creo que esto depende mucho de la velocidad a la que estés corriendo. También sospecho que si necesitara hacerlo en MOSI y MISO, también lo necesitaría en SCLK. No puedo decir que sea algo que alguna vez tuve que hacer, pero nunca he usado un bus SPI a 50 MHz.
Sí tienes razón. En SCLK también. Me olvidé
Como nota al margen, no vi que otros lo mencionaran. Debe colocar la resistencia en serie lo más cerca posible de la fuente de señal . ¡No en medio del conductor y no cerca del receptor!

Respuestas (2)

Propuestas

Las propuestas como poner 100nF en el VCC o poner 33 ohmios en la línea de comunicación en su mayoría no se basan en una comprensión básica de lo que realmente está sucediendo. Esa es principalmente la razón por la que la "lección" te ayudó y básicamente no aprendiste nada.

Reflexión, recorte de impedancia

Poner una resistencia en serie o en paralelo afecta la impedancia que ven los puntos finales (su SPI-Master y SPI-Slave) . Esa resistencia depende mucho del entorno, como la impedancia de onda en la PCB y la impedancia de salida/entrada. Si la impedancia no coincide, aparecerán algunos efectos desagradables en su conexión (reflexión, sobredisparo).

Pero normalmente una conexión SPI es casi CC, ya que la velocidad del bus está en el MHz más bajo.

Debido a que el bus SPI contiene pulsos para datos y reloj, estos tienen bordes afilados que causan frecuencias incluso por encima de la velocidad de su reloj.

(Eche un vistazo a: https://en.wikipedia.org/wiki/Square_wave#Fourier_analysis )

Los bordes afilados conducen a tiempos de subida cortos que conducen a frecuencias altas que causan los problemas mencionados anteriormente.

Para una regla general:

No le importan esos problemas (de nivel superior) cuando la longitud del bus SPI es menor que la longitud crítica:

yo C r i t 3 C metro t r i s mi

[tiempo de subida en nanosegundos]

Para volver a tu pregunta

Al colocar una resistencia en una conexión SPI típica, no necesita preocuparse por la impedancia de onda, pero debe deshacerse de los transitorios provenientes de los bordes afilados y la resistencia ayuda a suavizarlos.

El maestro SPI debe cargar la capacitancia de entrada en los receptores y con una impedancia más alta en las líneas de bus, se obtiene una curva de carga. Es como un filtro de paso bajo RC, proporciona la resistencia.

Ahora bien, ¿qué R elegir?

Para seleccionar la resistencia correcta, mire la capacitancia de su bus. Si no puede obtenerlo de las hojas de datos, debe medir su bus SPI. Lo que desea es al menos un nivel de señal estable en la línea de datos en el flanco ascendente (o flanco descendente [dependiendo de su modo SPI]) del reloj. Casi todos los circuitos integrados con interfaz SPI especifican el tiempo máximo de subida del reloj. Por lo tanto, puede "recortar" su configuración cerca de ese nivel.

Para eso, comenzar con 33 ohmios es un buen punto de partida.

Mi intención era decirte lo que sucede en la línea, cuando le pongo una resistencia.

Re: " Le importa [...] cuando la longitud del bus SPI es menor que la longitud crítica " ¿No debería ser eso lo que no le importa con el bus SPI corto, ya que generalmente no necesita ser tratado? como una línea de transmisión en ese caso?
Soy interesante en eso, porque generalmente pongo 100 nF en VCC ... Y estoy tratando de saber por qué estos valores. ¿De dónde sacaste la longitud crítica? Si tengo 100 ns como tiempo máximo de subida, ¿cómo puedo elegir mi resistencia?
100nF han sido los primeros condensadores cerámicos adecuados del mercado. De ahí viene. En nuestras aplicaciones, la mayor parte del tiempo usamos cerámicas de 1 µF, porque son económicas, tienen una esr baja y pueden suministrar picos de corriente para los componentes lógicos. Tau es R*C en un paso bajo RC simple. El tiempo de subida es de aproximadamente 2,2 veces Tau. Espero que ayude
Estaba preguntando por el 2.2*tau. Viene de V(t)=V0(1-exp(-t/tau)). Del 10% al 90% de tiempo de subida, tenemos ln(0.9)-ln(0.1) = 2.197 ? tr = 2.2 * RC con R, el valor que estoy buscando, la capacitancia de salida y tr el reloj de tiempo de subida máxima.
C la capacidad total
¿Cuándo se supone que debo ver esta capacidad general? Si hay una comunicación entre un maestro y un esclavo, ¿agregaré la capacitancia de salida del maestro + la capacitancia de entrada del esclavo?

La idea general es que el bus tiene una impedancia característica particular, normalmente en el rango de 50-70 Ω, pero la impedancia de salida del controlador suele ser mucho más baja, más como 15-30 Ω.

La resistencia en serie se selecciona para que la impedancia total de la fuente coincida con la del bus a fin de eliminar los reflejos en ese extremo.

Dado que con frecuencia no conoce la impedancia con mucha precisión, es posible que se requiera un poco de prueba y error para encontrar el mejor valor de terminación.

Entonces, si no me equivoco: Z_line = 50-70Ω Z_Output = 15-30Ω. Z_R_agregado =50-70Ω - 15-30Ω. Z_R_added =55-20Ω ¿Verdad?