SPI- longitud del bus?

1

¿Cómo afecta la longitud del bus SPI a la comunicación? Descubrí que si la longitud del bus SPI aumenta, no se comunica en absoluto. ¿Cómo afecta la longitud a la comunicación?

Gracias

    
pregunta user123456

2 respuestas

3

Con lo que normalmente estás tratando no es la longitud, sino la capacitancia.

La etapa de salida push-push de un dispositivo SPI tiene una capacidad de carga máxima permitida especificada, y esa capacidad varía con la velocidad a la que desea comunicarse.

Por ejemplo, piense en un dispositivo de 3.3 V en el que la etapa de salida puede generar o acumular un máximo de 10 mA y desea trabajar a 10 MHz. Desatención de las resistencias en serie Q = CV se mantiene. A 10MHz, el período es de 100 ns, por lo que en el peor de los casos es que necesita (des) cargar completamente un capacitor completamente descargado (cargado) en 50 ns. La carga total que puede emitir su dispositivo es una función del tiempo, es decir, Q = It, en 50 ns nuestro dispositivo puede generar 10mA * 50ns = 500pC. Como desea V = 3.3V, finalmente obtiene C = Q / V = 500pC / 3.3V = 151pF. Ese es un valor bastante realista.

Lo que puede encontrar en las hojas de datos es la capacidad máxima permitida, y los cables (deben) tener una capacidad por metro especificado. Tenga en cuenta que el dispositivo que necesita ser accionado también tiene una capacidad de entrada, y eso cuenta, por supuesto. Si tiene un cable de 50pF / m y un dispositivo de entrada de 50pF, puede ver que la longitud máxima es de 2m. Más que eso, y los voltajes altos y bajos comenzarán a degradarse, hasta el punto en que la etapa de empuje no tiene suficiente tiempo para conducir la línea y el dispositivo receptor dejaría de funcionar.

Pero esa no es la historia completa. Hay otra bestia mala, y se llama hablar en cruz. Si conectan dos cables juntos y están cerca, forman un condensador. Un cambio repentino en el voltaje en uno de ellos también estaría presente en el otro, y esto es malo. Bajo el rango de 100MHz obtener una comunicación adecuada debería ser bastante fácil si sus datos y líneas de reloj están lo suficientemente lejos, o (mejor), protegidos. Tenga en cuenta que el blindaje agrega una gran cantidad de capacitancia, por lo que hay una compensación (¡sorpresa!).

Un error común que también hacen las personas bastante expertas es ejecutar datos y reloj en pares trenzados, o ejecutar los rastros en el PCB muy juntos. Para SPI esto es muy, muy malo y puede disminuir dramáticamente el rendimiento.

    
respondido por el Vladimir Cravero
0

Maestro - > el SPI esclavo puede llegar bastante lejos porque el reloj y los datos en el extremo receptor siempre permanecerán sincronizados entre sí. De hecho, si desea conducir DAC realmente remotos (por ejemplo), puede convertir el reloj y los datos de SPI en dos lotes de RS485, transmitirlo a cientos de metros, reconvertir de nuevo a SPI en el otro extremo y, por supuesto, funciona tan bien como RS485. Pero esto es solo en el maestro para la transmisión de esclavos. Considera esto: -

Al final del esclavo, el reloj y los datos permanecen sincronizados y, como corresponde, el esclavo (si se trata de un ADC) comienza a enviar los datos al maestro. Sincroniza su salida de datos con el único reloj que tiene (desde el maestro) PERO, puede haber varios cientos de nano segundos de retraso y habrá otros varios cientos de nanos segundos de retraso en el maestro al ver los datos de retorno del esclavo. Ya no está muy bien sincronizado hasta el reloj de origen y el enlace está roto y en buenas condiciones.

No estoy diciendo que esto sea así, pero sé consciente de ello.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas