Hay un principio importante a considerar aquí:
Incluso si están operando a la misma tensión nominal, debe preocuparse por conectar una a otra si están operando desde suministros separados.
Por lo general, los límites de voltaje de entrada de max max son Vdd a GND +/- 300mV. Cuando uno está apagado, eso significa que más de +/- 300 mV está violando la especificación máxima absoluta. Si la corriente no está limitada, pueden producirse daños, especialmente cuando la energía se vuelve a aplicar a la que está apagada.
Hay algunas maneras de lidiar con esto (en orden creciente de costo y rendimiento:
-
Una resistencia en serie (o divisor de voltaje) limitará la corriente y, si es un divisor, la bajará un poco.
-
Un BJT o MOSFET se puede usar con un pullup a la fuente respectiva. Los BJT son un poco más baratos y más resistentes.
-
Se puede usar un chip traductor de voltaje con suministros separados (ambos proveedores van al chip). Algunos chips aceptan voltajes de 1.8 a 5.5 en cualquier lado, u otros rangos amplios. Por ejemplo, 74AVCH2T45 traduce uno
bit en cada dirección desde cualquier suministro 0.8 ~ 3.6 a cualquier suministro 0.8 ~ 3.6 con tiempos de propagación < 10ns en cualquier dirección.
Para usar una resistencia, debe estar satisfecho con los retrasos de propagación relativamente lentos. Para el 3V- > 3.3V es casi seguro que solo se puede usar una resistencia en serie. La mayoría de los dispositivos de 3V son CMOS y la mayoría está satisfecha con 0.7Vdd o 2.31V para un suministro de 3.3V, por lo que aún tendría un margen de ruido de 600-700mV, que es suficiente.
Si la velocidad no es un problema, algo como 10K es bueno y limita la corriente de entrada a un nivel realmente seguro. Para ir al otro lado, puede que salgas con 10K de nuevo, pero sería mejor dividirlo en un 10% aproximadamente, por lo que 10K / 100K:
simular este circuito : esquema creado usando CircuitLab
En cuanto a la velocidad, si la carga capacitiva fuera bastante grande (por ejemplo, 100 pF) debido al cable o lo que sea, entonces la constante de tiempo sería 1us. Probablemente no sea un problema para un UART, al menos a 115k baudios o menos.
Por supuesto, los transistores invierten la señal y los resistores (y la mayoría de los traductores de voltaje) no lo hacen, pero eso lo sabías.