Forum: Analoge Elektronik und Schaltungstechnik INA219 Datenblatt verstehen!


von Bassti (Gast)


Lesenswert?

Hallo Gemeinde...

Hab mir ein paar Samples vom INA219 bestellt und meine passenden 
Platinen sind auch schon angekommen... jetzt hab ich aber nen paar 
offene Fragen, obwohl ich das Datenblatt schon 3 mal gelesen habe...

Hier das Datenblatt:

http://www.ti.com/lit/ds/symlink/ina219.pdf

Also irgendwie will ich noch nicht verstehen warum man ne 
programmierbare Gainstufe hat und dann trotzdem das LSB für die 
Spannungsmessung bei 16 oder bei 32 Volt immer 4 mV groß ist... Müsste 
doch bei 12 Bit und 32 Volt 8mV sein..

Das selbe Unverständis bei der Shuntspannung... das LSB soll immer 10uV 
sein, obwohl 40mV, 80mV, 160mV und 320mV Messbereichs enden eingestellt 
werden können...

Hängt das mit dem Oversampling zusammen, dass man im INA einstellen 
kann?

Die letzte Frage hatte sich zum Glück mit google geklärt, auf dem TI 
Forum steht das die ADC Samplezeit für Spannung und Strommessung 
zusammen gilt. Das steht auch nirgendswo drin...

Schon sehr verwirrend das ganze...

Vielleicht hat jemand den INA oder ähnliche Bausteine benutzt und kann 
mir etwas auf die Sprünge helfen...

MFG

BAsti

von Yalu X. (yalu) (Moderator)


Lesenswert?

Da steht "ADC Basic Resolution" und ist zu verstehen als die Auslösung
des ADC alleine ohne den PGA.

von Bassti (Gast)


Lesenswert?

Ja so hab ich mir das schon gedacht... also wäre das tätsächlich 
erreichbare LSB bei 320mV und PGA 8 -> 8 x 10 µV = 80 µV

Würde Sinn ergeben.. der Programmierer braucht dann nur immer mit 10 µV 
multiplizieren um die Shuntspannung zu bekommen...

Aber die Table 8 auf Seite 29 hat mich da zusätzlich verwirrt...
Da ist die Dualdarstellung von 319,99 µV angegeben... eine theoretische 
Auflösung die nicht mit 12 Bit erreicht werden kann...
Wahrscheinlich ist das dann wirklich nur mit der Mittelwertbildung 
erreichbar und bei standard ADC Einstellung, die LSB Stellen mit Nullen 
gefüllt?!

Ich werd mal mein Glück probieren...

Danke erstmal

von Bassti (Gast)


Lesenswert?

Och man... eigentlich hatte ich schon ganz gute Ergebnisse... aber die 
Register des LSB bekomm ich nicht so programmiert wie ich das möchte... 
oder liegt es am Auslesen?

Jedenfalls ist das MS Byte egal was drinnen steht immer korrekt... das 
LS Byte ist irgendwie anders....
Benutze die LIB von Peter Fleury
1
  if(!i2c_start(INA219_1 + I2C_WRITE)) {
2
3
    i2c_write(Confg_Reg);
4
    i2c_write(0b00000001);
5
    i2c_write(0b10011111); //LS Byte... immer falsch nach dem Auslesen
6
    i2c_stop();
7
8
    i2c_start_wait(INA219_1+I2C_WRITE);
9
    i2c_write(Confg_Reg);
10
    i2c_start(INA219_1+I2C_READ);
11
    uint16_t msb_ina_temp = (uint16_t)i2c_readAck();
12
    msb_ina_temp <<= 8;
13
    msb_ina_temp += (uint16_t)i2c_readNak();
14
    i2c_stop();
15
    uSpannung_ADC = Spannung_ADC = msb_ina_temp;
16
  }

Vielleicht muss ich auch nochmal drüber schlafen :-/

MfG

Basti

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.