Ein PWM-Ausgang geht auf 0 V, wenn ich einen ADC-Eingang in einer Entwicklungsplatine anschließe

Ich mache ein Projekt, in dem ich je nach Eingang eines Sensors eine LED mit unterschiedlicher Intensität einschalten möchte. Im Moment simuliere ich den Sensor mit einem Potentiometer.

Ich verwende ein EK-TM4C123GXl-Launchpad. Ich verbinde den "falschen" Sensoreingang mit einem ADC-Eingang (über einen Operationsverstärker), dann variiere ich die PWM-Impulsbreite in Abhängigkeit vom vom ADC gelesenen Wert.

Ich habe getestet, dass der PWM-Ausgang die LED mit Strom versorgt und ihre Helligkeit in Abhängigkeit von der aktuellen Impulsbreite variiert, wenn der ADC-Eingang getrennt ist. Sobald ich jedoch den ADC-Eingang anschließe, geht der PWM-Ausgang auf 0 V (kurz nachdem ich eine „Spitze“ in der LED erzeugt habe, kann ich sie sehen, weil sie für einen Moment stark aufleuchtet).

Ich habe das Problem "gelöst", indem ich einen Widerstand zwischen den PWM-Ausgang und die LED gelegt habe. Allerdings verstehe ich überhaupt nicht, warum das passiert. Ich habe jedoch festgestellt, dass der PWM-Impuls einen Weg zur Masse durch die MCU-Einbauten und den ADC-Eingang findet. Ich sehe immer noch nicht, wie ein Widerstand (R5) das beheben kann.

Die Schaltpläne sind unten (VCC ist eine 9-V-Batterie):

BEARBEITEN

Vorherige Schaltpläne waren falsch, hier ist der richtige:Geben Sie hier die Bildbeschreibung ein

Der Widerstand R5 ist derjenige, der verhindert, dass der PWM-Ausgang auf Masse geht, dh wenn ich ihn entferne und die LED direkt an PWM0 anschließe, bleibt er ausgeschaltet und seine Anode auf 0 V.

Wie kann das passieren? Kann dies mit dem Eingangsleckstrom zusammenhängen?

Pin-Konfiguration:

  • ADC-Eingangspin: Eingang, analog, kein Pulldown-Widerstand.
  • PWM-Ausgangspin: Ausgang, digital, kein Pull/Down-Widerstand, kein Open-Drain, 2 mA Antriebsstärke.

Anmerkungen:

  • VCC ist eine 9V Batterie
  • Ich benutze ein Potentiometer und einen Op. Ampere. weil das Potentiometer einen tatsächlichen Lichtsensor vortäuschen soll. Die Operation. Ampere. ist da, um die Simulation realistischer zu machen, da ich vorgebe, sie im endgültigen Design zu verwenden.
  • Ich habe getestet, dass die op. Ampere. Ausgang liegt zwischen 0 und ~3V (nie mehr als 3V)
  • Ich verbinde die GND-Pins der Platine mit der gleichen Masse wie alle anderen ICs.
  • Die MCU wird über den USB-Anschluss mit Strom versorgt, der mit meinem PC verbunden ist.
  • Ich stelle den Code nicht zur Verfügung, weil er sehr lang ist und ich mehrmals getestet habe, ob er korrekt ist (ich bestehe darauf, alles funktioniert gut, wenn R5 vorhanden ist).
  • Alle Impedanzen sind in Ohm angegeben.
  • Die Operation. Ampere. ist ein nicht invertierender Ausgang (ich bemerke dies nur für den Fall, dass ich einen Fehler damit gemacht habe)
  • Ich habe gelesen, dass die LED immer durch einen Strombegrenzungswiderstand geschützt werden sollte. Ich habe es nicht an erster Stelle gesetzt, weil ich die Antriebsstärke des Pins falsch verstanden habe, aber der Punkt ist, dass ich wissen möchte, wie das Fehlen von R5 dazu führen kann, dass PWM0 auf 0 V geht.
Ich weiß nicht, welcher Port verwendet wird, aber es gibt 220R-RGB-Ports mit offenem Kollektor, und vielleicht hatten Sie die LED auf 3,3 V, sodass sie mit einem anderen CMOS-25-Ohm-3,3-V-Treiber nicht auf Masse gehen konnte, wenn eine LED zwischen 10 und liegt 15 Ohm bei 20 mA Rs bei 2,1 V für Rot

Antworten (4)

Geben Sie hier die Bildbeschreibung ein

Abbildung 1. Ursprüngliche Schaltung.

R1 ist nicht als Potentiometer verdrahtet. Es ist als variabler Widerstand oder "Rheostat" verdrahtet. Wenn Sie den Wischer nach rechts bewegen, sieht der Operationsverstärker 5 V. Wenn Sie ihn nach links bewegen, sieht der Operationsverstärker 200 k 20 k + 200 k 5 = 4.55   v .

In der Zwischenzeit hat Ihr Operationsverstärker eine Verstärkung von 1 + R 4 R 3 = 1 + 1 3.7 = 1.27 Bei minimaler Eingangsspannung versucht der Ausgang also, 5,77 V zu erreichen, ist aber glücklicherweise, wie ich vermute, durch die Versorgungsspannung von U1 begrenzt. Da Sie nur maximal 3 V erhalten, bedeutet dies wahrscheinlich, dass Sie keinen Operationsverstärker mit Rail-to-Rail-Ausgang verwenden. Überprüfen Sie das Datenblatt, um zu sehen, was der maximale Ausgangsspannungshub ist.

Ich habe gelesen, dass die LED immer durch einen Strombegrenzungswiderstand geschützt werden sollte. ... aber der Punkt ist, ich möchte wissen, wie das Fehlen von R5 dazu führen kann, dass PWM0 auf 0 V geht.

Wenn Sie R5 nicht hinzufügen, wird der PWM-Ausgang überlastet. Die Spannung wird bei etwa der Nenndurchlassspannung V f der LED und bei dem maximalen Strom, den der Mikrocontroller abgeben kann, maximal. Das tut weder dem Mikro noch der LED gut. Verwenden Sie einen Strombegrenzungswiderstand.

VCC ist 9V, aber egal, die Erklärung mit 5V ist vollkommen in Ordnung.
Und die op. Ampere. ist schlecht verdrahtet (meine schlecht), eigentlich sollten R3 und R4 einer an der Stelle des anderen sein. Und der Topf. Außerdem ist es umgekehrt: zuerst R2 und dann R1, sodass die Eingangsspannung für den Operationsverstärker viel niedriger ist. Entschuldigung, ich werde die Schaltpläne aktualisieren, sobald ich kann

Messen Sie den Strom, den die LED ohne R5 zieht (mit und ohne angeschlossenem AINT0). Das würde ich an deiner Stelle tun, nachsehen, was da wirklich los ist.

Ich denke, es ist mehr als "2 mA Antriebsstärke". Diese 2 mA müssen der maximale Wert des EK-TM4C123GXl-Pins sein, auf den Sie achten sollten (das bedeutet, dass der EK-TM4C123GXl mehr als 2 mA liefern kann, aber Sie müssen es begrenzen auf 2 mA).

Wo haben Sie diese 2-mA-Grenze gesehen? Ich konnte es nicht im Datenblatt sehen , es ist auch ein ziemlich großes Datenblatt, es könnte einige Zeit dauern

Meine Vermutung: Wenn der EK-TM4C123GXl 5 V (pwm oder nicht) an die LED gibt, wenn Sie den R5 nicht dort angeschlossen haben, wird dieser 5-V-Ausgang einen Kurzschluss zu GND haben.

Die Optionen für die Antriebsstärke sind 2, 4 und 8 mA (ich erinnere mich nicht, ob diese 4 tatsächlich 6 ist, aber die Optionen 2 und 8 sind sicher richtig)

Je nachdem, ob Sie sich keine Gedanken über die Kosten machen, können Sie außerdem immer einen Puffer hinzufügen, um die Signalintegrität aufrechtzuerhalten. Dies sollte die PWM davor schützen, möglicherweise auf Masse gezogen zu werden, wenn sie erheblich gedämpft wird.

Ich habe noch einige Tests gemacht. Insbesondere habe ich die Schaltung ohne R5 getestet und die MCU über ihren VBUS-Pin mit 3,3 V versorgt. Alles funktioniert.

Ich kann immer noch Überstrom zur LED bekommen, wenn ich den Rheostat ganz nach rechts drehe (10 mA, während die maximalen Nennwerte für die LED 7 mA angeben).

Zusammenfassend ist das ganze Problem darauf zurückzuführen, dass ein Teil der Schaltung (Sensor, Operationsverstärker) mit einer 9-V-Batterie mit Strom versorgt wurde, während die MCU mit dem PC-USB mit Strom versorgt wurde. Ich habe jedoch keine Ahnung, wie sich dies auf den PWM-Ausgang auswirken kann.