Problema al cambiar el relé con transistor del microcontrolador

Es la primera vez que escribo aquí, así que espero hacerlo correctamente.

Construí un circuito que usa un FTDI-UMFT240XA conectado por USB. http://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_UMFT240XA.pdf

Básicamente, estoy enviando paquetes de información de 1 byte al controlador, que luego se usan para encender y apagar transistores, que luego encenderán y apagarán los relés. Estoy usando los pines DATA I/O para enviar las señales lógicas a los transistores.

El problema que tengo es que cuando enciendo y apago el relé a través del circuito varias veces, encuentro que de vez en cuando, el microcontrolador simplemente se apaga. Esto solo parece suceder cuando introduzco el relé en el circuito. Puedo encender y apagar los LED sin problema.

He probado transistores MOSFET NPN y N-Channel y ambos producen el mismo comportamiento. Lo tengo conectado de la siguiente manera:

  • Puerta (o base) del transistor conectado a la señal lógica digital (DATOS 0, una señal de 3,3 V)

  • Fuente (o emisor) del transistor conectado a tierra

  • Drenaje (o colector) del transistor conectado al relé en paralelo con un diodo flyback, ambos conectados a voltaje positivo (+5V)

La puerta también tiene una resistencia desplegable de 1M conectada a tierra.

Al principio pensé que tal vez el bus USB no podía suministrar suficiente energía al circuito y, por lo tanto, se estaba apagando, sin embargo, este no parece ser el caso, ya que quité los dos puentes de soldadura en el chip y conecté un fuente de alimentación externa (usando un regulador de 5v y 3.3v en lugar de la alimentación USB, como se describe en la configuración autoalimentada en el pdf anterior)

Parece que la ÚNICA forma en que puedo evitar esta muerte del microcontrolador es conectando el DATA 0 a la puerta con un diodo, en lugar de un cable recto o una resistencia. El problema con esto es que al conectar el circuito de esta manera, el voltaje en la puerta tarda mucho tiempo en caer lo suficiente como para apagar el transistor. (alrededor de 5-7 segundos).

¿Me estoy perdiendo de algo? ¿Estoy usando uno de estos componentes incorrectamente?

EDITAR:

No tengo un esquema, pero aquí hay un vistazo a la placa de prueba con algunas etiquetas.imagen de la protoboard

¿Está el micro alimentado por la misma fuente de 5 V que los relés? Y cuando haga preguntas aquí, publique esquemas. La intuición dice que agregue más capacitancia a los pines de micro alimentación.
Sí, lo es. (más explicación) El microcontrolador requiere un suministro de 5v y 3.3v (normalmente desde USB, pero se puede cambiar a una fuente externa para proporcionar más corriente). El regulador de 5v que estoy usando alimenta los relés y el propio micro. Además, el regulador de 3,3 V proporciona el suministro de 3,3 V para el chip y el voltaje de referencia para los pines DATA.
Su imagen parece correcta, pero tiene Drenaje y Fuente mezclados en su descripción. Su descripción debe ser: "Fuente (o emisor) del transistor conectado a tierra. Drenaje (o colector) del transistor conectado al relé...". Además, si usa un transistor NPN, necesita una resistencia en serie desde la señal lógica digital hasta la base.
Puede que solo sea la imagen, pero la resistencia desplegable de 10K parece de 10 ohmios. ¿Puedes confirmar que realmente son 10K? También puede considerar un MOSFET con un Vgs_on más bajo... Mire la Figura 3 en la hoja de datos para NTD4858N
@Tut ¡Gracias por los comentarios! Me confundí algunas cosas (en términos de redacción de la pregunta) que ahora he corregido... Conecté la fuente y el desagüe correctamente, pero las escribí mal en la pregunta. Le di la vuelta a esos. La resistencia desplegable es en realidad de 1 M Ohmios (marrón, negro, verde). ¿Es eso demasiado? ¿O no existe tal cosa cuando se habla de un menú desplegable?
@Tut Además, eché un vistazo más de cerca a la figura 3 y veo de lo que estás hablando. Al elegir el MOSFET, miré principalmente el voltaje de umbral de puerta, que en este caso es un máximo de 2,5 V. ¿Debería preocuparme el mayor RDS (encendido) implícito en la figura 3? No estoy seguro de qué impacto tiene esto en el rendimiento del FET.
Veo en los esquemas del módulo que hay resistencias pull-up de 47K en las líneas de datos, por esta razón, un pull-down de 1M tendrá poco efecto. La combinación pull-up/pull-down formará un divisor de tensión. 10K es lo más alto que deberías ir. El menú desplegable es principalmente para garantizar que el MOSFET esté apagado en el reinicio/encendido donde lo más probable es que el pin se encienda como una entrada de alta impedancia.
Con respecto al MOSFET... Los umbrales de puerta de FET pueden variar mucho. Las cifras en la hoja de datos son valores típicos, pero pueden ser peores. Para un circuito de 3,3 V, es especialmente importante elegir uno con un umbral bajo. Un dispositivo a considerar es IRLML2502 , pero debe leer la hoja de datos para determinar su idoneidad. La parte que tienes puede estar bien para un proyecto único... siempre y cuando funcione y no se caliente demasiado.

Respuestas (3)

Como dice Matt, lo primero que salta a la vista es que se necesita más capacitancia.

Las placas de prueba son terribles para la inductancia/capacitancia perdida, por lo que realmente debe tratar de mantener los cables lo más cortos posible, mantener las señales sensibles alejadas de las señales de mayor corriente/voltaje/cambio rápido, y agregar suficiente derivación y capacitancia a granel alrededor del circuito.

Comenzaría con un par de electrolíticos de >100uF en cada riel de alimentación y cerca del FET, con algunas tapas de cerámica de 100nF o más en los pines de alimentación de los circuitos integrados.

Otra cosa a tener en cuenta es usar un riel separado para el relé y enrutar el retorno a tierra por separado del suelo del uC. Por supuesto, deben estar unidos, pero puede asegurarse de que el alto retorno de corriente no fluya a través de la tierra de la placa uC de esta manera.

+1 en las consideraciones de puesta a tierra. Con demasiada frecuencia se descuida la conexión a tierra adecuada.
Muchas gracias por la entrada. He hecho una reconstrucción parcial del circuito y he tomado en consideración sus comentarios.

Después de una prueba exhaustiva, he decidido que hacer el siguiente cambio ha solucionado este problema:

Use la utilidad flash EEPROM para el chip (disponible en ftdichip.com) para aumentar la salida actual de los pines de DATOS de 4 mA a 8 mA.

ingrese la descripción de la imagen aquí

Creo que hubo momentos en que la compuerta/base MOSFET (o NPN BJT) extrajo más de 4 mA, lo que provocó que el chip reaccionara defensivamente al cerrar los pines DATA.

El chip en realidad nunca perdió la conectividad USB, por lo que la mayor parte del chip todavía estaba encendido, pero los pines de DATOS se habían apagado debido al sobregiro actual.

Todos los microcontroladores o cualquier otro controlador programable son una muy buena fuente de sumidero, no pueden generar mucha corriente, lo cual es esencial al controlar componentes como un relé. Utilice controladores actuales como ULN2003 o IC que puedan permitir tales cargas.