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
-
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)
-
La salida del optoacoplador puede vincularse a la tensión de referencia Vcc, por lo que funcionará con 3.3v o 5v MCU
-
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