Stromerfassung bis zu 2 A mit hoher Auflösung

Ich versuche, einen Strom zu erfassen, der in einem Motor fließt (der Strom sollte 2 Ampere nicht überschreiten), und ich hätte gerne eine hohe Auflösung für diese Messung. Ich hatte gehofft, den ACS712 zu verwenden , aber er sagt, dass die Genauigkeit 185 mV/A beträgt. Da der Strom in meiner Anwendung 2A nicht überschreitet, bedeutet dies 185 * 2 = 370 mV (richtig?)

Ich verwende einen STM32F4 mit 12-Bit-ADC, was bedeutet, dass es bei einer Vref von 3,3 V ein Inkrement von jeweils 0,8 mV ist. Am Ende bekomme ich also eine Auflösung von 463 Schritten.

Gibt es eine Möglichkeit eine höhere Auflösung zu bekommen? Ich mag die Idee eines Shunt-Widerstands nicht wirklich, vielleicht könnte ein Verstärker den Zweck erfüllen, aber werde ich in der Lage sein, eine genaue Messung zu erhalten? Geben Sie hier die Bildbeschreibung ein(iA ist die Messung)

Übrigens versuche ich, ihn durch einen ACS711 zu ersetzen, der mit 3,3 V arbeitet, aber er liefert mir nur eine Auflösung von 110 mV/A

Hier ist die Vref+/- VerbindungGeben Sie hier die Bildbeschreibung ein

Wenn Sie qualitativ hochwertige Messungen wünschen, verwenden Sie die interne Bandgap-Spannungsreferenz der MCU anstelle von 3,3 V als Referenz; Die 3,3-V-Schiene kann 5-10% Fehler sowie Rauschen aufweisen und alle Gewinne eines hochwertigen Shunt-Monitors überschwemmen.
Sie sagen also, ein Operationsverstärker + Shunt-Widerstand ist der richtige Weg?
Ich habe nichts über Ihre Sensorlösung gesagt, nur dass Sie die 3,3-V-Schiene nicht als Referenzspannung am ADC verwenden sollten.
Sorry, hatte deinen Kommentar missverstanden. Welche Schiene soll ich verwenden? Der 3.3 kommt aus einem TL1963 1.5A
Er sagt, dass Sie keine Schiene direkt für die Referenzspannung verwenden sollten. Wenn Sie eine 3,3-V-Referenz verwenden möchten, können Sie die 3,3-V-Schiene verwenden, aber Sie sollten sie tiefpassfiltern (ein Kondensator vom Ref-Pin zu Masse und ein Widerstand von der Kappe zu 3,3 V). In Ihrem Fall möchten Sie nicht 3,3 V, sondern etwas näher an 400 mV als Referenz für den ADC. Sie können einen Widerstandsteiler verwenden, um eine niedrigere Spannung von 3,3 zu erhalten, oder die im Mikrocontroller integrierte präzisere Bandlückenreferenz verwenden.
Ich habe das Anschlussdiagramm meiner Vref+/- hinzugefügt. Also sollte ich einen Spannungsteiler mit einem LP-Filter machen, um die Vref auf etwa 500 mV zu bringen (um also eine gute Auflösung für meinen Stromsensor zu erhalten?)
Sie können diese 3,3 V immer noch verwenden, um die MCU mit Strom zu versorgen, aber Sie sollten eine Referenzspannung verwenden, um die Obergrenze für den ADC zu definieren. Ihr ADC hat bereits eine eingebaute Referenz, die Sie verwenden können. Seine Spannung ist viel präziser und liefert genauere Messungen. Und aufgrund der 2,5 V ist die Auflösung in Ihrem Fall besser. Möglicherweise erlaubt Ihre MCU eine externe Spannungsreferenz für ihren ADC, dann könnten Sie so etwas wie einen AD680 mit einem 5: 1-Spannungsteiler verwenden, um die obere Spannung für den ADC auf 500 mV einzustellen.
Ja, das macht einen Verstärker überflüssig. Bearbeiten: Ich sehe in Ihrer Antwort keinen Eingang für eine externe Referenzspannung. Nein, der Betrieb des Mikrocontrollers mit einer niedrigeren Spannung ist nicht der beste Weg, um die ADC-Empfindlichkeit zu erhöhen.
Der STM32F401CEU6 UFQFPN48 erlaubt mir nicht, die Vref zu ändern, da er mit Vdda verbunden ist. Also Operationsverstärker ist es, denke ich
Die von Ihnen verwendete MCU verfügt über eine eingebettete Bandgap-Referenzspannung, die Sie verwenden können - kein Operationsverstärker erforderlich.

Antworten (3)

Die meisten Mikrocontroller mit ADCs haben eine interne Bandgap-Referenz mit einer Spannung von ~1 V (genauere Werte und Toleranzen finden Sie im Datenblatt; Beispiel: Die STM32F415xx-Serie hat eine Bandgap-Referenz von 1,21 V). Dies erhöht Ihre Auflösung effektiv auf 1253 Schritte im vollen Maßstab, indem Sie einen Softwareschalter umlegen.

Wenn Sie es noch besser machen wollen, haben Sie mehrere Möglichkeiten:

  1. Verwenden Sie einen Operationsverstärker, um den Ausgang Ihres Stromsensors zu verstärken
  2. Verwenden Sie einen externen ADC mit höherer Auflösung
  3. Verwenden Sie eine externe Referenz mit niedrigerer Spannung (z. B. so etwas ) . Beachten Sie, dass ein einfacher Spannungsteiler direkt in den vref-Pin fast nie eine gute Idee ist.

In keinem dieser Fälle müssen Sie die Spannungsversorgung Ihres Mikrocontrollers ändern.

Als Randnotiz verstehe ich Ihre Abneigung gegen die Verwendung eines Shunt-Widerstands nicht. Bei mäßig niedrigen Strömen (wenige Ampere) ist dies die genaueste Art, Ströme zu messen. Beispielsweise hat der von Ihnen aufgelistete ACS712-Chip eine Genauigkeit von 1 %. Das bedeutet, dass Sie eine Genauigkeit von 6,64 Bit (~ 100 Schritte) erhalten. Es ist sehr einfach, Shunt-Widerstände mit einer Genauigkeit von 0,5 % zu erhalten, was eine Genauigkeit von 7,64 Bit (~200 Schritte) ergibt. Die Verwendung eines Shunts mit einer Genauigkeit von 0,1 % ergibt eine Genauigkeit von 9,97 Bit (~1000 Schritte).

Wenn Sie einen sehr kleinen Shunt-Widerstand mit einem Instrumentenverstärker verwenden, ist die Bürdenspannung vernachlässigbar. Angenommen, Sie haben einen Eingangsverstärker mit einer Verstärkung von 100x (sehr machbar). Ein geeigneter Shunt-Widerstand, um 0-1.21Vden vollen Bereich zu erreichen, benötigt einen Shunt-Widerstand von 6.05mOhmsund hat eine Lastspannung von 12.1mV. Für alle intensiven Zwecke ist dies vernachlässigbar. Sie können dies noch weiter reduzieren, indem Sie eine 1000-fache In-Amp-Schaltung verwenden (ebenfalls sehr machbar).

Ich möchte keinen Shunt verwenden, weil es einfacher aussah, den ACS71X zu verwenden. Übrigens ist die Referenzspannung auf diesem Chip intern auf die Versorgungsspannung festgelegt. Wie heißt der In-Amp auf einem Datenblatt? konnte es nicht finden
Ein "op-amp", kurz für "Operationsverstärker", "In-Amp" war ein Tippfehler.
In-Amp ist die Abkürzung für „Instrumentenverstärker“. Es ist wie ein Operationsverstärker, aber es gibt wesentliche Designunterschiede. Insbesondere ist es darauf ausgelegt, eine sehr hohe Verstärkung bereitzustellen, um geringfügige Spannungsunterschiede zwischen den beiden Eingängen zu verstärken, während es über hochohmige Eingänge verfügt. In-Amps können mit Operationsverstärkern gebaut werden, obwohl Sie in der Praxis eine wirklich gute Anpassung benötigen, wenn Sie eine gute Genauigkeit bei hoher Verstärkung wünschen, also besorgen Sie sich einen vorgefertigten Chip. Ich habe noch nie einen Hallsensor gesehen, der als "einfacher zu bedienen" beschrieben wurde als ein Shunt. Weniger Komponenten, vielleicht, aber die Platinengeometrie ist für Hallsensoren extrem wichtig.

Sie sagen, Sie möchten eine "hochauflösende" Strommessung durchführen. Wenn Sie „hohe Auflösung“ sagen und dann sagen, dass Sie einen 12-Bit-ADC in einem Mikrocontroller verwenden, definieren Sie im selben Satz „hohe Auflösung“ neu. Abwärts. Wie auch immer, Sie werden Glück haben, 10-10,5 zu bekommen effektive Bits, so dass Sie bereits auf ~ 1000 Codes über den vollen Maßstab heruntergekommen sind (vorausgesetzt, Sie tun das Notwendige und verstärken Ihre Sense-Messung so, dass 2A = "voller Maßstab". Ist die Auflösung hoch genug für Sie?

Wenn ja, müssen Sie den Ratschlägen in anderen Antworten folgen, um eine geeignete Referenz auszuwählen (interne Bandlücke oder eine anständige externe Referenz von <0,05%, KEINE Versorgungsschiene, egal wie gut gefiltert man behaupten mag machen), UND verwenden Sie einen Operationsverstärker, um Ihre Strommessung mit einem Shunt- Widerstand zu verstärken, sodass 2 A = Ihre Referenzspannung ist, und verwenden Sie anständige PCB-Designpraktiken, um Ihre analogen Schaltkreise relativ sauber zu halten. Mein Internet ist heute Abend sehr langsam, daher kann ich im Moment kein STM32F4xxx-Datenblatt herunterladen, aber zu 99,9% wird es die Option unterstützen, eine externe Spannungsreferenz zu haben.

Ich würde dem Ausgang des ACS712 einen Operationsverstärker mit einer Verstärkung von 8 hinzufügen, um die volle Bandbreite des ADC in Ihrem Mikrocontroller zu nutzen. 2 A würden also durch 8 * 463 Schritte = 3704 dargestellt, fast der gesamte Bereich (4096) des 12-Bit-ADC mit einer Vollskalenspannung von 3,3 V.

Geben Sie hier die Bildbeschreibung ein

Der LMV321 ist eine Rail-to-Rail-Version des LM321.

Die Verstärkung eines nicht invertierenden Verstärkers ist 1 + R 2 R 1 , oder in diesem Fall 1 + 93.1 13.3 = 8 .

Oder verwenden Sie einen Operationsverstärker mit einer Verstärkung von 12 für den ACS711. In diesem Fall würde 2A durch 12*275 Schritte = 3300 dargestellt.

danke, genau das habe ich getan, obwohl ich einen 1K- und einen 167-Widerstand verwendet habe (ich habe es vorgezogen, bei einer Verstärkung von 7 zu bleiben). Gibt es einen Grund, warum ich die Werte dieser Widerstände mit 10 oder 100 multiplizieren sollte? Ich meine, ich weiß, dass die Verstärkung 1 + R2 / R1 beträgt, aber beeinflussen niedrige Widerstandswerte irgendetwas?
Ich verwende gerne Widerstände im Bereich von 10K bis 100K oder so, wenn möglich. Genau wie Goldilocks wollen Sie nicht zu klein oder zu hoch. Etwas in der Mitte ist genau richtig. Dieser Thread behandelt das Thema ausführlicher. In Ihrem Fall würde ich jetzt R1 = 19,1K und 115K wählen.