Para un cambio de voltaje en una línea serie, estoy usando un diseño de cambio de nivel común que usa un FET (BSS138 en este caso) como tal:
Tengodosdeestos:unoparaRXyotroparaTX.DeboagregarqueestoyusandoestoporquetambiéntengounpardelíneasI2Cypuedeobtener4deestoscircuitosenuntableropequeñode
Cuando estaba conectando esto al dispositivo de otra persona y la advertencia habitual sobre "¿RX desde qué punto de vista?" se aplica, agregué la resistencia 1K a la derecha para evitar errores en el cortocircuito.
En una salida adecuada de inserción y extracción, esto debería estar bien, especialmente a 9600 baudios. Sin embargo, con los FETs esto no funciona. Pensé: tal vez cuando el lado de 3,3 V tira hacia abajo, el diodo del cuerpo no es efectivo para sujetar. Pero tenía un GPS TX en el lado de 3.3V que enviaba al lado de 1.8V RX y eso parecía funcionar bien, lo cual no es lo que esperaba. Sin embargo, las comunicaciones con un micro PIC fallaron, probablemente en el lado de TX (1.8V a 3.3V). Cuando el lado de 1.8V bajó, el lado de 3.3V pareció tirar solo hasta la mitad.
La eliminación de las resistencias de 1 k solucionó el problema y el circuito tradujo correctamente las comunicaciones serie. Pero estoy confundido en cuanto a por qué el 1K causó el problema, ¿cuáles son las dinámicas del problema?
Edit: para explicar por qué estoy considerando continuar usando este sistema, con mucho gusto reemplazaría todo esto con un TXS0108 que hace un cambio de nivel de empuje-extracción y drenaje abierto para 8 líneas en un solo dispositivo. Pero ese dispositivo no parece dar aislamiento Vcc (si, por ejemplo, 1.8 o 3.3 está desactivado), a diferencia del TXB0108, que explícitamente dice que lo hace en la hoja de datos. Así que quise usar dos de los circuitos FET "back-to-back" para dar el aislamiento.