Conexión de un dispositivo de 5 V a una entrada de 3,3 V a través de una única resistencia

Hola, tengo una Raspberry Pi, que es un dispositivo de 3,3 V, y una pantalla Nextion, que es un dispositivo de 5 V. Están hablando por UART. Obviamente, el enlace UART RXD de RPi puede dañarse si se conecta directamente a la salida de la pantalla Nextion.

Hace mucho tiempo leí en alguna parte una explicación de que no es el voltaje lo que daña los dispositivos de menor voltaje sino la corriente que puede fluir. Y, por lo tanto, para pines de entrada como este, es suficiente colocar una resistencia lo suficientemente grande entre el pin de salida de 5V y el pin de entrada de 3.3V para limitar la corriente y terminar con eso. Sin divisores de resistencia, sin cambiadores de nivel, solo una resistencia. Tiene sentido para mí, pero no puedo encontrar el artículo original como referencia.

¿Cómo puedo saber qué valor debe tener una resistencia de este tipo?

ley de ohm, considerando la impedancia de cada lado sin ajuste. muchas veces las cargas son dinámicas, por lo que una sola resistencia no puede producir el mismo resultado en todos los modos de operación; por ejemplo: demasiado mientras está en modo de suspensión, no lo suficiente durante el arranque... una gran cantidad de dispositivos electrónicos de hobby de 3.3v dirigidos a novatos son tolerantes a 5v de todos modos, y es probable que su RX ya tenga una alta impedancia que reduciría el daño; el único problema es enhebrar la ventana de voltaje del disparador schitt.
@dan a lot of noob-targeted 3.3v hobby electronics are 5v tolerant anywaydescaradamente falso. Los cuatro más grandes, arduinos de 3.3V, esp8xxx, msp430 launchpads y raspberry pis carecen de entradas tolerantes a 5v.
Lo siento, pero personalmente no estoy de acuerdo con esto. Si un chip de 3,3 V dice que puede aceptar en sus pines un voltaje máximo de, digamos, 4 V, entonces, si aplica señales de 5 V, viola este requisito. La corriente no tiene nada que ver con eso. Y también pregúntese esto: si es tan simple, ¿por qué todos usan un nivel de cambio en lugar de una sola resistencia?
El truco de la resistencia única se puede usar, cuando se hace bien, para aplicar voltajes más altos a algunas series/generaciones de chips Atmel/AVR, como ellos mismos lo indican, y como tal definen el comportamiento. Esto luego se aplicó a un montón de Arduinos, y a través de una comprensión limitada de lo que es universal y lo que no lo es, ahora se ha convertido en la regla, por peligroso que sea.
@Asmyldof Oh, no sabía esto, pero me parece muy triste. Este es uno de los aspectos negativos del uso tan generalizado de Arduinos.
@Passerby: estoy hablando más de pantallas + "ladrillos" (electrónica dirigida a novatos) que de placas de desarrollo, y el caso del 8266 es discutible, al igual que "mucho", pero es un buen punto. toque

Respuestas (2)

Para entradas de alta impedancia, puede usar un divisor de voltaje para cambiar el nivel hacia abajo. Los requisitos son que los valores de la resistencia deben ser lo suficientemente grandes para no forzar demasiado la fuente y lo suficientemente pequeños para que la impedancia de la entrada no afecte el voltaje resultante.

Eso generalmente le brinda un amplio rango, al menos si no hay un pull-up o pull-down interno en esa entrada.

El enfoque de resistencia única puede funcionar con algunos componentes, pero en general significa que algunos transistores tendrán corriente fluyendo desde la base hasta el colector, lo que generalmente es una mala idea, incluso si es solo un poco. El circuito simplemente no está diseñado para este caso y, por lo tanto, lo que sucede no está definido.

Gracias por la explicación, entonces usaré un divisor de voltaje :)
También hay que tener en cuenta el consumo de corriente/energía y la velocidad del circuito (incluida la violación de un tiempo de transición mínimo posible del orden de 1 µs).

Originalmente di una respuesta que calculó una resistencia mínima segura para garantizar que la corriente en el pin no exceda los 10 mA. Sin embargo, como dice Simon anteriormente, permitir que un pin GPIO supere su voltaje nominal, independientemente de cuánto limite la corriente, es una mala idea. Consulte este artículo para obtener una explicación. En resumen, la protección interna contra sobrevoltaje es para transitorios y fallará si se aplica un sobrevoltaje o bajo voltaje sostenido, incluso con corrientes muy pequeñas. También es una tontería, ya que un divisor de voltaje es solo una resistencia adicional.

Finalmente, es posible que Nextion no sea tolerante a 3,3 V y que necesite un convertidor elevador para llevar el Rpi Tx de 3,3 V a 5 V. ver aquí para saber cómo hacer esto.

¡Yo no lo llamaría un "convertidor intensificador"! :-) Esto se refiere a otra cosa normalmente.