Forum: Mikrocontroller und Digitale Elektronik ina219 - Problem


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von grundschüler (Gast)


Lesenswert?

Hallo,

habe mit ardafruit-c-code dieses:
1
void main(void)
2
//
3
{
4
uint8_t i;
5
6
clock_prescale_set(clock_div_2);//8mhz
7
8
init_timer_smh();
9
lcd_init();
10
lcd_int2(hou);lcd_write(":");
11
lcd_int2(min);lcd_write(":");
12
13
#ifdef ir_sens_port
14
ir_sens_init();
15
#endif
16
17
lcd_light(1);
18
  u8 zl,j,ii;
19
  int16_t xx=0;
20
21
        _delay_ms(2000);
22
//i2c_scanner();
23
    lcd_clear();               // Clear display
24
25
  INA219_Init();
26
27
  while (1) 
28
  {
29
    
30
    lcd_goto(1, 1);
31
    lcd_int2(ii++);
32
    
33
    lcd_goto(1, 4);
34
    xx=  getBusVoltage_raw();
35
    lcd_int(xx);
36
    lcd_write("    ");
37
38
    lcd_goto(2, 4);
39
    xx=  getShuntVoltage_raw();
40
    lcd_int(xx);
41
    lcd_write("    ");
42
    
43
    lcd_goto(3, 4);
44
    xx=  getCurrent_raw();
45
    lcd_int(xx);
46
    lcd_write("    ");
47
    
48
    lcd_goto(4, 4);
49
    xx=  getPower_raw();
50
    lcd_int(xx);
51
    lcd_write("    ");
52
    
53
      _delay_ms(2000);
54
    
55
    led1_tog;
56
  }

Ergebnis ist
getBusVoltage_raw: 128
getShuntVoltage_raw: 257
getCurrent_raw:257
getPower_raw:24337

und zwar immer unabhängig von der Beschaltung. Es wird also der ina219 
offenbar ausgelesen aber keine Wandlung durchgeführt. Gibts da noch 
einen Befehl für die Durchführung der Wandlung den ich übersehen habe?

Danke für Unterstützung.

von M. K. (sylaina)


Lesenswert?

Aufbau genau überprüfen. Sieht für mich nach fehlender Kommunikation mit 
dem INA aus. Oder muss man die Wandlung manuell anschubsen und dann 
drauf warten dass sie fertig ist?

: Bearbeitet durch User
von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

M. K. schrieb:
> Oder muss man die Wandlung manuell anschubsen

Man kann dies bei den Meisten einstellen, ob "Free Run" oder 
"Anschubsen" hab jetzt aber keine Zeit das Datenblatt des INA219 zu 
studieren.

von Jens G. (jensig)


Lesenswert?

Nach kurzem Überflug über das DB - das läßt sich auch einstellen.
Es ist eben so die Frage, was INA219_Init() da überhaupt so einstellt. 
Da muß man ein bißchen die dazugehörige Dokumentation durchlesen ...

: Bearbeitet durch User
von Klaus R. (klara)


Lesenswert?

Hallo,
sind die Pull-Up Widerstände des I2C-Bus vorhanden?
mfg Klaus

von grundschüler (Gast)


Lesenswert?

1
void setCalibration_32V_2A (void) {
2
  ina219_calibrationValue = 4096;
3
        
4
   ina219_currentDivider_mA = 100;
5
  ina219_powerMultiplier_mW = 2;
6
         
7
  writeRegister(INA219_REG_CALIBRATION, ina219_calibrationValue);
8
         
9
  writeRegister(INA219_REG_CONFIG, (INA219_CONFIG_BVOLTAGERANGE_32V |
10
  INA219_CONFIG_GAIN_8_320MV |
11
  INA219_CONFIG_BADCRES_12BIT |
12
  INA219_CONFIG_SADCRES_12BIT_1S_532US |
13
  INA219_CONFIG_MODE_SANDBVOLT_CONTINUOUS));
14
}

Danke erstmal. Ardafruit sollte eigentlich continue-mode sein. Muss das 
mal mit dem datasheet abgleichen.

von Jens G. (jensig)


Lesenswert?

toll. Und wo rufst Du diese Funktion auf?

von grundschüler (Gast)


Lesenswert?

Jens G. schrieb:
> toll. Und wo rufst Du diese Funktion auf?
1
void INA219_Init (void) {
2
    I2C1_Init(100000);
3
  
4
  
5
//    I2C1_SetTimeoutCallback(1000,);
6
u8 err=i2c_start(ina219_i2cAddress);    
7
test(err);
8
i2c_stop();
9
      
10
    ina219_currentDivider_mA = 0;
11
    ina219_powerMultiplier_mW = 0;
12
         
13
      setCalibration_32V_2A(); // Option 1: 
14
//   setCalibration_32V_1A();//Option 2:
15
 //   setCalibration_16V_400mA(); // Option 3
16
}

von M. K. (sylaina)


Lesenswert?

Patrick L. schrieb:
> Man kann dies bei den Meisten einstellen, ob "Free Run" oder
> "Anschubsen"

Deshalb fragte ich ;)

von grundschüler (Gast)


Lesenswert?

meine das Problem gefunden zu haben:
1
#define I2C1_Repeated_Start i2c_rep_start
2
3
4
void readRegister (uint8_t reg, unsigned int *value) {
5
6
  I2C1_Start();
7
    I2C1_Wr(ina219_i2cAddress);
8
    I2C1_Wr(reg);
9
    I2C1_Repeated_Start();
10
//    *value = ((I2C1_Rd(1) << 8) | I2C1_Rd(0));
11
    *value = ((i2c_readAck() << 8) | i2c_readNak());
12
}
13
14
/*************************************************************************
15
 Issues a repeated start condition and sends address and transfer direction 
16
17
 Input:   address and transfer direction of I2C device
18
 
19
 Return:  0 device accessible
20
          1 failed to access device
21
*************************************************************************/
22
unsigned char i2c_rep_start(unsigned char address)
23
{
24
    return i2c_start( address );
25
26
}/* i2c_rep_start */

kann doch eigentlich nicht richtig sein?

wo finde ich die Original-I2C1_Repeated_Start()?

von Clemens L. (c_l)


Lesenswert?

grundschüler schrieb:
> meine das Problem gefunden zu haben:
>
> unsigned char i2c_rep_start(unsigned char address)
> {
>     return i2c_start( address );
> }
>
> kann doch eigentlich nicht richtig sein?

Doch; ein repeated Start ist ein normaler Start, bei dem vorher kein 
Stop gesendet wurde.

Ich würde vermuten, dass beim Lesen der Register die Fehlerbehandlung 
fehlt, und dass die I²C-Kommunikation überhaupt nicht geht.

Zeig doch mal deinen Aufbau. Und idealerweise die I²C-Signale auf einem 
Oszilloskop.

von grundschüler (Gast)


Lesenswert?

Clemens L. schrieb:

Danke, ein hilfreicher Blick von außen.

Wahrscheinlich hast du mit dem Kommunikationsproblem recht. Ich werde 
einen la anschließen und ein Foto vom Aufbau machen und mich dann wieder 
melden.

von grundschüler (Gast)


Lesenswert?

funktionierender code:
1
#define INA219_ADDRESS                         (0x80)    // 1000000 (A0+A1=GND)
2
3
void writeRegister (uint8_t reg, uint16_t value) 
4
{
5
  i2c_start(INA219_ADDRESS);
6
  i2c_write(reg);
7
  i2c_write((value >> 8) & 0xff);
8
  i2c_write(value & 0xFF);
9
  i2c_stop();
10
}
11
12
13
u16 readRegister (uint8_t reg ) {
14
u16 value=0;
15
//set pointer
16
  i2c_start(INA219_ADDRESS);
17
  i2c_write(reg);
18
  i2c_stop();
19
//read frame
20
  i2c_start(INA219_ADDRESS+1);
21
//  i2c_repeated_start(INA219_ADDRESS+1);
22
    value=(i2c_Read(1)<<8);
23
  value+= i2c_Read(0);
24
  i2c_stop();
25
  return value;
26
}

Der Tip mit dem oszilloskop war gut. Diverse Fehler gefuunden. Letztlich 
hab ich alles mit bitbang-i2c neu gemacht.

Die Register werden jetzt korrekt geschrieben und ausgelesen.

Aber das Ergebnis ist doch sehr enttäuschend. Die Schwankungsbreite der 
Werte, die der ina219-Baustein liefert ist mit 500% doch sehr groß. Ob 
das praktisch überhaupt aussagekräftig ist?

von Klaus R. (klara)


Lesenswert?

grundschüler schrieb:
> Aber das Ergebnis ist doch sehr enttäuschend. Die Schwankungsbreite der
> Werte, die der ina219-Baustein liefert ist mit 500% doch sehr groß.

Das liegt sicher nicht am INA219.
mfg Klaus

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Klaus R. schrieb:
> Das liegt sicher nicht am INA219.
> mfg Klaus

Meist unsaubere Speisung, Fehlende Block-Kap's. Ferrit-perlen oder 
Spannungsregler die Schwingen. Als Beispiel, LM78xx können das gut wen 
man die Falschen Kondensatoren verwendet.
Kann aber auch sein, das einfach das Layout einstreuung hat.
Normal ist dies keinesfalls!

von Klaus R. (klara)


Lesenswert?

grundschüler schrieb:
> Aber das Ergebnis ist doch sehr enttäuschend.

Irgend etwas stimmt da noch nicht. Mach doch mal ein Foto vom Aufbau der 
Schaltung. Sage oder besser, zeige uns was Du messen willst. Du hast ja 
einen Oszi.
mfg Klaus

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

gar nicht so einfach mit Fotos wenn man das passende USB-Kabel verlegt 
hat...

Da ich ein fertiges Modul verwende kann am Aufbau eigentlich nicht viel 
falsch sein. Das Display zeigt den rohen Registerinhalt - jeweils vier 
Werte gemessen im Abstand von 2sec.

in dieser Reihenfolge:
#define INA219_REG_SHUNTVOLTAGE                (0x01)
#define INA219_REG_BUSVOLTAGE                  (0x02)
#define INA219_REG_POWER                       (0x03)
#define INA219_REG_CURRENT                     (0x04)

Busvoltage und power sind halbwegs brauchbar - shuntvoltage und current 
sind im Prinzip für die Tonne.

von grundschüler (Gast)


Lesenswert?

nachtrag:

wenn ich die Spannung wegnehme ändert sich shuntvoltage praktisch nicht 
während alle anderen Werte auf null gehen.

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

grundschüler schrieb:
> Die Schwankungsbreite der
> Werte, die der ina219-Baustein liefert ist mit 500% doch sehr groß.

Ich habe mehrere Aufbauten mit Arduino (AT328) und INA219, die Meßwerte 
sind sehr stabil und zuverlässig.

Finde den Pfusch in Deiner Hardware, ungeschickte Leitungsführungen, 
Störsignale, Masse nicht sauber ... das verrät meine Glaskugel nicht.

Es ist auch nicht auszuschließen, dass Deine Abfrage unsauber ist. 
Schaue Dir mal den Anhang an.

Ich habe mir in losen Versuchsaufbauten ein paar INA219 zerschossen, 
vermutlich über wackelige Massepotentiale. Im ordentlich gelöteten 
fertigen Aufbau ist bislang nichts passiert, also auch diese Möglichkeit 
in Betracht ziehen.

von Klaus R. (klara)


Lesenswert?

grundschüler schrieb:
> wenn ich die Spannung wegnehme ändert sich shuntvoltage praktisch nicht
> während alle anderen Werte auf null gehen.

Mit dem Shunt soll ja den Strom gemessen werden. Wenn kein Strom fliesst 
liegt am Shunt keine Spannungsdifferenz an. Der INA219 darf auch nicht 
floaten. Dann könnte es zu Überspannungen an den Eingängen kommen. Ich 
würde die Eingänge bei Deinem Aufbau unbedigt noch vor Überspannung 
sichern. Ein kleiner Abreißfunke beim Öffnen des Stromkreises erzeugt 
leicht über 26 V. Negative Spannungen mag der INA219 auch nicht.

Der Schaltplan wäre hilfreich.
mfg Klaus

von grundschüler (Gast)


Lesenswert?

habe jetzt die hardware überprüft - d.h. ein neues ina219-modul gekauft 
uneingesetzt.

gefühlt etwas gleichmäßiger - aber die shunt-ergebnisse sind nach wie 
vor praktisch nicht verwendbar. Eigentlich interessiert mich ja nur die 
bus-Spannung. Ich bilde jetzt den Mittelwert aus zehn Messungen und 
stelle jeweils fest, wann der Mittelwert nach unten ausweicht. Damit 
bekomme ich eindeutige Ergebnisse für den geplanten Batterietester.
1
while (1) 
2
3
{
4
iwu++;
5
if(iwu==60)bool_wu=1;
6
7
8
i++;
9
if(i==10)i=0;
10
11
    lcd_goto(1, 1);
12
  xx=  getShuntVoltage_raw();
13
shuntVoltageX[i]=xx;    
14
    lcd_int4(xx/46);
15
16
    wait;wait;
17
    
18
    
19
shuntVoltageX[10]=0;  
20
  
21
  for (u8 ii=0;ii<10;ii++)
22
  {
23
shuntVoltageX[10]+=shuntVoltageX[ii];    
24
}
25
26
    lcd_goto(1, 6);
27
    lcd_int4(shuntVoltageX[10]/467);
28
29
    lcd_goto(1, 11);
30
    lcd_int(shuntVoltageX[10]);
31
32
  if(bool_wu){
33
  messtimer++;
34
  
35
  
36
    if(shuntVoltageX[10]/467<shuntVoltage_alt)
37
    {
38
      shuntVoltage_alt=shuntVoltageX[10]/467;
39
40
      lcd_goto(1, 17);
41
      lcd_int4(shuntVoltage_alt);
42
43
44
      lcd_goto(2+(y/4), (y%4)*5+1);
45
      y++;
46
      if(y==12)y=0;
47
48
      lcd_int4(messtimer);
49
      messtimer=0;
50
    }
51
  
52
  }
53
wait;wait;    
54
    
55
56
}

Den Batterietest stelle ich mir so vor, dass ich beim vollgeladenen Akku 
prüfe, wie lange die Entladung von 20,0 V  auf 19,5 V dauert. Je größer 
die Zeitspanne, um so besser der Akku.

von Klaus R. (klara)


Angehängte Dateien:

Lesenswert?

grundschüler schrieb:
> habe jetzt die hardware überprüft - d.h. ein neues ina219-modul gekauft
> uneingesetzt.
>
> gefühlt etwas gleichmäßiger - aber die shunt-ergebnisse sind nach wie
> vor praktisch nicht verwendbar.

Das kann nicht sein. Du hast doch ein Oszi. Dann messe doch mal IN+ 
gegen Masse, IN- gegen Masse und IB+ gegen IN-. Sind die Spannungen 
sauber und konstant?
Mache Fotos vom Oszi und zeige sie hier im Forum.

Ein Schaltplan  .... Ich sehe gerade Deinen Fehler!!!

Sie beigefügtes Bild.

Schau Dir zunächst unten im Bild die Beschaltung eines INA219 genau an. 
Wie ist der Shunt am INA219 angeschlossen?

Der Shunt muß parallel zu Vin+ und Vin- liegen. Dann kommt Supply, die 
Ladespannung an Vin+ und Load, der Akku oder Verbraucher an Vin-.
mfg Klaus

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

So würde er ja den Kurzschlusstrom
messen.

von Klaus R. (klara)


Lesenswert?

Peter K. schrieb:
> So würde er ja den Kurzschlusstrom
> messen.

Mit seiner ursprüglichen Schaltung misst der TO keinen Strom. Es fließt 
nämlich keiner. Der differenzielle Widerstand von Vin+ und Vin- ist dann 
dazwischen. Deshalb muß der Shunt von Vin+ zu Vin- angeschlossen werden. 
Siehe Datenblatt.
mfg klaus

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Ich bin jetzt von dem Bild ausgegangen
was er eben gepostet hat. Und da stimmt die
Beschaltung. Wenn er es so macht wie du eingezeichnet
hast, dann liegt die Battterie direkt an den Shunt und
macht einen Kurzschluss bis auf die 0,1 Ohm vom Shunt.
Oder soll das oben links überhaupt kein Akku sein ?

: Bearbeitet durch User
von Klaus R. (klara)


Lesenswert?

Peter K. schrieb:
> Ich bin jetzt von dem Bild ausgegangen
> was er eben gepostet hat. Und da stimmt die
> Beschaltung.

Durch den Shunt soll doch Strom fliessen.

Die ursprüngliche Beschaltung sieht doch so aus. Oben aus dem schwarzen 
Gehäuse kommt links ein blau-grauer Draht heraus der unten auf der 
Anschlussklemme rechts angeschlossen ist. Am zweiten Pol der 
Anschlussklemme, links, geht ein Draht zum Shunt auf der rechten Seite. 
Der Strom soll über den anderen Shunt auf der linken Seite nach oben zu 
schwarzen Gehäuse, rechts, fliessen.

1. Fehler

Zwischen den Anschußklemmen liegt nur der differezielle Widerstand des 
PGA. Da fließt kein nennswerter Strom.

2. Fehler

Wozu wird bei dieser Beschaltung der Shunt überhaupt benötigt?


> Wenn er es so macht wie du eingezeichnet
> hast, dann liegt die Battterie direkt an den Shunt und
> macht einen Kurzschluss bis auf die 0,1 Ohm vom Shunt.
> Oder soll das oben links überhaupt kein Akku sein ?

Was da oben am schwarzen Gehäuse liegt hat der TO nicht beschrieben.
Er mißt zwei Spannungen. Da der Shunt nicht parallel zu Vin+ und Vin- 
liegt ist die Verbindung sehr hochohmig und schwimmt.

Wie mit dem INA zu messen ist geht aus dem Datenblatt Figure 13 genau 
hervor.
mfg Klaus

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Ich bin davon ausgegangen das er auf dem
Bild ein Akku mit Lastwiderstand dort zeigt.
Und über den INA219 will er nun die Spannung und
Strom messen.  Aber da man aus dem Bild nix erkennen
kann sollte vielleicht hier mal ein Schaltplan
vorgelegt werden. Kann ja auch mit Hand gezeichnet werden.
So wird das hier zur Raterunde.

von Manfred (Gast)


Lesenswert?

Klaus R. schrieb:
> Ein Schaltplan  .... Ich sehe gerade Deinen Fehler!!!

Ich auch, und zwar in Deiner angeblichen Korrektur, so wird das nichts.

Peter K. schrieb:
> Ich bin jetzt von dem Bild ausgegangen
> was er eben gepostet hat. Und da stimmt die
> Beschaltung.

Links oben ist das Netzgerät und das INA-Board ist in Reihe mit der 
Last, so muß das sein.

Aber: Es muß in die Plusleitung, kann ich am Bild nicht erkennen.

Und: Ich sehe keine GND-Verbindung zwischen Netzgerät und INA, wie soll 
damit eine Spannungsmessung klappen?

Ich wiederhole mich:
Manfred schrieb:
> Ich habe mir in losen Versuchsaufbauten ein paar INA219 zerschossen,
> vermutlich über wackelige Massepotentiale. Im ordentlich gelöteten
> fertigen Aufbau ist bislang nichts passiert, also auch diese Möglichkeit
> in Betracht ziehen.

von Klaus R. (klara)


Lesenswert?

Manfred schrieb:
> Links oben ist das Netzgerät und das INA-Board ist in Reihe mit der
> Last, so muß das sein.

Wozu ist denn der Shunt da?

> das INA-Board ist in Reihe mit der
> Last

Du meinst über die Anschlussklemmen?
Das INA-Board kennen wir ja auch nicht.

Für mich liegt es nahe daß die Anschlußklemme der Abschluß für Vin+ und 
Vin- ist. Der TO will doch irgendwie Spannung und Strom messen.

Wie das geht sieht man doch im Datenblatt des INA219. Das ist eine 
klassische Methode um High-Side eine Differenzspannung zu messen und 
daraus den Strom zu berechnen.

Zwischen Vin+ und Vin- fließt kein Strom. Das ist für 
Differenzverstärker ebenfalls typisch. Der Strom fließt nur über den 
parallelgeschalteten Shunt. Wie gesagt, das ist eine klassische Methode.

Kurz gegoogelt.

https://www.reichelt.de/entwicklerboards-stromsensor-mit-breakoutboard-ina219-debo-sens-power-p266047.html

Ja, da gibt es ein INA219 Breakout als Stromsensor. Den könnte der TO in 
der Tat verwenden. Er hätte uns auch frührer mal auch selber dieses 
kleine Detail zeigen können.

Diese Platine hat schon einen 0,1 Ohm Shunt. Wozu jetzt noch die dicken 
Leistungswiderstände verwendet werden bleibt rätselhaft. Ich muß wohl 
mal meine Glaskugel austauschen. Es immer erquickend wenn die 
Einzelheiten bröckchenweise ans Tageslicht kommen.

Also, der TO müßte vernüftige Werte messen können.

Es bleibt aber noch ein schon angesprochenes Problemchen.
Es gibt keinen Überspannungsschutz! Die Inputs werden +26 V vertragen. 
Allerdings sind nur -0,3 V erlaubt.
Aber der Überspannungsschutz ist ein neues Thema für eine weitere Runde.
mfg klaus

von Gerd E. (robberknight)


Lesenswert?

Ich kann nur dringend empfehlen bei solchen Problemen einen sauberen 
Schaltplan des gesamten Aufbaus zu zeichnen.

Also nicht nur ein Foto was Drähte und Module zeigt.

Und auch nicht irgendwelche Breakout-Boards nur als solche im Schaltplan 
verwenden.

Sondern die genaue Beschaltung, so wie sie im Breakoutboard umgesetzt 
ist, in den eigenen Schaltplan übernehmen. Am besten nen Rechteck drum 
und die Artikelnummer des Breakoutboards dazu.

Dann wird einem selbst nämlich klar was man da genau wie verbunden hat 
und kann das leicht mit Beispielschaltplänen und Prinzipschaltungen aus 
dem Datenblatt vergleichen. Natürlich haben es auch andere, wie z.B. wir 
hier im Forum, dann viel leichter zu helfen.

Ich hoffe das bisherige Stochern im Nebel hier war dem TO genug Lehre 
warum diese Vorgehensweise sinnvoll ist.

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Klaus R. schrieb:
> Wozu ist denn der Shunt da?

Wenn ich das mal wüsste, der muß irgendwas mit Strom messen zu tun 
haben.

>> das INA-Board ist in Reihe mit der Last
> Du meinst über die Anschlussklemmen?

Ja, und ich meine es nicht, ich weiss es!

> Das INA-Board kennen wir ja auch nicht.

Wenn Du weder den Baustein noch das Board kennst, dann erspare uns Deine 
falschen Ratschläge!

> Ja, da gibt es ein INA219 Breakout als Stromsensor.

Tolle Erkenntnis, wieso wohl steht bei TI im Datenblattkopf "Current 
Monitor"? Verdammt nochmal, die Strommessung per Shunt ist seine primäre 
Aufgabe, genau dafür wurde das IC entwickelt! Du postest ein Bild aus 
dem Datenblatt, aber hast es nicht verstanden.

Wenn grundschüler irgendwann in eine weiterführende Schule wechselt, 
lernt er evtl., wie man ordentliche Fotos macht. Trotzdem erkenne ich 
auf dem das allseits bekannte Board, wie ich es mehrfach eingesetzt 
habe. Die ganzen Chinadinger sind von Adafruit abgemalt, da findet man 
auch den Stromlauf dazu.

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Zwischen Vin+ und Vin- liegt der Shunt.
Der wird in Reihe zum messenden Objekt geschaltet.
Über den Shunt wird die Spannung gemessen und daraus
dann der Strom berechnet. Dies geschied alles auf dem
Board vom INA. Der last Widerstand ist wahrscheinlich dafür da,
das es keinen Kurzschluss gibt. Denn sonst wäre als einzigster
Verbraucher ja nur noch der Shunt vom INA (0,1 Ohm) vorhanden.
Und bei 3,2A ist schluss.

von Klaus R. (klara)


Lesenswert?

Manfred schrieb:
>> Ja, da gibt es ein INA219 Breakout als Stromsensor.
>
> Tolle Erkenntnis, wieso wohl steht bei TI im Datenblattkopf "Current
> Monitor"? Verdammt nochmal, die Strommessung per Shunt ist seine primäre
> Aufgabe, genau dafür wurde das IC entwickelt! Du postest ein Bild aus
> dem Datenblatt, aber hast es nicht verstanden.

Offensichtlich hast Du Dir den Link von Reichelt nicht richtig 
angesehen. Reichelt selber spricht vom Stromsensor. Der INA219 selber 
ist im Grunde genommen nur ein AD-Wandler mit PGA. Zusätzlich hat er 
Register für Leistungswerte, Stromwerte und Spannungswerte. Erst ein 
externer Widerstand macht das Ganze zum "Stromsensor" obwohl das nur ein 
Wert von zwei weiteren ist.

Und die primäre Aufgabe ist nicht nur die Strommessung. Aus dem 
gemessenen Strom und einer Spannung wird auch die Leistung ermittelt. 
Kalibrieren und filtern kann man auch. Also ein recht brauchbarer IC.
mfg Klaus

von grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

Klaus R. schrieb:
> Ein Schaltplan  .... Ich sehe gerade Deinen Fehler!!!

Denke, der Anschluss ist richtig Akku - shunt - Last in dieser 
Reihenfolge in Reihe. Die Busspannung wird ja auch richtig gemessen.

ich hab kein brauchbares oszi - nur einen logic-analycer. Die 
i2c-Kommunikation klappt aber inzwischen einwandfrei.

von Klaus R. (klara)


Lesenswert?

grundschüler schrieb:
> Denke, der Anschluss ist richtig Akku - shunt - Last in dieser
> Reihenfolge in Reihe. Die Busspannung wird ja auch richtig gemessen.

Es fehlte nur die Schaltung des Breakouts. So konnte man annehmen das 
die Leistungswiderstände der Shunt sein sollten. Wenn die Busspannung 
auch richtig gemessen wird, dann ist ja alles in Ordnung. Aber Du 
zeigtest uns auch stärkere Schwankungen. Die treten in dieser Form bei 
einem Akku nicht auf.
mfg Klaus

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.