Conexiones de bus SPI: ¿bucle o no bucle?

9

Tengo una pregunta sobre la conexión física de un bus SPI.

Tengo un maestro SPI (un dispositivo PIC32) y varios esclavos (en este caso, dispositivos PIC16). Solo escribo a los esclavos, y el protocolo se encarga de quién hace qué y cuándo, por lo que no hay señales MISO o SS de las que preocuparse y solo estoy paralelando las líneas de datos y reloj a todos los esclavos. La longitud total del bus no es más que un par de pies (digamos 60 cm) y estoy ejecutando el SCK a 8MHz.

Ahora, la ubicación física de los dispositivos esclavos (que en realidad son nodos de interfaz en otras placas) es tal que el bus SPI regresa directamente al maestro para que sea posible conectar ambos extremos de cada bucle a MOSI y SCK respectivamente.

El siguiente diagrama muestra lo que quiero decir, estoy hablando de las conexiones de puntos rojos, y la pregunta es: ¿es bueno hacer esto o no?

Bus SPI

Tengo poder y tierra haciendo un viaje similar, y esto es obviamente, y demostrablemente, útil porque minimiza la caída de voltaje causada por los esclavos. Sin embargo, no tengo idea de si es bueno o malo hacer lo mismo con estas líneas de señal. ¿Debería permitir algún tipo de terminación, resistencias a tierra (?), O tal vez resistencias en serie para suprimir los reflejos, o qué?

Lo probé con y sin conectar los puntos, por así decirlo, y no hay diferencias funcionales ni cambios que pueda ver en el alcance, pero tal vez si fuera un poco más largo de 60 cm o un poco más rápido que 8Mhz, Tendria un problema Así que estoy buscando consejos sobre qué hacer para evitar problemas si algo cambia.

Aunque esta pregunta me preocupa especialmente para un bus SPI de 60 cm a 8 MHz, ¿existen principios generales para otras situaciones? ¿Quizás los pull-ups en un bus I2c deberían colocarse de manera diferente?

Cualquier enlace a material de lectura adecuado también sería bienvenido: no he encontrado nada que cubra esta pregunta específica.

Roger Rowland
fuente
No estoy muy seguro de qué problema estás tratando de resolver con esa conexión
PlasmaHH
@PlasmaHH Bueno, esa es realmente mi pregunta: no tengo ningún problema que resolver, pero tengo esa opción. Sé que ayuda con las líneas eléctricas, no sé si ayuda con las líneas de señal. ¿Es una pregunta estúpida? Tal vez estoy pensando demasiado.
Roger Rowland
Yo agregaría que idealmente, una PCB de 4 capas y planos Vdd y Vss dedicados serían una buena idea aquí por varias razones, junto con tapas de derivación dedicadas muy cerca de cada dispositivo.
rdtsc
1
En mi opinión, haría la conexión que propusiste en rojo y eliminaría la conexión del esclavo 3 al esclavo 4.
lucas92

Respuestas:

9

Loop de vuelta? NO. Si la línea es lo suficientemente larga como para necesitar una terminación (más larga que la anterior * c / 10 más o menos), entonces hágala lo suficientemente fuerte como para terminarla correctamente y combine la línea y la terminación razonablemente bien. Si la línea es lo suficientemente corta como para no necesitar terminación, entonces no necesitará la conductividad 'extra' que parece estar buscando con la conexión en bucle.

¿Una resistencia en serie? NO. Ese estilo de terminación de origen-final solo funciona para un receptor de punto único al final de la línea. En puntos anteriores de la línea, obtienes la peor forma de onda posible para tus receptores, que es un paso a la mitad del voltaje, seguido de una pausa, seguido de otro paso al voltaje completo.

Neil_UK
fuente
Ok, gracias. ¿Puedes explicar a qué te refieres con "conducir con suficiente fuerza" ? ¿Te refieres no directamente desde el PIC sino a través de MOSFET o algo así? Además, para "terminarlo correctamente" , ¿quiere decir resistencias a tierra? Entiendo que el tiempo de aumento de punto en lugar de la frecuencia de reloj determina la necesidad de terminación, ¿puede mostrar el cálculo completo de la regla general? ¿Tiempo de subida en qué unidades? ¿Qué es c/10?
Roger Rowland
@RogerRowland 'lo suficientemente fuerte' para que desarrolle un buen nivel lógico en la carga de la terminación. Una salida de uC puede ser lo suficientemente fuerte, puede que no, depende de la terminación y la fuerza de su unidad. Use un búfer, o dos en paralelo si no tiene suficiente corriente de disco. 'Correctamente' significa impedancia resistiva de derivación. Ya sea que esté conectado a tierra, a un riel medio o acoplado a CA, depende del sistema. Si alguna vez tiene 3 estados del controlador, entonces debe estar conectado a tierra para mantener niveles lógicos válidos. De lo contrario, la terminación en el carril medio carga menos al conductor.
Neil_UK
@RogerRowland tiempo de subida en segundos, c velocidad de la luz en m / segundo, por lo que el tiempo de vida * c en metros, / 10 es un poco ondulado para 'una fracción insignificante del tiempo de vida presente simulataneosamente en la línea de señal'
Neil_UK
Gracias de nuevo Neil, ¡esto es realmente útil! Creo que me beneficiaría al realizar un poco de experimentación para asegurarme de que lo que ha dicho se hunde, tal vez un fin de semana lluvioso será bien aprovechado.
Roger Rowland
3

El problema que veo con la topología de bucle es que es difícil colocar los terminadores correctamente para suprimir los reflejos. Esto no importa mucho a 8MHz, pero podría haberse convertido en un problema a frecuencias más altas o con líneas más largas.

El único caso que veo donde las líneas punteadas podrían ayudar es cuando el retraso de propagación de maestro a SLAVE 6inaceptable. En ese caso, conectaría las líneas punteadas, pero rompería el bucle en algún lugar en el medio (digamos, entre SLAVE 3y SLAVE 4), y terminaría cada rama independientemente.

Dmitry Grigoryev
fuente
2

Con señales rápidas o líneas largas, la reflexión de la señal se convierte en un problema. En esos casos, debe terminar correctamente la línea colocando una resistencia que conecte el extremo de la línea y la tierra (no el comienzo de la línea). La terminación hace que la línea "parezca eléctricamente infinita", por lo que la señal no regresa. La terminación a veces también necesita elementos LC para contrarrestar la impedancia reactiva.

Sin embargo, para su caso, no es necesaria la terminación (línea corta para la velocidad de la señal, suponiendo que no esté operando en un entorno eléctricamente ruidoso). Por eso no ves la diferencia. También es una mala práctica de diseño hacer un bucle de su señal. Al hacerlo, la señal se repite e introduce ruido en su circuito (y se repite en ambas direcciones). También facilita la captura de ruido de RF en sus líneas.

Además, generalmente también es malo hacer un bucle de tierra y líneas eléctricas. El ruido de conmutación digital y los bucles de tierra también están allí, y pueden tener un impacto dramático en los circuitos analógicos. Si es necesario, puede usar horquillas en Y (sin conexión en el extremo más alejado) para reducir la caída de voltaje. Si eso no es suficiente, use trazas más anchas (traza más ancha-> menos resistencia-> menos caída de voltaje).

Ronan Paixão
fuente