PIC - Wie kann man eine niedrige maximale ADC-Eingangsimpedanz umgehen?

7

Das Lesen einer 9-V-Batterie auf einem PIC ist nichts Neues . Der einfachste und einfachste Weg ist mit einem Spannungsteiler. Ich möchte die Teilerwiderstände auf Hunderte von kOhm hochdrehen, damit ich meine Batterie nicht unnötig töte. Ich habe mir jedoch das Datenblatt für den PIC18F4550 angesehen und die maximale "empfohlene" analoge Eingangsimpedanz beträgt 2,5 kOhm. Dies bedeutet, dass ich 2 5Ks für meinen Teiler stecken kann, aber 900uA sind eine Menge zu verschwenden, wenn ich nur die Batterie überprüfe. Was kann ich mit meinem Design (passiv) tun, um den Batterieverbrauch zu minimieren? Ich habe über aktive Lösungen wie ein softwaregesteuertes Pfet oder einen Puffer nachgedacht, aber Platz auf der Platine und das Budget sind ein bisschen Luxus, also werde ich es nur tun, wenn ich muss. Ich frage mich auch, ob ich mir wegen nichts Sorgen mache.

BB ON
quelle
Ich finde diesen Beitrag nur während meiner Google-Suche. Nur um zu sagen, dass Sie meine Frage beantwortet und mir viel Hilfe gegeben haben !!! Mein Versuch, ADC mit meinem PIC18 zu lesen, wurde blockiert, weil der von der MCU gelesene Wert immer unterschiedlich ist ... Ich habe den von Alex vorgeschlagenen RC gesetzt und alle Probleme gehen aus !! Vielen Dank ! PS: Entschuldigung für mein Englisch, ich bin Franzose.
Florian

Antworten:

7

Der Grund, warum der ADC eine niedrige Quellenimpedanz benötigt, liegt darin, dass er einen geschalteten Kondensatoreingang hat. Grundsätzlich wird immer dann, wenn der ADC die Spannung am Pin "abtastet", ein kleiner Kondensator angeschlossen, aufgeladen und dann getrennt. Wenn die Impedanz zu groß ist, zieht das Aufladen des Kondensators genug Strom, um einen Spannungsabfall zu erzeugen, der groß genug ist, um den Messwert zu beeinflussen.

Wenn Sie ein Hochgeschwindigkeitssignal lesen müssen, ist es am besten, einen Verstärker hinzuzufügen, um dem ADC eine niedrige Quellenimpedanz zu verleihen. Wenn Sie jedoch ein relativ langsames Signal betrachten, gibt es einige andere Optionen.

Eine Lösung hierfür besteht darin, die Abtastzeit zu verlängern - die Zeitdauer, die der Kondensator mit dem Pin verbunden ist. Der Chip hat normalerweise eine Begrenzung, wie lange diese Zeit dauern kann.

Alternativ können Sie parallel zum ADC-Eingangspin einen Kondensator mit angemessener Größe hinzufügen. Dies verringert die Menge an Statik, die auftritt, wenn der ADC-Abtastkondensator aufgeladen wird, da der größte Teil seiner Ladung vom Kondensator anstatt durch den Widerstand entnommen wird.

alex.forencich
quelle
3
Kondensator ist der richtige Weg. ADC gibt eine Quellenimpedanz nicht Widerstand. Wandeln Sie die Abtastzeit in eine Frequenz um und verwenden Sie eine Kappe mit einer Impedanz, die bei dieser Frequenz viel niedriger ist.
Brian Drummond
7

Es gibt ungefähr 4 Möglichkeiten, einen Spannungsteiler an eine Klimaanlage anzuschließen und die maximale Eingangsimpedanz zu bewältigen.

  1. Verwenden Sie einen ausreichend kleinen Widerstand. Dies ist, was das OP bereits tut.
  2. Legen Sie einen OpAmp-Puffer zwischen den Teiler und den A / D-Eingang. OpAmp sollte eine hohe Eingangsimpedanz und eine niedrige Ausgangsimpedanz haben. [Wie bereits von Alex erwähnt.]
  3. Verwenden Sie einen größeren Widerstand und fügen Sie einen Kondensator vom Analogeingang zur Masse hinzu. [Wie bereits von Alex erwähnt.] Der Kondensator sollte größer sein als der in Sample and Hold. Sie werden versehentlich einen RC-Filter erstellen, dies funktioniert jedoch weiterhin, wenn das Signal langsam ist. Eine Kombination von 10 kΩ und 0,1 μF hat bei mir gut funktioniert.
  4. [last but not least] Schalten Sie den Spannungsteiler mit einem MOSFET-Schalter aus und verwenden Sie relativ kleine Widerstände. Auf diese Weise können Sie die Leckage so gut wie vollständig beseitigen, wenn Sie nicht messen. Dies ist eine übliche Technik zur Batteriemessung.

Ersetzen Sie R1 und R2 durch die benötigten Werte. Der Schaltplan wurde ursprünglich in diesem Thread veröffentlicht .

Nick Alexeev
quelle
Warum nicht einfach den Spannungsteiler an einen Pin am PIC anschließen? Fahren Sie den Pin nach unten, um die Probe abzutasten, und stellen Sie High-Z so ein, dass die Verbindung getrennt wird.
Bitrex
2
@Bitrex Angenommen, Sie machen einen Low-Side-Schalter aus einem digitalen Ausgangspin, wie Sie es beschreiben. + 9V werden an die Oberseite des Spannungsteilers angelegt. Wenn der Low-Side-Schalterstift niedrig ist, ist alles in Ordnung. Wenn Sie High-Z einstellen, werden + 9 V am A / D-Pin und auch am Switch-Pin angezeigt. PIC-Pins sind nicht für +9 V ausgelegt.
Nick Alexeev
Hoppla, aus irgendeinem Grund habe ich die "9V" -Anforderung verpasst!
Bitrex
Eine Idee, die mit dem obigen Schema arbeiten könnte, das einen MOSFET speichert, besteht darin, das PNP im obigen Bild direkt von demselben Pin anzusteuern, an den der Widerstandsteiler angeschlossen ist; Fahren Sie zum Messen auf 0 und zum Abschalten auf Vss. Bei geeigneter Auswahl von Pullup- / Pulldown-Widerständen für den Pfet funktioniert dies, solange die 9-Volt-Batteriespannung nicht niedrig genug abfällt, um die Körperdiode des Fets in Vorwärtsrichtung vorzuspannen.
Bitrex
1

Die Idee von Bitrex würde funktionieren, wenn der digitale PIC-Pin als "offener Abfluss" konfiguriert und dann mit einem Zener auf 2,7 V geklemmt würde, um ihn vor 9 V zu schützen.

Um es auf "EIN" und "AUS" zu schalten, initialisieren Sie den Pin, indem Sie einen logischen Low-Wert darauf schreiben (und lassen Sie ihn dort). Schalten Sie dann den Pin "EIN" und "AUS", indem Sie in die TRIS-Verriegelung schreiben, wodurch der Pin wird entweder ein logisches niedriges oder ein hohes z.

Der Pin schaltet von 0 auf 2,7 V, was ausreichen sollte, um einen MOSFET mit niedriger Gate-Schwelle anzusteuern.

Tony Richardson
quelle