terminación multislave del bus SPI

2

He estado usando un microcontrolador Tiva C (TM4C1294NCPDT) como maestro para comunicarme con 6 dispositivos SPI (esclavos). El reloj SPI es de 8 MHz con 1.5 ns tiempo de subida. Mi idea se muestra a continuación.

Midiseñonopermiteencadenardispositivos,porlotanto,necesitoconectarunalíneaCSseparadaacadaesclavo.ElPCBquehediseñadosemuestraacontinuación

Esta es una placa de 2 capas con señal y potencia en la parte superior y un plano de tierra firme en la parte inferior. Las líneas de autobús tienen 8 mil de ancho y no hay talones relevantes (pase debajo de las almohadillas). Esta placa con los dispositivos esclavos está conectada a la placa de evaluación MCU mediante cabezales de 2,54 mm.

Mi preocupación está relacionada con la longitud de las pistas del bus SPI en la PCB, que podemos ver, es > 55 mm de largo, y porque el mismo bus SPI está conectado a múltiples dispositivos, lo que puede causar reflexiones debido a la falta de coincidencia de impedancia. Nunca conecté múltiples dispositivos SPI a un solo bus SPI, solo uno a uno, y no tengo mucho conocimiento sobre las técnicas de línea de transmisión. Mi pregunta es: ¿Debo considerar algún esquema de terminación en el autobús? Leí que la terminación de la serie debería usarse cuando solo un esclavo está conectado al bus (uno a uno). Para uno a muchos (maestro y esclavos) se puede usar paralelo o CA al final de las líneas SPI para hacer el truco, pero no estoy seguro de la necesidad de usar terminación en mi caso y, si es necesario, lo cual es el esquema adecuado para usar y en qué líneas.

    
pregunta Otavio Gomes

2 respuestas

2

En lugar de preocuparse por la impedancia controlada, terminaciones emparejadas, reflexiones y todo eso, lo que debe hacer es aumentar los tiempos de subida y caída de sus señales.

Tienes un período de reloj de 125 ns. Un tiempo de subida y bajada de 10-12 ns en las señales de datos y 6-8 ns en el reloj tendrá un impacto insignificante en sus márgenes de tiempo, pero reducirá drásticamente la probabilidad de cualquier problema de desajustes de impedancia.

Como el bus SPI no tiene E / S bidireccionales, puede hacer esto simplemente agregando una resistencia en serie en cada controlador de salida. Lo ideal sería calcular la capacitancia de cada línea conducida (al menos aproximadamente) y calcular la resistencia para obtener el tiempo de subida que desee. O puede elegir un valor entre 5 y 50 ohmios, y ajustarlo más tarde si tiene problemas o si las mediciones en el tablero real muestran tiempos de aumento demasiado rápidos o lentos.

    
respondido por el The Photon
-1

Tengo una placa con un 328P conduciendo 12 registros de turnos, y un encabezado para llevar las señales a otra placa. Funciona muy bien con la velocidad de reloj SPI establecida en 8 MHz (lo más rápido será 16 MHz uC).

( enlace , desplácese hacia abajo aproximadamente 2/3 del camino, me pareció haber arruinado la parte superior de los punteros de página la última vez que actualicé la página de índice).

Si está preocupado, agregue almohadillas para poner resistencias de terminación a +5 y Gnd al final de la cadena. No rellene, y vea la señal con un osciloscopio, vea cómo se ve.

    
respondido por el CrossRoads

Lea otras preguntas en las etiquetas