Dirección del cambiador de nivel SPI

Tengo diferentes periféricos SPI que funcionan a niveles lógicos de 3,3 y 5 V, con el MCU funcionando a 3,3 V. Por lo tanto, uso cambiadores de nivel (en mi caso, usé 74LV1T32GWH con las dos entradas unidas) para comunicarme con los periféricos de 5 V, lo que funciona bien por sí solo.

Sin embargo, parece que la señal MISO del periférico de 3,3 V ahora es "absorbida" por el pin de salida del cambiador de nivel de 5 a 3,3 V (probablemente porque el pin de salida del cambiador de nivel no tiene una impedancia de entrada alta ?) y, por lo tanto, no llega ninguna señal del periférico de 3,3 V a la MCU.

¿Qué puedo hacer para solucionar este problema? ¿Puedo agregar un diodo entre MISO y un cambiador de nivel de 5 a 3,3 V? ¿O necesito algún tipo de búfer adicional? (Sospecho que esto es para lo que son los amortiguadores de drenaje abiertos?)

Me gustaría evitar el uso de Tri-State-Buffer donde tengo que habilitar activamente el búfer, porque entonces tendría que tener una línea CS adicional para eso (al menos si tengo varios periféricos de 5V detrás de la palanca de cambios de nivel que no no comparten una línea CS común).

Respuestas (1)

No se pueden conectar dos salidas juntas para controlar una sola entrada. Necesita algo que pueda deshabilitar la salida, y un búfer de tres estados sería la primera solución. Un diodo no resolverá el problema.

Entonces, cuando se conectan periféricos SPI (sin cambios de nivel), ¿solo funciona porque los dispositivos tienen un búfer interno de tres estados y cambian su pin SDO a alta impedancia cuando no están activos?
Sí. Por lo general, los dispositivos SPI tienen controladores de salida de tres estados que permiten conectar varios dispositivos en el mismo bus; de lo contrario, no sería posible. Algunos dispositivos no tienen salida de tres estados y luego se debe agregar un búfer de tres estados para que sea compatible con otros dispositivos y la selección de chip se puede usar para habilitar el búfer.
¿Y podría también usar búferes de drenaje abierto para cambiar el nivel de la ruta MISO en su lugar, donde subo la ruta común usando una resistencia pull-up?
Podrías, pero ¿realmente quieres? Limitará la velocidad de la comunicación, y aún tendrá que asegurarse absolutamente de que el dispositivo no utilizado no se apague accidentalmente. Así que depende de su aplicación.