Protección de señal inversa para dos dispositivos con diferentes niveles de voltaje

0

Quiero diseñar un circuito que sea capaz de bloquear las señales de voltaje inverso pero que permita que pasen las señales de voltaje directo.

El problema original y la solución:

Estaba diseñando una interfaz Arduino a ESP8266 con un par de pines Arduino como un puerto serie. Para que Arduino TX enviara datos al ESP8266 RX, el circuito era un divisor resistivo muy simple para dividir 5V a 3.3V, que funcionó bien. El problema vino cuando necesitaba hacer lo mismo con el pin TX del ESP8266. Como el ESP8266 opera con niveles de voltaje de 3.3V, la alimentación de 5V por error en el ESP8266 ciertamente significaría un desastre. Por lo tanto, estaba tratando de encontrar una manera de permitir que la señal de 3.3V del ESP8266 pase a través de un pin Arduino IO sin distorsionarse o que su voltaje disminuya en una cantidad drástica mientras protege al ESP8266 en caso de que el usuario del Arduino cometa un error. y alimenta 5V en el ESP8266.

La solución que se me ocurrió originalmente era usar un diodo Schottky como el 1N5817, como se muestra en el siguiente esquema, para evitar que el pin Arduino IO vuelva a alimentarse al ESP8266:

El nuevo problema: En mis pruebas, resultó que el Arduino era completamente incapaz de recibir datos en serie del ESP8266, probablemente porque el nivel de voltaje era demasiado bajo. Si cortocircuito un cable a través de ese diodo, los datos en serie llegan sin problemas.

¿Hay alguna manera de evitar que la tensión vuelva de alimentación de un pin de 5V IO a un pin de 3.3V IO mientras se conserva el voltaje original cuando el lado de 3.3V está transmitiendo una señal al lado de 5V?

Algunos requisitos para la solución:

  • Los componentes utilizados no deben ser demasiado grandes, ya que el espacio de PCB es precioso
  • Preferiría componentes que se puedan vender a mano (por ejemplo, para resistencias, 1206 es un buen tamaño)
  • Prefiere los componentes SMD
pregunta Pan Ziyue

3 respuestas

1

Simple, y la puerta FET proporciona aislamiento:

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Jack Creasey
1

Use un convertidor de nivel lógico para estar seguro de cualquier ambigüedad y opción de interconexión más rápida. enlace Si este módulo es demasiado grande para su aplicación, entonces suelde directamente BSS138 según el esquema proporcionado en el enlace.

    
respondido por el Prasan Dutt
0

¿Por qué no esto?

R1mantienelacorrientealabasedeNPNenunacantidadaceptableparaevitaruncortocircuito.Debeseralgoasícomo1k.Estoesparaactivareltransistorbasadoenlaserie.

R2mantienelacorrientedelabasedelPNPenunacantidadaceptable.EstoesparaactivarelPNPbasadoenelNPNydebeestaralrededorde1k.

R3essacarelPNPaltocuandoestáapagado.Estoahorraunpocodepoder,peronoesesencial.Tambiéntiradelniveldevoltajeenlasalidaunpocomásbajo.Deberíaseralrededorde10k.

R4bajalasalidacuandolaserieesbajaparaevitarlaflotación.Deberíaestaralrededorde1k.

R5esencasodequeaccidentalmenteconfigureelpinarduinoensalidaybajo.Deberíaestaralrededorde1k.

Parasermásseguro,puedeusarlosMOSFETequivalentesenlugardeBJTcomolossiguientes.

Esta vez, R3 levanta el mosquito P para evitar que flote. Debería estar alrededor de 1k.

R4 todavía tiene el mismo propósito.

R5 hace lo mismo.

R6 asegura que la puerta esté baja. No del todo crucial. Debería ser alrededor de 1k a 10k.

    
respondido por el Bradman175

Lea otras preguntas en las etiquetas