¿Cómo conducir un autobús SPI a más de 5 pies de cable 26AWG?

1

A continuación se muestra el circuito que estoy tratando de lograr. El punto final es un dispositivo de 5V, pero mi microcontrolador (SPI Master) es un dispositivo de 3.3V, así que tengo que hacer la traducción de voltaje.

Mi pregunta es ¿qué tipo de circuito debo usar para conducir la señal SPI a través de un cable largo como ese? El circuito que tengo ahora (que se muestra a continuación) realmente distorsiona la señal gravemente.

Laseñalsevebastantemalconsoloelcablede5piesconectado.

    
pregunta user1406716

3 respuestas

2

Qué te parece esto: conduces una corriente a través del cable, que atraviesa el LED de un optoacoplador en el otro lado. Conduce el LED desde el suministro de 3V3, y el fototransistor en el opamp desde el 5V. Esto resuelve dos problemas: la conversión de 3V3 a 5V y la sensibilidad al ruido externo.

    
respondido por el peter
1

Agregue resistencia en serie a la salida del traductor para reducir la velocidad de borde. Esto reducirá los efectos de reflexión y, en particular, la desagradable falla en el borde descendente que amenaza con producir bordes de reloj maliciosos. La resistencia necesaria dependerá de una gran cantidad de detalles que no hayas compartido, por lo que es posible que tengas que experimentar para encontrar el valor correcto.

Esto puede reducir la velocidad de los bordes hasta el punto en que tenga que reducir su velocidad de datos. Esa es la forma como es. Si desea altas velocidades de datos en largas distancias, es posible que deba usar líneas de transmisión legítimas en lugar de cables sueltos ad hoc.

    
respondido por el The Photon
0

¿Eso sería aproximadamente 80 ns por reloj o un bus SPI de 12.5MHz? ¿Y lo está conduciendo a más de 1,5 metros de un cable de 0,4 mm de diámetro completamente sin blindaje o de otro modo equilibrado? Parece que el tiempo de subida es aproximadamente 8ns o 125MHz efectivo. Ay.

En teoría, eso sumaría una impedancia característica de aproximadamente 200 ohmios, por lo que el controlador de su traductor debería tener una resistencia de serie 180R para el reloj y líneas SDO (MOSI). Si realmente está leyendo los datos, debe agregar otra resistencia a la línea SDI (MISO) en el extremo distante. Si el controlador puede suministrar suficiente corriente, puede omitir la resistencia de la serie y agregar una resistencia de 200R a la GND en el extremo lejano para obtener el mejor efecto, pero esto requiere una unidad de 25 mA, lo que puede no ser práctico.

Dependiendo de cómo se junte el cable, la impedancia real puede ser (mucho) menor, dependiendo de si hay un cable justo al lado (< < 5mm). Experimentar producirá un valor óptimo, comience con la resistencia 47R en serie y aumente en incrementos de 47R. Alternativamente, 22R y 22R si quieres ajustarla pero probablemente será "lo suficientemente cerca" con incrementos de 47R.

    
respondido por el Barleyman

Lea otras preguntas en las etiquetas