Adaptadores de nivel entre 5V y 3.3V

Conexión de un adaptador de niveles de 5V a 3,3V.
Conexión de un adaptador de niveles de 5V a 3,3V.

Con el desarrollo y la difusión de la lógica a 3,3V en lugar de los clásicos 5V a veces nos encontramos con el problema de conectar dispositivos entre sí que trabajan con tensiones distintas. Una conexión directa entre un componente con salida lógica de 5V y otro con entrada de 3,3V podría dañar irremediablemente este último. En este post analizaremos las distintas soluciones posibles, con algunos ejemplos prácticos para construir.

Independientemente del tipo de datos que viajan por estas líneas (paralelos o seriales), generalmente podemos considerar tres tipos de conexiones entre dispositivos de 5V y de 3,3V:

-  Salida de 3,3V a entrada 5V
-  Salida 5V a entrada de 3,3V
-  Conexión bidireccional entre 5V y 3,3V

A continuación analizaremos estos tres tipos de conexiones.

Salida de 3,3V a entrada de 5V

Conexión directa (sin necesidad de adaptador) desde una salida de 3,3V a una entrada de 5V.
Conexión directa (sin necesidad de adaptador) desde una salida de 3,3V a una entrada de 5V.

Dispositivos con salidas lógicas de 3,3V se pueden conectar directamente a otros con entradas de 5V sin inconvenientes. Esto es debido a que la lógica de 5V considera un nivel alto, tensiones superiores a 2V y por lo tanto las provenientes de dispositivos de 3,3V son interpretadas correctamente.

Comparación de los niveles de tensión para sistemas lógicos de 5V y de 3,3V.
Comparación de los niveles de tensión para sistemas lógicos de 5V y de 3,3V.

La figura nos muestra los niveles de tensión de ambas familias lógicas. Como podemos observar, son compatibles entre si.

Salida de 5V a entrada de 3,3V

Conexión de un adaptador de niveles de 5V a 3,3V.
Conexión de un adaptador de niveles de 5V a 3,3V.

En este caso es necesario usar un adaptador de niveles porque los 5V superan la tensión de funcionamiento del dispositivo de 3,3V y pueden dañarlo. Existen dispositivos de 3,3V tolerantes a los 5V pero ante la duda es mejor no arriesgarse. Por suerte, el adaptador necesario en este caso puede ser muy simple de hacer como explicaré más adelante en este mismo artículo.

Conexión bidireccional entre 5V y 3,3V

Conexión de un adaptador de niveles de 5V a 3,3V bidireccional.
Conexión de un adaptador de niveles de 5V a 3,3V bidireccional.

Es el tipo de conexión en la cual los dispositivos involucrados transmiten y reciben datos usando el mismo terminal (pero no al mismo tiempo).  En este caso es necesario usar un adaptador de niveles pero debe ser más sofisticado que en el caso anterior porque debe trabajar diversamente según la dirección de los datos en tránsito (disminuir la tensión en un sentido y aumentarla en el otro). El ejemplo más común de línea bidireccional es el usado en la interfaz I2C para comunicación entre microcontroladores y dispositivos periféricos (por ejemplo sensores de movimiento, giroscopios y memorias, entre otros). En comercio podemos encontrar adaptadores bidireccionales muy compactos basados en mosfet.

Una interfaz bidireccional con mosfet

Circuito del adaptador bidireccional de 3,3V a 5V con mosfet 2N7000 o BS170.
Circuito del adaptador bidireccional de 3,3V a 5V con mosfet 2N7000 o BS170.

En la figura les muestro una interfaz con mosfet que permite de trabajar con líneas bidireccionales y que he construido para algunos de mis proyectos. Se pueden usar mosfets de baja potencia, de canal N y con una tensión de gate (VGSth) no superior a los 3V. Yo he probado con el mosfet 2N7000 y también con el BS170, ambos trabajan correctamente.

Adaptador bidireccional de 3,3V a 5V con mosfet 2N7000.
Adaptador bidireccional de 3,3V a 5V con mosfet 2N7000.

Recuerden que estos modelos de mosfet tienen los pins Drain y Source invertidos. He hecho dos diseños de ejemplo para ambos componentes.

Adaptador bidireccional de 3,3V a 5V con mosfet BS170.
Adaptador bidireccional de 3,3V a 5V con mosfet BS170.

¿Como funciona la interfaz con mosfet?

Trabajando el circuito como adaptador bidireccional tenemos 4 condiciones posibles:

1. El dispositivo de 3,3V transmite y está en estado alto ("1") mientras que el de 5V recibe.

Lógica de 3,3V como salida y a nivel alto: el mosfet no conduce y la entrada de 5V está a positivo (5V) gracias a la resistencia de pull up de 10K (en rojo)

La salida lógica de 3,3V está conectada al "Source" del mosfet y se encuentra a nivel alto. Por lo tanto la diferencia de tensión entre "Source" y "Gate" es de 0V porque también el "Gate" se encuentra a 3,3V gracias a la resistencia de "pull-up" de 10K conectada directamente a la alimentación de 3,3V. Con una caída de tensión Source - Gate de 0V el mosfet no conduce por lo tanto la entrada lógica de 5V se encuentra a 5V gracias a la otra resistencia de "pull-up" de 10K (en rojo) conectada directamente a la alimentación de 5V.

2. El dispositivo de 3,3V transmite y está en estado bajo ("0") mientras que el de 5V recibe.

Lógica de 3,3V como salida y a nivel bajo: el mosfet conduce y lleva la entrada de 5V a nivel bajo.

La salida lógica de 3,3V está conectada al "Source" del mosfet y se encuentra a nivel bajo (negativo). Por lo tanto la diferencia de tensión entre "Source" y "Gate" es de 3,3V porque el "Gate" está conectado a positivo de 3,3V. Con una caída de tensión "Source - Gate" de 3,3V el mosfet es un corto y fuerza la entrada lógica de 5V también a negativo.

3. El dispositivo de 5V transmite y está en estado alto ("1") mientras que el de 3,3V recibe.

Lógica de 5V como salida y a nivel alto: el mosfet no conduce y la entrada de 3,3V está a positivo (3,3V) gracias a la resistencia de pull up de 10K (en rojo).

La salida lógica de 5V se encuentra a nivel alto ("1") por lo tanto el mosfet no conduce y la entrada de 3,3V también estará a nivel alto ("1") gracias a la resistencia de "pull-up" de 10K (en rojo) conectada directamente a la alimentación de 3,3V.

4. El dispositivo de 5V transmite y está en estado bajo ("0") mientras que el de 3,3V recibe.

Lógica de 5V como salida y a nivel bajo: el diodo interno del mosfet conduce y lleva la entrada de 3,3V a negativo (0,7V).

Con la salida lógica de 5V a nivel bajo("0"), el diodo interno del mosfet (diodo de substrato entre Source y Drain) empieza a conducir porque correctamente polarizado (el positivo de Source lo obtiene gracias a la resistencia de pull-up conectada a 3,3V)y por lo tanto fuerza la entrada de 3,3V a nivel bajo (en realidad a 0,7V que es la caída de tensión del diodo).

 

Una interfaz muy simple desde 5V a 3,3V

Divisor resistivo conectado a la salida de 5V para bajar la tensión.
Divisor resistivo conectado a la salida de 5V para bajar la tensión.

Si nos encontramos con la necesidad de hacer una conexión con salida 5V a entrada 3,3V no bidireccional, podemos simplemente usar un divisor resistivo, hecho con dos resistencias comunes, como podemos ver en la figura.
El principio de funcionamiento es el siguiente: la tensión de +5V de la salida del circuito lógico se reparte entre las dos resistencias R1 y R2 que están conectadas en serie. Si fueran ambas de igual valor, la caída de tensión en cada una de ellas sería de 2,5V pero si aumentáramos el valor de R2 respecto a R1, la tensión en ella sería mayor. Podemos observar también que R2 se encuentra conectada a la entrada del circuito lógico de 3,3V. Por lo tanto, nos basta usar una resistencia R2 con un valor tal que nos dé una tensión de salida aproximadamente igual a 3,3V cuando aplicamos 5V en la entrada del divisor.

Para calcular el valor de las resistencias conviene elegir primero la corriente que pasará por nuestro divisor, sin que cargue excesivamente la salida lógica de 5V pero que al mismo tiempo tenga una buena respuesta en frecuencia. Esto es debido al hecho que las entradas de los dispositivos MOS digitales necesitan de una cierta corriente durante las transiciones de estado lógico, especialmente si se trabaja con velocidades elevadas. En general, una corriente de 1mA es suficiente. Conociendo la corriente (1mA) y la tensión de salida (3,3V) podemos aplicar la Ley de Ohm para obtener R2:

Fórmula para obtener R2 de un divisor resistivo.

Usando la misma fórmula calculamos el valor de R1:

Fórmula para obtener el valor de R1 en un divisor resistivo.

Ahora redondeamos los valores obtenidos a los valores estándar de resistencia más cercanos:

Redondeo de las resistencias a valores estándar

Por último verificamos que la tensión de salida obtenida después del redondeo no supere los 3,3V deseados. Para ello aplicamos la fórmula derivada de la Ley de Ohm para los divisores resistivos.

Fórmula de tensión de salida para un divisor resistivo.

El valor obtenido es correcto porque cercano a los 3,3V pero por debajo de él.

En la figura siguiente podemos ver el adaptador con las resistencias respectivas:

Vista pictórica del divisor resistivo para bajar la tensión de 5V a 3,3V.
Vista pictórica del divisor resistivo para bajar la tensión de 5V a 3,3V.

En este artículo hemos visto los adaptadores para familias lógicas de 5V y 3,3V. Existen también dispositivos con niveles lógicos más bajos como por ejemplo 1,8V que veremos en otra publicación.

- Indice de todos los artículos de Inventable-

 

Los contenidos de este blog son originales y están bajo una licencia Creative Commons BY_NC_SA

Adaptadores de nivel entre 5V y 3.3V ultima modifica: 2017-05-03T18:19:10+02:00 da inventable

15 comentarios sobre “Adaptadores de nivel entre 5V y 3.3V”

  1. Hola, hubiera estado bien que explicases el funcionamiento del adaptador bidireccional con el mosfet. No termino de entenderlo.
    Por cierto felicidades por tus pictogramas, son geniales.

    1. Hola Pedro, he agregado en el post la explicación de como funciona el adaptador bidireccional con MOSFET. Espero que sea claro. Muchas gracias por tus observación. 🙂

      Gabriel

      1. Madre mia, que oxidado estoy!!!!
        Yo estaba venga a darle vueltas al circuito preguntándome como es que esas resistencias conseguían polarizar el mosfet para que siempre condujera y encima en ambas direcciones, por dios…
        Con tu explicación queda todo más claro.
        Gracias por todo.

  2. Hola, la verdad no entendí del todo, quisiera que me ayudes con una duda, lo que quiero es alimentar desde una batería de 3.7 V a un conversor que eleve el voltaje a 5 V y este alimente a una placa de Arduino, pero no lo logro.

    Puse en paralelo al MOSFET de canal P un pulsante con la idea de que apenas el arduino detecte un pulso de alimentación cierre el switch y permita el paso de alimentación permanente al arduino y todo lo que deba comandar.

    ¿me podrías dar una mano por favor?

  3. Hola Estefanía:
    Lamento decirte que mezclaste incorrectamente dos temas totalmente distintos.
    Lo que necesitas es un convertidor DC-DC. Es algo que no tiene nada que ver con lo expuesto aquí.
    Este artículo explica como adaptar niveles lógicos entre dos equipos que YA ESTÁN alimentados. No genera nada.
    Lo siento.

    Saludos,
    Juan

  4. Oe mano gracias, me estaba partiendo la cabeza pensando en como voy a hacerlo para conectarlos pero
    me solucionaste esa duda super bien, fue como ver las luz. Saludos desde PERU.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.