Warum führt das Berühren des Kondensators in meinem Abwärtsregler dazu, dass mein Mikrocontroller mit der Ausführung von Code beginnt?

Ich habe ein AC-betriebenes Mikrocontroller-Board. Ich verwende ein CUI-Modul (VSK-S15-48U), um 48 V DC aus der Wand zu erzeugen. Diese 48 V werden auf 3,3 V reduziert, um ein Mikro (atmega328-mmh) und einige andere Peripheriegeräte mit Strom zu versorgen (die 48 V werden für andere Dinge verwendet). Meine Stromverbindung ist ziemlich hässlich – ich habe ein Verlängerungskabel mit zwei Stiften genommen/das weibliche Ende abgeschnitten und einen Stecker gecrimpt, der zu meiner Platine passt (lesen Sie, dass die Verbindung wahrscheinlich hässlich ist und ich definitiv einige Transienten bekomme, wenn ich sie einstecke ). Die Netzteile (48V und 3,3V) sehen wirklich schön/sauber aus und es gibt keine Schwingungen.

Zur Vereinfachung/Prototyping verwende ich die Arduino-IDE. Ich habe die Datei avrdude.conf so geändert, dass ich den internen RC-Oszillator mit 8 MHz verwende. Ich kann das Board ohne Probleme programmieren. Ich bemerke jedoch, dass der Mikrocontroller beim ersten Anschließen der Platine an die Wand gemauert zu sein scheint: Eine Test-LED blinkt / leuchtet nicht, eine andere I / OI-Verwendung scheint irgendwo hochgezogen zu sein, und meine I2C-Leitungen scheinen tristated zu sein (sie sind hochgezogen, also lese ich eine hohe Spannung). Ich habe versucht, das Mikro manuell mit einem Druckknopf zurückzusetzen, aber es scheint, als hätte es keine Wirkung. Anfangs sah es so aus, als würde es "zufällig" anfangen zu arbeiten und die FW wie erwartet ausgeführt werden. Danach funktionierte das Neuprogrammieren / Zurücksetzen des Mikros wie erwartet, bis ich den Stecker aus der Wand zog und wieder einsteckte.

Anfangs vermutete ich eine kalte Lötstelle -- durch Klopfen auf die Kappe habe ich sie elektrisch verbunden. Umlöten hat nicht geholfen.

Mit einem Oszilloskop sehen die 3,3 V gut aus, nachdem das Gerät an die Wand angeschlossen wurde - ich sehe nichts, was darauf hindeutet, dass etwas damit nicht stimmt. Der Power-Good-Ausgang des Buck-Reglers zeigt an, dass die 3,3 V in Ordnung sind. Wenn ich auf die Bypass-Kappe tippe, kann ich sehen, wie die 3,3 V für ~ 40 ms auf ~ 2,2 V herunterwackeln. Die Power-Good-Ausgabe fällt entsprechend ab und dann wacht das Mikro manchmal auf und beschließt, den Code auszuführen (gelegentlich sind ein paar Taps erforderlich).

Ich dachte, dass vielleicht die Slope-Rate von vcc das Mikro irgendwie verrückt spielen lässt. Die 48 V steigt in 10 ms und die 3,3 in etwa 2,5 ms an. Das Datenblatt erfordert zwischen 0,01 und 10 V/mS, also bin ich da im Klaren.

Ich habe noch etwas mehr Debugging zu tun, aber an diesem Punkt kann ich keine logische Erklärung dafür finden, warum das Mikro anfangs nicht angeht und warum ich auf die Rückkopplungskappe tippe (und daher den Buck-Ausgang etwas durchhänge). ) schaltet das Mikro ein.

Bearbeiten:

Ich dachte, es könnte von Vorteil sein, das Mikro im Reset zu starten, indem Sie die Taste gedrückt halten und nach dem Einstecken loslassen - macht keinen Unterschied.

Schema des Micro/Bucks:

Geben Sie hier die Bildbeschreibung ein

Welche Art von Transienten bekommst du, wenn du das Board einsteckst? Klingt nach etwas ähnlichem wie ein Latch-up. Wenn das Anzapfen Ihres Boards die Versorgungsspannung so stark senkt, gibt es wahrscheinlich auch ein anderes Problem.
Fast keine auf den Schienen. Gemessen im Bereich von einigen Millivolt auf der 3,3-Schiene. Ich habe mir die 48V nicht genau angesehen, aber im Allgemeinen sieht das auch gut aus. Der Buck soll sehr wenig Strom liefern. Ich nehme an, wenn mein Körper irgendwie mit dem Feedback-Netzwerk herumspielt, könnte der Bock entsprechend reagieren.
Versuchen Sie, dem 3V3-Versorgungsausgang einen Lastwiderstand hinzuzufügen. Machen Sie es so, dass es nach all Ihren gewünschten Lasten etwa die Hälfte der überschüssigen Stromkapazität verbrauchen sollte. Wenn Sie also eine 150-mA-Versorgung haben, benötigen Sie 20 mA für Ihre Sachen, legen Sie eine 65-mA-Last auf etwa 50 Ohm und eine halbe Watt. Dies sollte den Umschalter dazu bringen, richtig zu regulieren, wenn Ihre Last zu leicht ist.

Antworten (2)

Bevor Sie viel Debugging betreiben, testen Sie auch alle anderen Lötstellen. Ich denke, vielleicht könnte es woanders Verbindungsprobleme geben.

Vielleicht setzen Sie Ihrem Geld eine zusätzliche Obergrenze von etwa 100 nF nach. Es ist besser, auch einen mit einem kleinen ESR zu haben. Das Berühren der Kappe sollte die Spannung nicht auf 2,2 V reduzieren, ich denke, das könnte ein Problem sein.

Wenn Sie nichts im HW gefunden haben, gibt es vielleicht einen Haltezustand für das Einschalten. Haben Sie Ihren Debugger ausgesteckt und den Chip programmiert? Vielleicht hält er den Chip im Reset-Zustand, bis Ihre Spannung abfällt.

Verwenden Sie immer die Power-On-Reset-Schaltung, wenn Sie es mit einer nicht so guten Stromquelle zu tun haben. Ein einfacher PNP-Transistor reicht aus (in Ihrem Fall 0,75 / 3,3 Widerstandsteiler, Basis zum Mittelpunkt, Emitter zu +3,3, Kollektor zu GND durch 1-10k Widerstand, MCU auf Kollektor zurückgesetzt).

Nützliches PDF: http://www.st.com/web/en/resource/technical/document/application_note/CD00003839.pdf

Ich bin nicht einverstanden mit dem, was Sie sagen, aber ich denke nicht, dass es hier relevant ist. Wie bereits erwähnt, sehen die Schienen super sauber aus und das Mikro hat einen eingebauten POR. Vielleicht kannst du das näher ausführen?
Eingebaute PORs können möglicherweise unzureichend sein.
@Doov Ich habe mir Ihre Schaltpläne angesehen und würde dennoch vorschlagen, mindestens eine 0,1-uf-Obergrenze von RESET zu GND hinzuzufügen und zu sehen, ob es hilft.
@Doov Die Obergrenze sorgt für eine kleine Verzögerung, die ausreicht, damit sich das Netzteil vollständig beruhigt.
Ich stimme grundsätzlich zu, dass eine Obergrenze nicht schaden wird, aber das hat einfach nichts mit dem Problem zu tun, das ich an Bord beobachte. Die 3,3-V-Schiene ist sehr rauscharm und steigt innerhalb von 2,5 ms auf ihren Nennwert an. Mit anderen Worten, es scheint nicht, dass das Netzteil Zeit braucht, um „zur Ruhe zu kommen“. Wenn Sie sich außerdem den Schaltplan für das Arduino Uno ansehen, binden sie das Zurücksetzen auch einfach mit einem Pullup hoch. Ich sage nicht, dass es eine großartige Designpraxis ist, aber sie haben Hunderttausende (Millionen?) Boards mit dieser Mikro- und Reset-Konfiguration ausgeliefert.
@Doov Ich verstehe deine Frustration über meinen Rat: Warum bestehe ich immer wieder auf überflüssigen Dingen? Millionen von Arduinos wurden ohne zusätzliche PORs, Kappen usw. versandt, und sie funktionieren einwandfrei. Aber raten Sie mal, Ihre Situation ist anormal, und wir sind keine Hellseher hier, um Ihre Situation zu durchschauen; Wenn Sie darauf bestehen, dass die Leistung in Ordnung ist, fallen mir nur folgende Dinge ein: 1) Etwas neue Physik (dunkle Materie usw.) 2) Defekte MCU 3) Unrichtig funktionierender POR. Das Hinzufügen einer Kappe kann helfen, etwas Licht ins Dunkel zu bringen.
Ich will damit nicht sagen, dass ich von Ihrem Rat frustriert bin – ich weiß Ihre Hilfe auf jeden Fall zu schätzen. Ich denke, es ist ein vernünftiger Vorschlag, dort eine Obergrenze zu setzen, und sollte wahrscheinlich im Allgemeinen dort sein. Mit dieser Aussage konnte ich keine zwingende Erklärung dafür finden, warum das Fehlen einer Obergrenze die Probleme verursachen würde, die ich sehe. Auf jeden Fall habe ich der Reset-Leitung eine kleine Kappe hinzugefügt, die dieses Problem nicht gelöst hat.
@Doov Dann ist es Latch-up: en.wikipedia.org/wiki/Latch-up . Sie haben erwähnt, dass Sie eine zweite Spannung haben. Wenn es durch einen der Stifte in das Gerät gelangt, kann es dies verursachen. Auf parasitäre Kapazität von der Hochspannungsschiene zu den Pins prüfen. Im Allgemeinen gibt es Dioden in der MCU, um dies zu verhindern, aber trotzdem.