PIC-Pin-Zustandsänderung setzt den PIC zurück

Ich versuche, Daten von analogen Sensoren (Temperatur und relative Luftfeuchtigkeit) mit einem PIC-Mikrocontroller (PIC18F14K50) zu sammeln. Um Batterie zu sparen, wird die Versorgungsspannung der Sensoren eingeschaltet, wenn Daten gesammelt werden müssen, und danach ausgeschaltet. Die Versorgungsspannung wird vom Pin RB7 des Mikrocontrollers gesteuert. Das Problem ist, dass, wenn der Pin RB7 des PIC hoch geht, der PIC zurückgesetzt wird. Ich habe mehrere Software- und Hardwaremodifikationen ausprobiert, aber das Problem bleibt bestehen. Mir gehen jetzt die Ideen aus, habt ihr irgendwelche Vorschläge?

Geben Sie hier die Bildbeschreibung ein

Notiz :

  • Wenn RB7 ganz am Anfang des Programms eingeschaltet wird und eingeschaltet bleibt, gibt es kein Zurücksetzen.
  • Der 4-MHz-Quarz und zwei 15-pF-Kondensatoren, die mit RA4 und RA5 verbunden sind, sind hier nicht gezeigt
  • Ich verwende einen Schaltspannungsregler, um die + 5 V von der + 9-V-Batterie bereitzustellen
Vielleicht fallen die 9 V zu niedrig ab, wenn Sie die Sensoren aktivieren.
Möglicherweise benötigen Sie etwas mehr "Massenspeicher" für Ihre +5-V-Versorgung. Versuchen Sie, einige 10 uF mit Kondensatoren mit niedrigem ESR hinzuzufügen.
@brhans, danke für deinen Kommentar, ich habe bei jedem Schritt 100nF hinzugefügt und das Ergebnis überprüft, mit dem dritten 100nF-Kondensator wurde das Reset-Problem gelöst.

Antworten (1)

Ich würde vermuten, wenn Sie +5V_SEC an +5V anschließen, gibt es einen vorübergehenden Einbruch bei +5V. Das wird vom PIC als Brownout wahrgenommen. Der Einbruch tritt auf, weil die an +5V_SEC angeschlossenen Kondensatoren plötzlich aufgeladen werden. Sie können den Einbruch wahrscheinlich mit einem Oszilloskop sehen.

[Ich habe diese Art von Verhalten schon einmal gesehen. Ich werde sehen, ob ich den alten Oszilloskop-Screenshot finden kann.]

Auf einem anderen Ton. Fügen Sie einen Pulldown-Widerstand vom Gate von Q1 zur Masse hinzu. Dadurch wird sichergestellt, dass Q1 nicht einschaltet, RB7 ist hochohmig.

Vielen Dank für Ihre Antwort, ich habe kein Oszilloskop, aber ich habe die /BOR- und /POR-Bits überprüft, die darauf hinweisen, dass ein Brownout aufgetreten ist. Wie oben erläutert, hat das Ersetzen des Bypass-Kondensators (C13) mit 470 nF das Problem gelöst. Danke für den fehlenden Pulldown-Widerstand.