Conectar una salida digital de 3v a Arduino usando un cambio de nivel bidireccional (mosfet)

0

Tengo una salida digital de un dispositivo de 3.3v que me gustaría hacer tolerante a 5v, es decir, poder conectarlo a una MCU de 3.3v o de 5v.

Técnicamente podría conectar la salida directamente al Arduino Uno (o una MCU de 3.3v) sin ningún problema. El problema con la salida es que el VOH mínimo es 3v, mientras que el VIH para el Arduino Uno es 3v, por lo que no hay margen para el error.

Así que tendré que cambiar esta salida hasta 5v (si es necesario). He considerado 3 opciones:

1) una parte como esta - MC74VHC1GT125 - haría el truco. 2) Use un optoacoplador, como el HCPL-181 3) Use un cambiador de nivel bidireccional con un MOSFET y 2 resistencias, como en este Philips AN97055 nota

  1. Toma una amplia variedad de voltajes de entrada (3v en nuestro caso), y los traduce al voltaje de referencia Vcc (que puede ser 3.3v o 5v dependiendo de nuestra MCU de elección)

  2. La salida del optoacoplador puede vincularse a la tensión de referencia Vcc, por lo que funcionará con 3.3v o 5v MCU

  3. El lado de salida de este (conectado a la entrada de MCU) puede elevarse a la tensión de referencia Vcc, por lo que nuevamente es tolerante a 3.3v o 5v MCU y se elevará al nivel apropiado

3 se ve muy atractivo ya que ya estoy usando un par de MOSFET (BSS138) en mi diseño (para las líneas I2C), para simplificar la lista de materiales.

Sin embargo, veo que parece que se usa principalmente para configuraciones de drenaje / colector abierto como pines I2C; un pin de salida digital no es un tipo de colector / drenaje abierto.

Mi pregunta es: ¿se puede usar el cambiador de nivel bidireccional que se muestra en la nota de Philips anterior en el caso unidireccional de un pin de salida digital sin efectos negativos?

Si es así, ¿qué dice, el MC74VHC1GT125 u otro IC de cambio de nivel diseñado específicamente, ofrecen ventajas en relación con este enfoque? ¿Y cómo se compara el enfoque del optoacoplador?

He rastreado Internet bastante, ¡pero me quedan muchas ganas de más claridad y comprensión!

Gracias! Sridhar

    

1 respuesta

1

El cambiador de nivel MOSFET bidireccional detecta automáticamente cuando se tira de un lado hacia abajo y luego el otro lado hacia abajo. Por lo tanto, seguirá funcionando si solo se tira de un lado hacia abajo.

Las resistencias pull-up son necesarias para obtener un nivel alto definido cuando ningún dispositivo está tirando de la línea hacia abajo. Cuando tiene una salida de empujar / tirar, no necesita la resistencia en ese lado.

Una resistencia de pull-up se combina con cualquier capacitancia parásita en el circuito para formar un filtro de paso bajo RC, es decir, el borde ascendente de la señal de salida se ralentiza. Por lo general, esto todavía no es un problema a los 100 kHz de I²C, pero podría llegar a serlo a frecuencias más altas.

El MC74VHC1GT125, o los desplazadores de nivel reales como el SN74LVC1T45, tienen salidas push / pull, para que puedan alcanzar frecuencias más altas.

Se utiliza un optoacoplador si necesita aislamiento galvánico. Cuando conectas los terrenos de los dos dispositivos juntos, no es necesario (pero aún funcionaría).

    
respondido por el CL.

Lea otras preguntas en las etiquetas