Forum: Mikrocontroller und Digitale Elektronik INA219 Calibration-Reg Berechnung; Verständnissproblem/Frage


von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich möchte einen INA-219 zur Strom + Spannungsmessung einsetzen, habe 
jedoch ein Verständnissproblem mit dem Power-Register:
-->Demnach muss der Shunt zur Messung von 1A-Maximalstrom Mindestens 
30m-Ohm betragen, oder mach ich was falsch?

Dabei habe ich folgende Konfiguartion vorgesehen:
1
R-SHUNT = 0.01-Ohm
2
Imax    = 1.0A
3
4
Current-LSB = (Max-Current / 2^15)
5
Current-LSB = 1.0 / 32768 = 0,000030517 = 30,517uA
6
7
CAL-Reg = trunc(0.04096 / (Current-LSB * R-Shunt))
8
CAL-Reg = trunc(0.04096 / (0,000030517 * 0.01)) = 134220!!!
9
10
Current-Reg = (Shunt-Voltage-Reg * Calibration-Reg) / 4096

Da dass Calib-Register nur 16-Bit hat, kann ich also keinen Wert von 
134220 eintragen. Folglich müsste der Shunt z.b. 3x so hoch, also 
30m-Ohm, sein um dann 44740 einzugtragen.

Die Messgenauigkeit ist für mich nicht entscheident, 1mA ist schon 
wesentlich genauer als Nötig, 10mA würden es auch tun.

-->Gehe ich also richtig in der Annahme, dass der Shunt zur Messung von 
1.0A maximalstrom mindestens 30m-Ohm betragen muss?

Grüße und vielen Dank, Matthias

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ein Minimum gibts es nicht. Es gibt aber ein Maximum. Am Shunt darf 
nicht mehr wie 320mV abfallen. Das ist das Limit.
Alles andere sind Berechnungen für Korrekturfaktoren usw.
Lies dir das einmal durch und schaue dir den Code dazu an.
https://wolles-elektronikkiste.de/ina219
https://arduino-projekte.webnode.at/meine-libraries/stromsensor-ina219/

von Matthias (Gast)


Lesenswert?

Danke für die Links :)

Was hab ich mir dabei gedacht, die Lösung ist natürlich einfach, ich 
nehme den Maximalstrom einfach mit 3A an. Somit muss ich den Widerstand 
nicht ändern...

von Matthias (Gast)


Lesenswert?

Hab doch noch die Frage zur Berechnung des Kalibrations-Werts.

Es kommen doch keine Korrekten Werte raus, dass kann eigentlich nur an 
einer falschen Berechnung liegen.

Ich habe das Config-Register wie folgt eingestellt:
1
R-Shunt = 0,01-Ohm
2
3
0x00 = Config  
4
USE-CASE = 0x07FF
5
FEDC BA98 7654 3210
6
0000 0111 1111 1111
7
|||| |||| |||| |||-Mode1
8
|||| |||| |||| ||--Mode2 --> Lead to Shunt and Bus Continous
9
|||| |||| |||| |---Mode3
10
|||| |||| |||| ----SADC1
11
|||| |||| |||- ----SADC2 --> 12Bit/Sample at Shunt-Measurement + Averaging of 128Samples (68,10ms)
12
|||| |||| ||-- ----SADC3
13
|||| |||| |--- ----SADC4
14
|||| |||| ---- ----BADC1
15
|||| |||- ---- ----BADC2 --> 12Bit/Sample at Bus-Measurement + Averaging of 128Samples (68,10ms)
16
|||| ||-- ---- ----BADC3
17
|||| |--- ---- ----BADC4
18
|||| ---- ---- ----PG0
19
|||- ---- ---- ----PG1   --> Gain = 1 / Range = +-40mV
20
||-- ---- ---- ----BRNG  --> 16V-FSR
21
|--- ---- ---- ----NC
22
---- ---- ---- ----RST   -->System-Reset, read as 0
23
24
Current-LSB = (Max-Current / 2^15)
25
Current-LSB = (Max-Current / 32767)
26
Current-LSB = (Max-Current / 4095) at Gain = 1 ????
27
28
CAL-Reg = trunc(0.04096 / (Current-LSB * R-Shunt)) 
29
CAL-Reg = trunc(0.04096 / (Current-LSB * 0,01))
30
31
Für einen Gain von 1 stimmt demnach:
32
+40mV = 0x0FA0
33
-40mV = 0xF060
34
35
Meine Annahme Imax=1.0A
36
Current-LSB = 1/4095 = 0,0002442A = 30,518uA
37
Cal = trunc(0.04096 / (0,0002442A * 0,01)) = 16773 = 0x4185
38
39
1A/30,815uA= 32767
40
100mA      = 3276
41
10mA       = 327
42
1mA        = 32
43
44
Also:
45
46
uint8_t a_hunterter=A_PWR/3276;
47
A_PWR = A_PWR%3276;
48
uint8_t a_zehner= A_PWR/327;
49
A_PWR = A_PWR%327;
50
uint8_t a_einer= A_PWR/32;
51
uint16_t amp=a_hunterter * 100 + a_zehner * 10 + a_einer;
Fließen tatsächlich 211mA, so sind es aber laut der Berechnung 272mA

Vielleicht hat jemand von euch eine Idee, wo mein fehler liegt?
Hab mich nun schon länger damit beschäftigt, egal was ich einstelle, der 
Wert stimmt jedoch nie...

Grüße und schonmal vielen Dank,
Matthias

von Matthias (Gast)


Lesenswert?

Ich verwende nun das Shunt-Voltage Register, verstehe nicht wie es mit 
dem Calib-Reg richtig funktionieren könnte...

von Veit D. (devil-elec)


Lesenswert?

Hallo,

hast du das einmal gegen geprüft mit dem obigen Link?
Oder dir einmal eine Lib genommen und damit überprüft?
Bevor man sich im Detail verliert.
Hast du den Shunt durchgemessen? Stimmt der Wert?
Widerstandsmessung oder Strom + Spannung messen und berechnen.
Ist das alles plausibel?

Das "Problem" ist, mein frisch bestücktes Controllerboard hat erstmal 
Vorrang. Später könnte ich mein INA rausholen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

oder korrigiere die Angabe des Shunts pauschal etwas nach oben. In dem 
milliOhm Bereich spielt schon der Anschluss deiner Drähte etc. eine 
Rolle.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.