Problema de terminación de bus SPI

10

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

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

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 he encontrado es que la comunicación con 1 periférico falla a medida que agrego más periféricos en el bus. Incluso si la comunicación llega al magnetómetro en el lado opuesto del bus, la comunicación con los convertidores A / D en el otro lado falla hasta que se retire el trozo del arnés del magnetómetro y luego regrese la sección A / D.

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

donde se recomienda poner un RC LPF tan cerca de cualquier nodo de conducción, de modo que SCLK y MOSI en el lado maestro y cada una de mis 6 señales MISO / SOMI. He visto un enfoque similar para USB con red 47pF / 27R RC. Mi intención es probar esto en mi circuito en un esfuerzo por reducir la transición rápida del borde afilado ~ 100nsec edge.

¿Es este el procedimiento correcto que estoy siguiendo aquí para agregar un RC LPF? Esto parece realmente inestable, ¿hay mejores prácticas? Vi una nota de la aplicación de TI donde hablan sobre extender el 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 Nick

Una medición CLK / MISO limpia desde el magnetómetro

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

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

Shraken
fuente
¿Tiene la capacidad de agregar resistencias en serie y cambiar el cableado?
efox29
Hola efox29, sí, 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 de 330 ohmios / 47pF 0603/0805 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 plano o plano de GND que pueda tener. 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 haría mucho bien, las tablas necesitan estar en extremos opuestos.
Shraken
¿Cómo está su sistema con un reloj más lento como 50Khz? ¿Cuál es el microcontrolador que está utilizando?
efox29
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.
alex.forencich
2
Y con este tipo de problema, el problema es la velocidad de rotación 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.
alex.forencich

Respuestas:

5

Es difícil responder esto sin todos los detalles, pero aquí hay una visión genérica del 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 muy difíciles de predecir. Y tardó unos 3 minutos en ver que su diseño tal vez no era óptimo.

Aquí está la configuración de simulación para el reloj del maestro a 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 la trama de simulación resultante (ignoramos qué es qué, unidades, etc., ya que obviamente no vale la pena construir):

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 paralela simple. Un esquema de vuelo si quieres. Esto se ve así en la configuración de 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 de thevenin y la reducción de la oscilación de voltaje en las entradas de reloj de los diversos dispositivos y ... (solo usted conoce las restricciones reales) ... entonces puede ser útil alguna variación de esto. 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 tarde. Lamentablemente, este tipo de simuladores no son baratos.

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

Rolf Ostergaard
fuente
¿Qué software estás usando para simular líneas de transmisión?
efox29
@ efox29 Cadence SigXplorer y Mentor Hyperlynx.
Rolf Ostergaard
@nickishere (OP) ¿Respondió esto tu pregunta?
Rolf Ostergaard
Hola Rolf, gracias por tomarte el tiempo de simular este circuito, realmente lo aprecio. Tendré que buscar en Cadence SigXplorer y def. busque una herramienta como esta la próxima vez que me acerque a este un 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, por lo que no puedo decir que funcione.
Shraken