Conversión de nivel de 3V3 a 5V

Actualmente estoy trabajando en el desarrollo de algunos equipos de medición. Para las conversiones utilizo un ARM pequeño que funciona con 3V3 y para mostrar los resultados utilizo una pantalla gráfica que funciona con 5V. Esto significa que tengo que cambiar los niveles de voltaje de 3V3 a 5V y viceversa.

Investigué un poco sobre el tema y descubrí que hay numerosos circuitos solo en stackexchange (déjalo ir en todo Internet) para hacerlo, pero estoy interesado en cómo lo hacen los desarrolladores profesionales y cómo lograr velocidades de conmutación rápidas para rápido interfaces

Siempre existe la opción de usar un IC 1 de cambio de nivel , pero son costosos y la mayoría de las empresas pueden querer evitar el costo de componentes adicionales. La gente lo ha hecho bidireccional con solo un 2N7002 y dos resistencias [2] mientras que otras personas lo han hecho con un transistor y dos resistencias configuradas como un inversor.

¿Cómo cambian los desarrolladores profesionales el nivel de voltaje de la lógica de 3V3 a 5V y viceversa? Nunca he visto convertidores de nivel en un producto profesional (a excepción de las bombas de carga para RS232 y similares). ¿Simplemente conectan lógica de 3V3 y 5V?

1 Por ejemplo, el SN74AVCB164245VR de TI

[2]

circuito

El nivel alto lógico de 5V TTL aceptará fácilmente 3V3 como alto y, obviamente, 0V es bajo.
Los profesionales no se apegan a un método para todos los casos, sino que sopesan los pros y los contras de los diversos métodos para encontrar el que mejor se adapte a su aplicación y requisitos.
¿Cuáles son sus requisitos específicos? ¿Puede cuantificar las "velocidades de conmutación rápidas para interfaces rápidas"? ¿Es su interfaz bidireccional? ¿Es su lógica 3V3 tolerante a 5V?
En caso de que sospeche que los niveles lógicos realmente importan para la pantalla, y suponiendo que tiene varias líneas de datos (¿SPI?), podría usar algo como 74LVC245 .
Escuché sobre el nivel lógico de 5V que acepta 3V3 como ALTO. Pero luego escuché que algunas pantallas y otras cosas como las interfaces SPI no aceptan el 3V3 tan alto por razones desconocidas. No quiero arriesgarme a eso. Sí, estoy usando SPI y una interfaz compatible con 8080. Mi pregunta fue lo más específica que pude obtener sin limitar algo a mi caso de uso específico.
Las razones no son 'desconocidas': ¡están indicadas en la(s) hoja(s) de datos!
Desconocido para mí ya que no hice más preguntas.
¿Qué tan rápido lo estás conduciendo? es bidireccional? ¿Qué tan barato tiene que ser? Necesita saber todo eso para tomar la decisión. Para hacerlo unidireccional, hay muchas opciones baratas, por ejemplo, algunos fets o alguna lógica genérica barata (74HC, etc.). Para ir bidireccional, puede usar un truco con un FET para que sea muy barato, o un cambiador de nivel si tiene algunos centavos para gastar. Si necesita ser súper rápido, entonces estás más limitado.
@ user2628088 "Mi pregunta fue lo más específica posible sin limitar algo a mi caso de uso específico". ... A menos que pueda proporcionar detalles, esta pregunta es demasiado amplia. La solución de Wouter PUEDE ser totalmente viable si sus pines son tolerantes a 5V, se pueden poner en modo de drenaje abierto y se elevan a 5V. Si no puede encontrar esto en la hoja de datos, proporcione un enlace y díganos qué pines está utilizando.
Bien entonces. Tengo dos casos de uso específicos. Una es una pantalla de gráficos (LC) antigua que necesito conservar. Tiene una interfaz 8080 y necesita 5V (no tan alta velocidad). Por otro lado, tengo un ARM de la serie Tiva C (129, no 123) que no es tolerante a 5V en sus pines y necesita comunicarse con la pantalla de 5V. Por otro lado tengo un DAC DAC814 que detecta un estado ALTO desde +2V hasta (Vcc-1.4V) lo que resulta en 3.4V dependiendo de la temperatura. Para estar absolutamente seguro de que funciona, quiero traducir los niveles para la interfaz SPI.

Respuestas (3)

Estamos utilizando el TXS0104E bidireccional de 4 canales en un producto comercial y nos está funcionando muy bien.

En nuestro caso, se usa para convertir de 3,3 v a 1,8 v y viceversa, pero también se puede usar para convertir de 5 v a 3,3 v y viceversa (en realidad, el lado alto puede estar entre 2,3 v y 5,5 v, y el lado bajo de 1.65v a 3.6v).

El chip también incluye protección ESD en todos los pines.

Está disponible en Digi-Key en un paquete de 14 TSSOP por $1,87 en cantidades individuales (73 centavos en 1000). También está disponible en un paquete 12-DSBGA diminuto (1,9 x 1,4 mm). Eso es aproximadamente del mismo tamaño que una resistencia 0805. Por lo tanto, puede colocarlos fácilmente en línea en la parte superior de un bus paralelo que va entre chips. Los pines están bien dispuestos en orden en ambos lados del chip para acomodar esto.

Mi experiencia con las pantallas basadas en HD44780 y S6B0107/S6B0108 (= KS0107B/KS0108B) es que no funcionan con niveles lógicos de 3,3 V.

Coloco una resistencia pull-up de 1k en cada pin y uso los pines de un LPC1114 en modo de drenaje abierto. Esto funciona bien para mi.

Un profesional hará lo que sea apropiado para la situación. IME un diseño de gran volumen combinará un uC de 3V con una pantalla de 3V. Para diseños de bajo costo, puede consultar las pantallas LCD de estilo Nokia 5510.

Solo para mayor claridad, ¿su recomendación es subir hasta 5 V (con un pin tolerante a 5 V, por supuesto)?
¿Cómo puedo recomendar para una situación que no conozco? Cuento lo que hice y lo que funcionó para mí.
Por supuesto que no puedes. Solo estaba pidiendo aclaraciones sobre su solución particular. A veces, los pull-ups se usan al mismo nivel lógico (3V3) para lograr el voltaje de salida completo.
Se pueden usar de esa manera, pero con pines de drenaje abierto (o interruptor de salida + bajo / entrada) que son tolerantes a 5V, puede cambiar el nivel de esta manera. Tenga en cuenta que en mi caso no funcionó con salidas simples.

Creo que esto es útil. Es una guía de nxp sobre líneas i2c de cambio de nivel con dos mosfets.

http://www.nxp.com/documents/application_note/AN10441.pdf

Las líneas I2C son de drenaje abierto y bidireccionales, lo que hace que el cambio de niveles en tales líneas sea un caso muy especial. en otras palabras: se puede usar, pero probablemente sea excesivo.