Llévelo a otro nivel: haga que 3.3V hable con 5V

Maya Lorenzo
Maya Lorenzo

Si su introducción a la electrónica digital llegó hace más años de los que le gustaría mencionar, es probable que lo haya hecho con lógica TTL de 5V. Por encima de 2 V, pero por lo general lo suficientemente cerca de 5 V es la lógica 1, por debajo de 0,8 V es la lógica 0. Si fueras un ávido lector de libros de texto electrónicos, es posible que hayas leído acerca de los diferentes niveles de voltaje tolerados por las puertas CMOS de la serie 4000, pero las posibilidades son iguales con para ellos, todavía usaría los familiares 5 voltios.

Este feliz estado de no encontrar nada más que la lógica de 5V como aficionado no duró. En las últimas décadas, las demandas de mayor velocidad y menos energía nos han dado familias sucesivas de dispositivos de menor voltaje, y ahora a menudo también encontramos dispositivos de 3.3V o incluso a veces dispositivos de menor voltaje. Cuando estas diferentes familias necesitan coexistir, como cuando interactúan con la cosecha actual de placas de microcontroladores, se debe tener cuidado para evitar dañar su silicio. Son necesarios algunos medios para gestionar la transición entre voltajes, por lo que veremos el mundo de los interruptores de nivel, los circuitos que usamos al interconectar estas diferentes familias lógicas de voltaje.

¿Necesita incluso un cambiador de nivel?

Puede parecer extraño comenzar un tratado de cambio de nivel de esta manera, pero la primera pregunta para el diseñador cuando busca hacer que una parte de 3.3V hable con una parte de 5V debería ser esta: ¿Necesito siquiera un interruptor de nivel?

Si se emite la parte de 3,3 V y la de 5 V una entrada, la parte de voltaje más bajo difícilmente puede dañar el voltaje más alto con sobretensión. Y probablemente no encontrará una entrada lógica que pueda requerir tanta corriente como para dañar su salida (si lo hace, use un búfer). Si tiene suerte, los rangos de voltaje lógico de los dos dispositivos pueden incluso superponerse. Por ejemplo, la lógica TTL de 3,3 V divide los umbrales de 0,8 V y 2 V para las transiciones lógicas 0 y 1 con lógica TTL de 5 V, por lo que la salida TTL de 3,3 V puede impulsar la entrada TTL de 5 V sin necesidad de hardware adicional.

En la otra dirección, manejando una entrada de 3.3V desde una salida de 5V, podría esperar que se necesite un circuito de conmutación de nivel, y en muchos casos estaría en lo cierto. Pero antes de llegar a ese interruptor, vale la pena mirar las especificaciones detalladas de su entrada de 3.3V. Muchos dispositivos están diseñados para ser tolerantes a 5 V, y es posible que tenga suerte de descubrir que su circuito podría usar uno y evitar el circuito adicional. Por ejemplo, la serie 74LVC contiene una gama de versiones de 3,3 V tolerantes a 5 V de muchos circuitos integrados de la serie 74.

CMOS Y TTL: Historia de advertencia de cambio de nivel

Comparación de los umbrales lógicos TTL y CMOS con la salida de 3.3V. Aplicación NXP 240 (PDF).

Cuando está conduciendo directamente la lógica que normalmente usaría en una salida de 5V a 3.3V, hay una advertencia a tener en cuenta, una confesión personal de falla electrónica. La lógica CMOS define sus umbrales lógicos como un porcentaje del voltaje de suministro, que con un suministro de 5 V coloca el umbral lógico 1 del 70% muy por encima de la lógica 1 de 3.3 V.Algunos circuitos integrados CMOS como el interruptor analógico 74HC4053, que utilicé en el proyecto Raspberry Pi. no sigue completamente este estándar y funcionará con una salida TTL de 3.3V, así que me engañaron con una falsa sensación de seguridad y obtuve otra pieza 74HC para conectarla a mi Raspberry Pi con un nuevo diseño. Como era de esperar, no funcionó y, por supuesto, perdí el tiempo buscando en cualquier otro lugar, excepto por mi elección defectuosa del papel. Si hay una moraleja en esta historia, siempre debe leer la hoja de datos con atención y usar las partes compatibles con TTL como en este caso 74HCT, cuando estén disponibles.

Si las entradas de su dispositivo de 3.3V no toleran 5V y sus entradas de 5V carecen de umbrales compatibles con 3.3V, desafortunadamente no podrá interconectarlos a través de niveles de voltaje sin un disyuntor. Hay muchas opciones disponibles para usted, incluidos muchos cambiadores de nivel dedicados como estos de TI, pero aparte de las preferencias personales, algunas de ellas serán dictadas por su aplicación. ¿Será un paso hacia arriba o hacia abajo, o necesita un interruptor de nivel bidireccional? Si decide no utilizar una pieza dedicada o una puerta de tolerancia de 5 V en su proyecto, estas son algunas de las muchas alternativas.

Cambiadores de nivel de escalón

Resistencia simple baja.

El circuito de pasos más simple posible es un divisor de resistencia. Lleve su salida de 5 V a una cadena de resistencias desde las que toque su entrada lógica de 3,3 V. Una cadena que consta de una resistencia de 2.2k y 3.3k debe producir una salida de 3V a partir de una entrada de 5V aplicada. No conserva la característica sobresaliente de la salida de 3.3V y debe estar al tanto de cualquier capacitancia que también pueda estar en cualquier lógica conectada a él y el efecto que pueden tener junto con las resistencias en tiempos rápidos, pero debería ser suficiente para tareas cuesta abajo de nivel más simple que enfrenta un aficionado. Hay variaciones en este circuito que usan diodos en lugar de una resistencia para lograr la caída de voltaje requerida.

Si el divisor no es adecuado para su aplicación y aún está evitando un alternador dedicado, eche un vistazo a la página de interruptores bidireccionales a continuación.

Cambiadores de nivel de escalón

Circuito de paso de nivel lógico de diodo. De la nota del programa de Microchip DS41285A (PDF).

Para pasar de la lógica de 3.3V a la lógica de 5V y asumir que no está seguro dentro de los umbrales TTL, como se describió anteriormente, de modo que pueda prescindir de un interruptor, necesitará algo un poco más complejo que el divisor de resistencia en la sección anterior . El circuito más simple utiliza un par de diodos con una polarización cuidadosa y la selección de una resistencia en serie como se muestra en el diagrama de la derecha. La nota de aplicación de la que proviene advierte que la resistencia debe ser significativamente más pequeña que la impedancia de entrada de la puerta de 5 V, para evitar que forme parte de un divisor de resistencia, con esa impedancia afectando el voltaje de salida.

Circuito de paso de nivel lógico MOSFET inverso. Nuevamente, del programa de Microchip, tenga en cuenta DS41285A.

Un circuito un poco más obvio usa un MOSFET o transistor bipolar como interruptor, empujando la puerta o base con la lógica de 3.3V y tomando la salida lógica de 5V del efluente o colector. Esto es muy similar a usar una puerta con una salida de recolección abierta en la misma aplicación. Este es un circuito simple y confiable, pero hay que tener en cuenta que invierte el nivel lógico de 3.3V.

Cambiadores de nivel bidireccionales

El alternador de nivel MOSFET bidireccional.

Los circuitos de las dos secciones anteriores son adecuados solo para líneas lógicas unidireccionales, pero no en el caso de un bus de dos vías. Como antes, hay muchos interruptores de nivel de bus listos para usar de una variedad de fabricantes de semiconductores para elegir, pero si estos no son adecuados para su proyecto, se puede hacer una alternativa conveniente con MOSFET y algunas resistencias. También vale la pena señalar que esto no debe usarse en un bus de dos vías, puede servir como un cambiador de nivel de propósito general por el costo de 2N7000 o similar, de hecho, este es un favorito personal para esta aplicación. Puede comprar fácilmente este circuito en una placa de escape de varios proveedores de electrónica si no desea construirlo usted mismo. Para obtener más información sobre su funcionamiento, lea la nota de aplicación Philips AN97055 (PDF), que examina su uso en un bus I2C.

Puede haber una preocupación cuando primero necesita asegurarse de que los diferentes niveles lógicos estén interconectados de manera segura. ¿Mi Arduino de 5V dañará este sensor de 3.3V? Esperamos que después de leer este artículo tenga un poco más de confianza, y le hemos proporcionado lo suficiente para comprender un poco el tema. No nos hemos ocupado de todas las técnicas posibles, pero si lee algunas de las notas de solicitud agregadas y luego busca en la red el uso real, deberían llenar algunos vacíos.

  • Carl dice:

    Me gusta usar disparadores Schmitt (generalmente en inversores) para una traducción de 3.3V-> 5V, al menos cuando hay muchas líneas de E / S. Un solo chip sin otras partes puede manejar más de 6 líneas fácilmente. El alto voltaje mínimo aceptado de la entrada de 5V generalmente ingresa a la salida mínima de la parte de 3.3V.

    • Martín dice:

      Eso es bastante marginal si considera los peores casos. Prefiero usar piezas HCT, p. Ej. HCT08 (puerta AND) o 74HCT244 o 74HCT245.

      • Paul dice:

        Necesitaba conectar mi BBB (3V3) y tomé algunos 74LS240 (Código de datos 8549) de una pieza de 20 años. Sirve como un encanto para mejorar las salidas de BB (Machinekit) para almacenar en búfer las opto-entradas de los motores paso a paso (DQ543MA).

        Para agregar algo corto a una historia larga y aburrida. Son posibles muchas combinaciones. Algunos funcionan bien, otros no siempre controlan los niveles de voltaje mientras interactúan entre diferentes tecnologías (incluso si son eléctricas del mismo suministro).

  • k-ww dice:

    Me estandaricé en el TXS0104E para el cambio de nivel: con 4 interruptores de nivel en un paquete, me permite conectar dispositivos SPI de 3.3V a buses de 5V sin problemas. Yo uso MCP1702-3302 también como regulador de 3.3V.

    • Traumflug dice:

      SPI no tiene pines bidireccionales, por lo que los divisores de voltaje para MOSI, CLK y SS / CS y nada para MISO son suficientes. Hágalo simple, señor.

      • Javier Armenta. dice:

        Mis pensamientos son correctos.

      • VÁLIDO dice:

        Hola,
        Tengo un comunicador SPI entre el sensor de 3.3V y el PIC18 de 5V, entiendo que necesito divisores de voltaje para las 3 líneas MOSI, CLK y SS, quiero saber si necesito retiro o desplazamiento en MISO, CC Line?

  • Shanee Vanstone dice:

    Interesante. Pero no creo que funcionen si las piezas no toleran 5v. Probablemente valga la pena mencionarlo. ¿Existe otra forma sencilla de trabajar con piezas no tolerantes a 5v? (No creo que el ESP32 / ESP8266 tolera 5v).

    • V dice:

      ¿Has siquiera leído el artículo?

    • doblar dice:

      Creo que vi en alguna parte que el ESP8266 tolera 5V si lo opera desde una fuente de 3.3V.

      • Aktela dice:

        De acuerdo con los resultados de mi prueba, es mejor alimentar el ESP8266 desde un poco más de 3V3 para que sea realmente rocoso y tolerante a 5V. Experimenté algunos fallos de disparo al ejecutar un 3V3 en un entorno de 5V; probablemente el suministro de 3V3 no fue lo suficientemente fuerte y disminuyó ligeramente durante la transmisión. Un regulador 3v6 salvó el proyecto y ya no quemó GPIO.

  • Runa dice:

    Para algunos circuitos, es suficiente asegurarse de que no haya suficiente corriente para dañar la entrada.
    Para esto, a menudo utilicé una resistencia en línea de 100 o 200 ohmios cuando conecté una salida de 5 V a una entrada de 3,3 V.

    • ROBÓ dice:

      El factor aquí es que el dispositivo de 3.3v tiene una abrazadera de diodo en las entradas. Si es así, puede usar una resistencia de manera segura para limitar la corriente. Si no tiene una pinza de diodo en las entradas, entonces está en riesgo.

    • Martín dice:

      Sí, pero 100 o 200 Ohm dan una corriente muy alta, aumentaría la resistencia

    • fonz dice:

      solo asegúrate de tener suficiente carga en el 3.3V

  • mímica dice:

    En la imagen “Circuito de paso de nivel lógico de diodo. De la nota de programa de Microchip DS41285A (PDF).”, ¿Cuál es la función de D1?
    Leí la hoja de datos, pero eso no lo explica.

    • LonC dice:

      Creo que crea una ruta de corriente alternativa para que la corriente de + 5V a través de R1 no necesite fluir a través de su salida de 3.3V (y tal vez no existía ninguno de los diodos de protección de salida).

      • mímica dice:

        gracias por eso.
        Evita que el voltaje en el lado del ánodo (“caliente”) de D1 supere los 3,3 V + VD1.
        Por lo tanto, la salida del componente de 3,3 V no siempre superará los 3,3 V + VD1 – VD2 = 3,3 V.

    • Matthew Curlis dice:

      Si lee la hoja de datos con atención, verá que este diodo, D1, produce un alto voltaje de 4.0v en el caso de que la salida de 3.3v sea una parte ttl que tenga una salida alta de aproximadamente 2.4v. ¡Yo también me tomé un tiempo!

    • MinorHavoc dice:

      Creo que evita la entrada (+ 5V – caída del diodo D2)> 3.3V en la salida de 3.3V. D1 asegura que la salida de 3.3V ve el máximo (3.3V + caída de diodo D1 – caída de diodo D2) = 3.3V. Mientras tanto, se ve la entrada de 5V (caída de diodo 3.3V + D1) cuando la salida de 3.3V es alta, que es menor que 5V pero mayor que Vih_min.

      • mímica dice:

        Gracias

    • Matthew Curlis dice:

      Si está cerca de la hoja de datos, D1 es en realidad para el caso en el que la parte de 3.3v es TTL (que tiene un alto nivel de 2.4v). En este caso, D1 llevará el nivel de entrada a la parte de 5v a alrededor de 4.0V. ¡Yo también me tomé un tiempo!

    • Carl Smith dice:

      Creo que la corriente fluye desde el suministro de 5 V a través de R1 y D1 al suministro de 3,3 V, lo que provoca la caída habitual de 0,7 V a través de D1. Esto se suma al suministro de 3.3V, creando un voltaje de alrededor de 4V en la unión de D1 y R1. Esto es lo suficientemente alto para ser lógico para el dispositivo de 5V. Y el dispositivo de 3.3V todavía puede bajar alrededor de 1V, que es lo suficientemente bajo como para que el dispositivo de 5V parezca bajo.

  • Keith dice:

    @mimo. Mi mejor razonamiento sobre D1: si quitó D1 cuando la salida de 3.3V es baja, se conecta a través de D2 a una fuente de voltaje de 3.3V, lo que conducirá la salida a 3.3V – ~ 0.6V (caída de diodo). El suministro de 5 V tiene una resistencia limitadora de corriente (R1) para hacer frente a este problema en su pata.

    Curiosamente, este circuito parece requerir la salida de 3.3V para funcionar como un sumidero de corriente. Si fuera una salida Z alta (en realidad, un circuito abierto), D2 no se “encendería” y la entrada de 5V solo flotaría alto todo el tiempo.

  • Tomasz Wasiluk dice:

    Con respecto a los interruptores de nivel de cerveza domésticos, es necesario repetir que no funcionarán mucho más allá de una determinada frecuencia de señal (baja). Obtuve resultados mixtos con controladores de WS2812b, por ejemplo.

    • barg dice:

      Los WS2812b son bastardos desagradables y de alta frecuencia en comparación con cualquier otro aficionado de “nivel de entrada”.

      El alternador de nivel de estilo ‘mosfet y dos resistencias’ debería funcionar si reduce los valores de las resistencias (4k7 en lugar de 10k, supongo), pero luego la salida de corriente de fuente y sumidero del microcontrolador / SoC aumenta, tal vez incluso más allá especificaciones.

      Una alternativa utiliza un icono de búfer de alta velocidad.

      • Stu dice:

        Tuve mucho éxito enviando ws2812 a 4.2v en lugar de 5v. Mi raspberry pi zero conduce felizmente una matriz de ellos sin ningún tipo de conversión de nivel, con una caída completamente aceptable del brillo máximo, sin retinas quemadas, ganancias obvias en la longevidad de la batería, sin problemas, sin problemas.

        Antes de eso, usé un pequeño convertidor de nivel Mosfet, funciona bien con el ws2812.

        • alemán dice:

          Conduzco mis hilos ws2812b directamente desde 3.3v esp-12 con 5v separados para la fuente de alimentación. Nunca tuve ningún problema.

          • David Pye dice:

            Realmente es para mi. No hay cosas obvias.

      • cuerda de arranque dice:

        Solo como un consejo para usar el alternador MOSFET de dos vías, asegúrese de que el umbral del transistor Vgs máximo sea 2.5V o menos (3.3v-0.7v). El Philips AN sugiere piezas con 2 V o menos, para garantizar una buena ventaja. Pasar a un voltaje más bajo, por ejemplo, 1.8v, requeriría un umbral aún más bajo de 1.1v.

  • Congreso Nacional Africano dice:

    Si su introducción a la electrónica digital llegó hace más años de los que le gustaría mencionar, es probable que lo haya hecho con lógica TTL de 5V.

    ¡Cúlpalo! De hecho, siempre pensé que todas estas menciones de “3.3v” eran sólo de forma encubierta con una señal “1” de baja potencia.

  • Kaz dice:

    Otra forma de conectar 3.3V con 5V CMOS, que es realmente un poco difícil, es si tiene control sobre las fuentes de alimentación. Algunos chips de 5V pueden operar hasta 4.5V, y el 70% de 4.5V es 3.15V. Por el contrario, muchos dispositivos de 3.3V pueden operar hasta 3.6V. Entonces, al levantar ligeramente el suministro de 3.3V y soltar ligeramente el suministro de 5V, a veces puede reproducirlos un poco más y aún estar en las especificaciones. No recomendaría usar 3.6V y 4.5V a menos que tenga un control realmente preciso sobre los suministros; tal vez apuntar a 3.5V y 4.8V para tener algo de tiempo libre sería lo mejor (porque algunas partes de 5V solo bajan a 4.75V).
    Tenga en cuenta que no recomiendo esto en general, pero si se le permite controlar todos los suministros en el sistema, y ​​son ajustables, e intenta ahorrar algunos dólares … podría funcionar.

    • ROBÓ dice:

      Vi la propuesta de aumentar el suministro 3v3 a 3v6 en al menos una nota de aplicación oficial de fábrica. Si tiene una broma sobre su proveedor de repuestos favorito, encontrará que los LDO 3v6 extremadamente precisos son comunes incluso ahora.

  • ROBÓ dice:

    Algunos consejos –

    Me gusta hacer computadoras retro, por lo que un cambio de nivel suele ser un problema.

    CMOS (sustrato de óxido de metal complementario *) es una tecnología de invención y esta tecnología no dicta específicamente los niveles de voltaje de entrada o salida. Sin embargo, existen estándares * comunes *. El problema es que algunos chips CMOS funcionan específicamente con niveles de voltaje TTL. Por tanto, es mejor utilizar términos como TTL LVTTL LVC, etc.

    Se pueden usar resistencias en serie de limitación de corriente cuidadosamente seleccionadas entre la salida TTL (5v) y la entrada 3v3 no tolerante a 5v si el dispositivo 3v3 tiene una abrazadera de diodo en los pines de E / S y aceptará voltajes de entrada 0v6 sobre Vcc (la mayoría lo hace).

    El margen de ruido entre la conducción del dispositivo LVTTL 3v3 con el dispositivo TTL 5v es muy pequeño. Afortunadamente, puede comprar reguladores de voltaje muy precisos (LDO de línea) que tienen exactamente una salida de 3v6. La mayoría de los chips 3v3 están configurados para operar entre 3v0 y 3v6, por lo que operarlos a 3v6 aumentará el nivel de ruido y, con suerte, tendrá un funcionamiento confiable para las partes que generalmente no funcionan bien.

    Cuando está bloqueado, recuerde que tres diodos caerán 1v8

    Incluso los chips tolerantes de 5v son difíciles de conseguir con cosas como FPGA y CPLD, pero algunos hacen excelentes interruptores de nivel mientras siguen realizando la función lógica.

    Un transistor humilde con una resistencia en serie básica y una resistencia de carga de colector (levantada) cambiará de 3v3 a 5v, pero la lógica se invierte, simplemente arréglelo en el software.

    Otro gran artículo de [Jenny List], ¡Gracias!

    Dejo leer las notas enlazadas. Siempre es bueno aprender cosas nuevas.

  • Sr. Nombre Requerido dice:

    Estimado La-Tecnologia, felicite a su artista residente. La imagen de este artículo me recordó a otro gran artista técnico, Robert Tinney, que solía hacer esas fabulosas portadas de la revista BYTE. Que incluso hice esta comparación, entonces me di cuenta de lo importante que es la percepción de su artista sobre el tema. Y gracias Jenny también, ¡ambos sigan con el buen trabajo!

    • ROBÓ dice:

      +1

    • bistec dice:

      +2

    • Elliot Williams dice:

      ¡Nos encanta el trabajo de Joe! Es extremadamente satisfactorio poner mucho trabajo en una pieza alargada y luego se pone algo de arte dulce encima. Nos hace lucir tan bien.

      Ah, y por cierto: Hace unos meses, por demanda popular, comenzamos a usar las versiones de resolución original del banner en el banner. ¡Haz clic derecho (o lo que sea) y disfruta!

  • Alan dice:

    Esto encaja bien con artículos sobre FPGA. Por supuesto, el siguiente paso es seguir un artículo sobre 2.4V, 1.8V, etc.

    Cuando alcanzas las cosas lógicas de 1,2 V, pueden volverse complicadas.

  • LevelShifter dice:

    Por aproximadamente dólar USD: Caracterización de modulación de interruptor de nivel bidireccional barata (TE291)
    http://www.whiskeytangohotel.com/2016/12/low-cost-bi-directional-level-shift.html

  • RoGeorge dice:

    Otro alternador de nivel bidireccional, pero con transistores bipolares: http://www.hagtech.com/pdf/iic.pdf
    también se muestra en esta página https://playground.arduino.cc/Main/I2CBi-directionalLevelShifter

  • Paul Price dice:

    Este tema es importante para el mundo de los juegos retro; algunos afirman que los cartuchos de reproducción de China usan chips de 3.3v cuando el carro original usaba chips de 5v. Luego afirman que esto podría causar daños a la consola si no se realiza un cambio de nivel correctamente.

    Sin embargo, me parece que si algo sale mal, sería el carrito con chips de 3.3v, no la consola con chips de 5v. ¿Alguna idea aquí? ¿Alguna forma de decirlo, mirando si una placa se ha conectado con un interruptor de nivel adecuado para un chip de 3.3v que interactúa con una consola de 5v?

  • afluencia dice:

    Para encenderlo, ¿qué pasa con una resistencia NPN 2222 con 5V en C, una señal de 3.3v con 100kohm a tierra en B y la 5V requiere un dispositivo en E?

    • Andybiker dice:

      Esto no funcionará.
      Veo su pensamiento, pero un transistor NPN necesita un voltaje 0.6v (aproximadamente) más alto en la base que un emisor para conducir.
      Esto daría como resultado aproximadamente 2,6 voltios en el transmisor.

  • Edy dice:

    Hola, el enlace de los consejos y trucos de Microchip está roto. Encontré el enlace del microchip original:
    http://ww1.microchip.com/downloads/en/DeviceDoc/chapter%208.pdf

    • Mella dice:

      Gracias por actualizar este artículo antiguo (pero útil y de alto rango en las búsquedas) 🙂

  • Tokafondo dice:

    Realmente no sé nada sobre electrónica, pero sí aprender. Lo que me gustaría saber es cómo convertir un circuito completo (simple) diseñado para operar de 5v a 3.3v.

    Sigo esquemas para clonar SBC de WDC, la compañía que todavía produce la familia de chips 65xx. Diseñaron sus SBC para que funcionen con puertos USB, a 5V. Pero quiero convertir el SBC a 3.3v.

    ¿Qué cambios necesito hacer en los componentes para ajustarlos a 3.3v?

    No le estoy pidiendo a nadie que me dé los nuevos valores exactos para resistencias y condensadores, sino cómo calcular estos nuevos valores.

    Gracias.

  • TDHofstetter dice:

    ¿Evitar? ¿Estás seguro de que tienes esta palabra aquí?

Deja una respuesta

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