Hallo,
ich habe eine Frage zu der Strommessung mit dem ADC Eingang eines
Aduc7026 Eval Boards.
Als Stromsensor nutze ich einen LEM Wandler, der an den ADC Eingang des
uC eine Spannung zwischen 2,5V + 0,625*(ip/ipn) liefert.
Wobei 2,5V die Offsetspannung darstellen. IP ist der Primärstrom, also
der Messstrom. Der Nennstrom IPN beträgt 100A (ein HASS 100-S LEM
Wandler).
Wie realisiert (programmiert) man nun die Messung?
Sagen wir man ich habe einen Strom IP von +10A. Dann gilt am ADC Eingang
des uC 2,5V + 0,625V*(10A/100A) = 2,5625V.
Mir ist klar, dass ich im Mikrocontroller die oben angegebene Rechnung
so umstellen muss, dass der uC 10A als Ergebnis errechnet, doch wie
komme ich erstmal auf die 2,5625V?
Die Antwort auf diese Frage mag für einen Programmierer jetzt nicht
besonders schwer aussehen, doch ich bin eben kein (guter) programmierer
und habe nicht soviel Kontakt mit Mikrocontrollern gehabt.
Ich wäre für jeden Hinweis dankbar.
Arthur Peters schrieb:> Sagen wir man ich habe einen Strom IP von +10A. Dann gilt am ADC Eingang> des uC 2,5V + 0,625V*(10A/100A) = 2,5625V.
stimmt.
Arthur Peters schrieb:> Mir ist klar, dass ich im Mikrocontroller die oben angegebene Rechnung> so umstellen muss, dass der uC 10A als Ergebnis errechnet, doch wie> komme ich erstmal auf die 2,5625V?
Die Rechnung stimmt doch, aber:
Zunächst muss der Messbereich des Kontrollers zu dem Wertebereich des
Signals passend gemacht werden: Ausgangsbereich der Werte ist wohl 2,5V
plusminus 0,625 V.
Arbeitsbereich eines normalen AVR ist aber 0V bis 2,5V. und schon passt
es nicht.
Eine Lösung wäre eine Operationsverstärkerschaltung, die einen Versatz
um die halbe Referenzzspannung erzeugt und eventuell die max
0,625V-Komponente verdoppelt. ( Summierer mit Verstärkungsfaktor -2 für
den Eingang und Addition von -1/2 (2,5V, uref), also die 1,875 V bis
3,125 V auf 0V bis 2,5V umsetzt. Diesen Bereich kann dann der Wandler
lesen.
Anschließend beim Einleseergebnis rechnen: Offset abziehen/Addieren,
dass bei 1,25V am Eingang das AVR die Zahl Null entsteht. Danach noch
multiplizieren, dass aus den plusminus 512 die Zahl 10,00 entsteht.
Oder: einen AD-Wandler suchen, der den Spannungsbereich 1,875 bis 3,125V
lesen kann. Anschließend offset abziehen und wieder skalieren, dh. das
Messergebnis so multiplizieren, dass 10 entsteht.
@Arthur Peters (Gast)
>Wie realisiert (programmiert) man nun die Messung?>Sagen wir man ich habe einen Strom IP von +10A. Dann gilt am ADC Eingang>des uC 2,5V + 0,625V*(10A/100A) = 2,5625V.
Ja.
>Mir ist klar, dass ich im Mikrocontroller die oben angegebene Rechnung>so umstellen muss, dass der uC 10A als Ergebnis errechnet, doch wie>komme ich erstmal auf die 2,5625V?
Messen? Oder fehlt dir die allgemeine ADC-Grundgleichung?
https://www.mikrocontroller.net/articles/Festkommaarithmetik
@ Peter R. (pnu)
>Zunächst muss der Messbereich des Kontrollers zu dem Wertebereich des>Signals passend gemacht werden: Ausgangsbereich der Werte ist wohl 2,5V>plusminus 0,625 V.
Ja.
>Arbeitsbereich eines normalen AVR ist aber 0V bis 2,5V.
Nö. Das hängt von der Referenzspannung des ADC ab. Die kann intern 1,1
oder 2.56V sein oder auch extern bis 5V hochgehen. Im einfachsten fall
nimmt man VCC=5V=Vref. Oder eine halbwegs genaue Spannungsreferenz mit
4,096V anlegen.
https://www.mikrocontroller.net/articles/Standardbauelemente#Shuntregler.2FSpannungsreferenz>Eine Lösung wäre eine Operationsverstärkerschaltung,
NEIN! Eher ein 2:1 Spannungsteiler, wenn man mit der internen 2,56V
Referenz arbeiten will.
>> Nö. Das hängt von der Referenzspannung des ADC ab. Die kann intern 1,1>> oder 2.56V sein oder auch extern bis 5V hochgehen. Im einfachsten fall>> nimmt man VCC=5V=Vref. Oder eine halbwegs genaue Spannungsreferenz mit>> 4,096V anlegen.
Blödsinn, der ADUC lässt hier keine 5V zu, siehe Datenblatt. Peter hat
hier bereits einen guten Ansatz geliefert. Der Rest ist Umrechnung und
fertig.
Peter R. schrieb:> Arthur Peters schrieb:> Zunächst muss der Messbereich des Kontrollers zu dem Wertebereich des> Signals passend gemacht werden: Ausgangsbereich der Werte ist wohl 2,5V> plusminus 0,625 V.> Arbeitsbereich eines normalen AVR ist aber 0V bis 2,5V. und schon passt> es nicht.>> Eine Lösung wäre eine Operationsverstärkerschaltung, die einen Versatz> um die halbe Referenzzspannung erzeugt und eventuell die max> 0,625V-Komponente verdoppelt. ( Summierer mit Verstärkungsfaktor -2 für> den Eingang und Addition von -1/2 (2,5V, uref), also die 1,875 V bis> 3,125 V auf 0V bis 2,5V umsetzt. Diesen Bereich kann dann der Wandler> lesen.>> Anschließend beim Einleseergebnis rechnen: Offset abziehen/Addieren,> dass bei 1,25V am Eingang das AVR die Zahl Null entsteht. Danach noch> multiplizieren, dass aus den plusminus 512 die Zahl 10,00 entsteht.>> Oder: einen AD-Wandler suchen, der den Spannungsbereich 1,875 bis 3,125V> lesen kann. Anschließend offset abziehen und wieder skalieren, dh. das> Messergebnis so multiplizieren, dass 10 entsteht.
Also ich habe neben dem Aduc Eval Board noch einen "selbst gebauten"
Board der Hochschule, der auch auf einem Aduc7026 aufbaut. Auf dessen
EAGLE Schaltplan habe ich nun entdeckt, dass an einem Pin VRef/2
(=1,25V) nach außen führt. Die VRef werden voher von einem OPV
bearbeitet.
Also könnte ich im Grunde gesehen die VRef/2 dieses Pins nutzen? Ich
hätte somit einen Spannungsbereich von 0,625V bis 1,875V.
Mir ging es bei der Fragestellung eher um die programmtechnische
Umsetzung eines ADC zur Messung. Gut das ich gefragt habe, denn es war
mir nicht klar, dass der Aduc einen Arbeitsbereich von 0V bis 2,5 hat.
Hätte gedacht, dass bis zu Versogungsspannung von 3,3V alles OK ist.
Das was ich als Laie nicht ganz verstehe ist weiterhin, wie ich eben die
"Messung" mache. Das Signal von z.B. 1,25V kommt am Eingang an und wird
durch den ADC digitalisiert.
Das heißt doch, dass "z.B." bei einer Spannung von 2,5V und einer
Auflösung von 8Bit alle Bits mit 1 belegt werden, sodass FF gilt.
Und bei einer Spannung von 1,25V würde entsprechend 0F gelten. (Dies ist
alles nur Beispielhaft dargestellt)
Das Programm würde dann über eine Umrechnung "wissen", dass es 1,25V
sind, weil es eben weiß, dass bei FF eine Spannung von anliegt. Und über
eine weitere Umrechnung halt heraus finden, welcher Strom fließt.
Liege ich hiermit richtig?
@Arthur Peters (Gast)
>Das was ich als Laie nicht ganz verstehe ist weiterhin, wie ich eben die>"Messung" mache.
ADC konfigurieren und Messung starten. Da musst du mal nach Beispielen
für deinen uC suchen.
> Das Signal von z.B. 1,25V kommt am Eingang an und wird> durch den ADC digitalisiert.
Ja.
>Das heißt doch, dass "z.B." bei einer Spannung von 2,5V und einer>Auflösung von 8Bit alle Bits mit 1 belegt werden, sodass FF gilt.
Ja.
>Und bei einer Spannung von 1,25V würde entsprechend 0F gelten. (Dies ist>alles nur Beispielhaft dargestellt)
Nö, eher 0x80 ;-)
>Das Programm würde dann über eine Umrechnung "wissen", dass es 1,25V>sind, weil es eben weiß, dass bei FF eine Spannung von anliegt.
Ja.
> Und über>eine weitere Umrechnung halt heraus finden, welcher Strom fließt.
Sicher.
Falk B. schrieb:> @ Arthur Peters (Gast)>>> Abschnitt_VRef.png>> Wer hat den den Schaltplan verbrochen?>> Schaltplan richtig zeichnen
Ist nicht mein Mist ;D. Hat mal jemand gemacht, dessen Augabe es war,
aus einem Aduc7026 Chip ein nützliches Board für das Labor zu entwerfen.
Falk B. schrieb:> @Arthur Peters (Gast)>>>Das was ich als Laie nicht ganz verstehe ist weiterhin, wie ich eben die>>"Messung" mache.>> ADC konfigurieren und Messung starten. Da musst du mal nach Beispielen> für deinen uC suchen.>>>Und bei einer Spannung von 1,25V würde entsprechend 0F gelten. (Dies ist>>alles nur Beispielhaft dargestellt)>> Nö, eher 0x80 ;-)
Ok, ich scheine ja bei fast allen Punkten richtig zu "denken".
An dem
2,5V -> FF
1,25V -> 0F
scheint man ja auch zu erkennen, dass ich nicht so oft mit uC zutun habe
;D.
Ich bedanke mich. Werde mir ein paar Beispiele ansehen.