¿Puedo usar un transistor 74HC14 o NPN en lugar de MOSFET como cambiador de nivel?

Tengo transistores SN74HC14 o BC548 / 2N2222 . Necesito un cambiador de nivel para I2C entre arduino y RPi. Aquí hay un circuito simple de Internet. ingrese la descripción de la imagen aquí

El problema es que no tengo ningún MOSFET. ¿Puedo usar transistores NPN en su lugar? ¿O es mejor que use 2 puertas 74HC14 NO como MOSFET único?

No es fácil, porque a diferencia de los circuitos de cambio de nivel normales, estas señales deben conducirse en ambas direcciones.

Respuestas (2)

Puedes intentar usar BJT. Esto es lo que he creado y funciona (aunque tiene algunas desventajas y es posible que no funcione en todos los casos):

ingrese la descripción de la imagen aquí

Fuente: http://playground.arduino.cc/Main/I2CBi-direccionalLevelShifter

¿Puedes decir qué desventajas? o en que casos no va a funcionar?
@a_vasilkov "Si una línea baja, una corriente de la base al emisor encenderá ese transistor. Pero el otro transistor perderá corriente de la base al colector. Esa corriente reducirá la corriente en el primer transistor ". de playground.arduino.cc/Main/I2CBi-direccionalLevelShifter

No, no puedes. El "truco" de usar MOSFET en este tipo de cambiador de nivel se basa en el hecho de que los MOSFET son dispositivos muy simétricos: para todos los propósitos prácticos, las terminales de fuente y drenaje pueden intercambiarse, y el dispositivo funciona de manera idéntica (ignorando los efectos del cuerpo). diodo).

Los BJT no tienen esta propiedad de simetría. Las uniones base-emisor y base-colector están hechas deliberadamente con diferentes propiedades, y aunque obtendrá algo de ganancia usándola en la dirección inversa, es mucho menor que usándola en la dirección correcta.

El 74HC14 tiene pines que son solo de entrada y solo de salida, y no se pueden usar para señales bidireccionales.

¿A qué te refieres con simétrico?
@Roh: ¿Qué parte de "fuente de intercambio y drenaje" no está clara?
¿Cómo un MOSFET puede funcionar a dos caras (simétrico)?