¿La forma más barata de traducir la señal SPI de 5V a SPI de 3V?

6

Tengo una MCU que funciona a 5 V y una pantalla que recomienda un nivel lógico de 3 V. Se conectan a través de SPI que puede funcionar hasta 1.5Mhz. ¿Cuál es la mejor manera y la más barata (no necesariamente la misma) para convertir 5V a 3V? La conexión SPI es de una manera (solo SCK, MOSI, CS; no es necesario que la pantalla LCD se comunique con la MCU, por lo que la traducción es de 5V a 3V solamente).

Gracias, Mike

    
pregunta Mike

6 respuestas

3

Como dijo Matt, el más simple es un divisor de resistencia. El inconveniente es que ralentizará un poco los bordes. Probablemente estarás bien con los 1 kΩ y 2 kΩ que muestra, pero sería una buena idea verificar la forma de onda con un alcance.

Cuando la velocidad es un problema, lo más probable es que si estuviera ejecutando el bus SPI a 10 MHz, un convertidor de nivel explícito probablemente sea mejor. Estos chips tienen dos fuentes de alimentación y, por lo general, una entrada de dirección, que podría atar permanentemente en una dirección en su caso.

    
respondido por el Olin Lathrop
6

La forma más sencilla (no sé si es la mejor) es con un simple divisor de voltaje. 3.3V es 2/3 de 5V, por lo que un divisor 1: 2 debería funcionar:

    
respondido por el Majenko
4

Un simple divisor resistivo es el método más barato y puede servirle a sus propósitos lo suficientemente bien.

Colocar un condensador pequeño en la resistencia superior ayudará a cuadrar los bordes causados por la carga capacitiva. Siempre que la constante de tiempo RC de las dos resistencias en paralelo combinada con la capacidad de carga de salida sea mucho más rápida que el tiempo de subida y bajada de las señales, este capacitor no debería ser necesario.

Hay muchas soluciones bidireccionales y activas disponibles. Como ejemplo solo de una solución compacta Maxim's MAX3023 proporciona 4 controladores bidireccionales en un paquete TSSOP .

    
respondido por el Russell McMahon
1

Si su procesador tiene pines de salida de drenaje abiertos, puede conectarlos directamente a la pantalla, agregando una resistencia pull-up al suministro de 3.3 V a cada línea. Es posible que deba configurar los pines para abrir el modo de drenaje mediante un registro MCU.

Nota: escribí lo siguiente antes de volver a leer la pregunta y noté que la interfaz SPI en cuestión se imprime solo y no hay una línea MISO. Lo dejé como referencia.

Si el procesador tiene entradas tolerantes de 5 V (verifique la hoja de datos), puede conectar la línea MISO desde la pantalla directamente a la MCU, siempre que la pantalla Voh sea más alta que el nivel de VCO de MCO.

    
respondido por el B Pete
1

Recomendaría un búfer 74LVC . Entradas tolerantes de 5 V, salidas de 3,3 V, baratas, rápidas, pequeñas, fácilmente disponibles y solo una parte para soldar en lugar de muchos resistores.

El LVC126 también tiene tres estados, lo que puede ser útil.

    
respondido por el peufeu
0

No, en realidad, la forma más sencilla de interfaz es la utilizada por Adafruit Huzzah ; un diodo con cátodo a la señal de 5 V y ánodo a la entrada ESP8266. Esto produce un no retraso en el desplegable y hay un pull-up interno predeterminado en el ESP8266, aunque podría proporcionar un pull-up a 3.3 V si se considera necesario.

No hay razón para proporcionar una conversión de nivel desde una salida ESP8266, ya que 3.3 V es una lógica ALTA válida para CMOS a 5 V.

    
respondido por el Paul B.

Lea otras preguntas en las etiquetas