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.
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.
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.
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.
mate joven
Harvtronix
Gesto de desaprobación
Gesto de desaprobación
Harvtronix
Harvtronix
Gesto de desaprobación
Gesto de desaprobación