Dies ist das erste Mal, dass ich hier poste, also hoffe ich, dass ich es richtig mache.
Ich habe eine Schaltung gebaut, die einen USB-verbundenen FTDI-UMFT240XA verwendet. http://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_UMFT240XA.pdf
Grundsätzlich sende ich 1-Byte-Informationspakete an den Controller, die dann zum Ein- und Ausschalten von Transistoren verwendet werden, die dann Relais ein- und ausschalten. Ich verwende die DATA I / O-Pins, um die Logiksignale an die Transistoren zu senden.
Das Problem, das ich habe, ist, dass, wenn ich das Relais mehrmals über die Schaltung ein- und ausschalte, ich feststelle, dass sich der Mikrocontroller hin und wieder einfach abschaltet. Dies scheint nur zu passieren, wenn ich das Relais in die Schaltung einführe. LEDs kann ich ohne Probleme ein- und ausschalten.
Ich habe sowohl NPN- als auch N-Kanal-MOSFET-Transistoren ausprobiert und beide zeigen das gleiche Verhalten. Ich habe es wie folgt angeschlossen:
Gate (oder Basis) eines Transistors, der an ein digitales Logiksignal angeschlossen ist (DATA 0, ein 3,3-V-Signal)
Source (oder Emitter) des Transistors an Masse angeschlossen
Drain (oder Kollektor) des Transistors, der parallel mit einer Freilaufdiode an das Relais angeschlossen ist, die beide an positive Spannung (+5 V) angeschlossen sind
Das Gate hat auch einen 1M Pulldown-Widerstand, der an Masse angeschlossen ist.
Zuerst dachte ich, dass der USB-Bus vielleicht nicht genug Strom für die Schaltung liefern kann und deshalb abgeschaltet wird, aber das scheint nicht der Fall zu sein, da ich die beiden Lötjumper auf dem Chip entfernt und angeschlossen habe externe Stromversorgung (unter Verwendung eines 5-V- und 3,3-V-Reglers anstelle der USB-Stromversorgung, wie in der Konfiguration mit eigener Stromversorgung im obigen PDF beschrieben)
Der EINZIGE Weg, wie ich dieses Sterben des Mikrocontrollers zu vermeiden scheine, besteht darin, die DATA 0 mit einer Diode und nicht mit einem geraden Draht oder einem Widerstand mit dem Gate zu verbinden. Das Problem dabei ist, dass es beim Anschließen der Schaltung so lange dauert, bis die Spannung am Gate weit genug abfällt, um den Transistor wieder auszuschalten. (ca. 5-7 Sekunden).
Übersehe ich hier etwas? Verwende ich eine dieser Komponenten falsch?
BEARBEITEN:
Ich habe keinen Schaltplan, aber hier ist ein Blick auf das Steckbrett mit einigen Beschriftungen.
Wie Matt sagt, ist das erste, was auffällt, dass mehr Kapazität benötigt wird.
Breadboards sind schrecklich für Streuinduktivität/Kapazität, also müssen Sie wirklich versuchen, die Drähte so kurz wie möglich zu halten, empfindliche Signale von höheren Strömen/Spannungen/schnell wechselnden Signalen fernzuhalten und viel Bypass- und Bulk-Kapazität um die Schaltung herum hinzuzufügen.
Ich würde mit ein paar > 100 uF-Elektrolyten auf jeder Stromschiene und in der Nähe des FET beginnen, mit einigen 100 nF oder höheren Keramikkappen an den Stromanschlüssen der ICs.
Eine andere Sache, die man sich ansehen sollte, ist die Verwendung einer separaten Schiene für das Relais und die getrennte Verlegung der Masserückführung von der Masse des uC. Natürlich müssen sie miteinander verbunden werden, aber Sie können sicherstellen, dass der Hochstromrückfluss auf diese Weise nicht durch die Masse der uC-Platine fließt.
Nach gründlichen Tests habe ich entschieden, dass die folgende Änderung dieses Problem behoben hat:
Verwenden Sie das EEPROM-Flash-Dienstprogramm für den Chip (erhältlich von ftdichip.com), um den Stromausgang der DATA-Pins von 4 mA auf 8 mA zu erhöhen.
Ich glaube, dass es Zeiten gab, in denen mehr als 4 mA vom Gate / der Basis des MOSFET (oder NPN BJT) entnommen wurden, was dazu führte, dass der Chip defensiv reagierte, indem er die DATA-Pins abschaltete.
Der Chip verlor nie wirklich die USB-Konnektivität, also war der größte Teil des Chips noch eingeschaltet, aber die DATA-Pins selbst waren wegen der aktuellen Überziehung abgeschaltet worden.
Alle Mikrocontroller oder andere programmierbare Steuerungen sind sehr gute sinkende Quellen, sie können nicht viel Strom liefern, was beim Ansteuern von Komponenten wie einem Relais unerlässlich ist. Verwenden Sie aktuelle Treiber wie ULN2003 oder ICs, die solche Lasten zulassen können.
Matt Jung
Harvtronix
Tut
Tut
Harvtronix
Harvtronix
Tut
Tut