Problema de terminación de bus SPI

He estado trabajando en un proyecto en el que un maestro SPI Linux de OMAP interactúa con 6 periféricos esclavos SPI (5 convertidores A/D y un solo magnetómetro).

Puedo configurar la frecuencia del reloj SPI y he experimentado con 50 kHz, 100 kHz y 1 MHz.

Adjunté un diagrama de cableado/placa que muestra la longitud del maestro SPI y todos los periféricos. La longitud del bus SPI (todas las longitudes de cable) lejos del maestro es de aproximadamente 970 mm para mi caso de experimento.

ingrese la descripción de la imagen aquí

El problema que encontré es que la comunicación con 1 periférico falla a medida que agrego más de los otros periféricos en el bus. Incluso si la comunicación llega al magnetómetro en el otro lado del bus, la comunicación con los convertidores A/D en el otro lado falla hasta que se retira el cabo del arnés del magnetómetro y luego vuelve la sección A/D.

He leído un poco aquí: Consideraciones de terminación de bus SPI y aquí: Comunicación de placa a placa de corta distancia

donde se recomienda colocar un RC LPF lo más cerca posible de cualquier nodo de conducción, por lo que SCLK y MOSI en el lado maestro y cada una de mis señales 6x MISO/SOMI. He visto un enfoque similar hecho para USB con red RC 47pF/27R. Mi intención es probar esto en mi circuito en un esfuerzo por reducir la transición de borde rápido ~ 100 nseg.

¿Es este el procedimiento correcto que estoy siguiendo aquí al agregar un RC LPF? Esto parece realmente inestable, ¿hay una mejor práctica? Vi una nota de la aplicación de TI en la que hablan sobre la extensión de SPI para distancias de bus más largas, ¿es esta una solución adecuada aquí o mi problema es simplemente uno de los armónicos de alta frecuencia de la transición de borde de alta velocidad? http://www.ti.com/lit/an/slyt441/slyt441.pdf

gracias

Una medición CLK/MISO limpia del magnetómetro

Medición del tiempo de transición del reloj de la señal CLK

¿Esta línea MISO (canal n. ° 1) muestra reflejos?  Los niveles no se ven digitales con la caja de la escalera, son estos reflejos

¿Tiene la capacidad de agregar resistencias en serie y cambiar el cableado?
Hola efox29, si pero estará un poco sucio. Mi maestro SPI está en un SOM montado en mi placa hija. Mi intención es cortar el rastro para SCK y MOSI y montar un RC 0603/0805 de 330 ohm/47pF para cada uno usando epoxi/pegamento y hacer algo similar en las placas A/D y magnetómetro para MISO. Intentaré hacer que el trozo de GND esté lo más cerca posible del pad o plano de GND. Esperando esto hasta que escuche más, pero planeo intentarlo mañana. Sin embargo, no tengo la capacidad de cambiar SPI en una cadena de margarita ni nada. De todos modos, no serviría de mucho, las tablas deben estar en extremos opuestos.
¿Cómo es su sistema con un reloj más lento como 50Khz? ¿Cuál es el microcontrolador que estás usando?
Sugeriría comenzar con la línea SCK primero antes de agregar Rs y Cs a las otras líneas. Después de todo, los bordes solo importan en la línea del reloj, las otras líneas serán más tolerantes a los reflejos.
Y con este tipo de problema, el problema es la velocidad de respuesta del borde, no la frecuencia del reloj. Si ve el mismo problema independientemente de la frecuencia del reloj, entonces los bordes rápidos son el problema y deben reducirse.
Agradezco la ayuda de Alex y Efox29. Como mencionó Alex, el problema era la velocidad de respuesta del borde (100 nseg). El problema observado fue independiente de la frecuencia del reloj SPI. Terminé teniendo que poner un RC LPF en las líneas SCLK y MOSI para que funcionara. Terminé usando un filtro RC 330R/47pF que tiene -3dB de aproximadamente 9,5 MHz. Lo suficientemente interesante, solo funcionó cuando RC LPF se colocó en ambas líneas SCLK y MOSI.

Respuestas (1)

Es difícil responder esto sin todos los detalles, pero aquí hay una mirada genérica al problema que creo que también puede ser el tipo de respuesta más útil para este sitio.

Las redes de múltiples nodos siempre deben simularse. Son tan difíciles de predecir. Y tomó alrededor de 3 minutos ver que su diseño tal vez no era óptimo.

Aquí está la configuración de simulación para el reloj desde el maestro hasta todos los dispositivos esclavos (los valores son solo estimaciones aproximadas, como sería el caso si hiciera esto antes de construir cualquier cosa):

ingrese la descripción de la imagen aquí

Y el gráfico de simulación resultante (ignoramos qué es qué, unidades, etc., ya que obviamente no vale la pena construirlo):

ingrese la descripción de la imagen aquí

La primera idea que viene a la mente es una conexión en cadena de todas las entradas y una terminación en paralelo simple. Un esquema de sobrevuelo si quieres. Esto se ve así en la configuración de la simulación:

ingrese la descripción de la imagen aquí

Y la trama de resultados se ve mucho mejor:

ingrese la descripción de la imagen aquí

Si puede vivir con el mayor consumo de energía de la terminación thevenin y la oscilación de voltaje reducida en las entradas de reloj de los diversos dispositivos y... (solo usted conoce las limitaciones reales)... entonces alguna variación de esto realmente puede valer la pena edificio.

Hay otras soluciones que funcionarían, pero la clave es comprender que las redes de múltiples nodos no son fáciles de predecir. Los 5 minutos de simulación aquí antes de construir algo pueden ahorrar mucho tiempo más adelante. Desafortunadamente, este tipo de simuladores no son baratos.

Estoy usando Cadence SigXplorer aquí. Se aplica el descargo de responsabilidad habitual: enseño clases sobre integridad de la señal y, a menudo, tengo licencias de software patrocinadoras de Cadence o Mentor para esas clases.

¿Qué software estás usando para simular líneas de transmisión?
@efox29 Cadence SigXplorer y Mentor Hyperlynx.
@nickishere (OP) ¿Respondió esto a su pregunta?
Hola Rolf, gracias por tomarte el tiempo de simular este circuito, realmente lo aprecio. Tendré que buscar en Cadence SigXplorer y definitivamente. busque una herramienta como esta la próxima vez que me acerque a este autobús grande. Estoy marcando su respuesta como correcta, ya que es la más detallada y pertinente. Sin embargo, debo decir que terminé usando la topología empíricamente, así que no puedo decir que funcione.