Forum: Mikrocontroller und Digitale Elektronik INA219 Registereinstellungen


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Peter (Gast)


Lesenswert?

Hallo
Im Datenblatt zum INA219 sind die verschiedenen Einstellungen für die 
Regsterinformationen angegeben.
In der Tabelle 2 stehen welches Register für was ist.
In der Figur 19 stehen die Werte zur Einstellung für die Register mit 
den unterschiedlichen Zeiten und Verstärkungen.
Leider komme ich bei den Angaben total durcheinander.
Wenn ich es richtig verstanden habe sind dies Kombinationen möglich:

- 16V und 200mA
- 16V und 500mV
- 32V und 2A
- 32V und 1A

Leider verstehe ich das mit der Einstellung nicht richtig, da die 
Einstellung mit 16 Bit beim I2C erfolgt.
Kann mir jemand etwas hilfe geben?

LG Pt

von Karl M. (Gast)


Lesenswert?

Hallo Peter schrieb:
> Leider verstehe ich das mit der Einstellung nicht richtig, da die
> Einstellung mit 16 Bit beim I2C erfolgt.

Das verstehe ich jetzt nicht an deiner Ausführung.
Was hat die Datenübertragung mit den Interna des INA219 zu tun?

Nichts!

Man muss mit einem Schaltplan starten, dann die Werte, wie 
Shunt-Widerstand und Versorgungsspannung als Parameter dem INA219 
bereitstellen.
Dann kann der für uns rechnen und wir holen die Messwerte U und I, für 
eine vorher eingestellte Messzeit und einer Anzahl von Messwerte für 
eine Mittelwertbildung, ab.

von Peter (Gast)


Lesenswert?

Der Schaltplan ist vom Hersteller festgelegt. Es handelt sich um das 
kleine Modul mit dem INA drauf und dem Widerstand und ein bischen 
Hühnerfutter.
Wie kann ich die Parameter einstellen? In der Figur 19 stehen die 
Angaben drin, wie ich was einstellen kann. Wie kann ich das machen? 
Arbeite mit C nicht Arduino. Die Beispile dazu habe ich gesehen. Ist 
leider etwas anderes.

LG Pt

von g457 (Gast)


Lesenswert?

> Es handelt sich um das kleine Modul mit dem INA drauf

Ist das Dein Ernst? Gugl liefert dazu über 50000 Treffer. Welcher davon 
isses denn etwa?

von Karl M. (Gast)


Lesenswert?

Peter,

Du musst den pot. Helfern alle Infos im Detail, die Dir auch vorliegen, 
zur Verfügung stellen.

Dann dein Programm einstellen, das erwartete Verhalten und das 
beobachtete Verhalten schildern.
Wenn was nicht funktioniert genau beschreiben, woran nach deiner Analyse 
liegen könnte.

Ich gehe mal davon aus, dass Du nicht weist, was das I2C (TWI) bedeutet 
und wie man es mit C auf einem µC programmiert?
Also lerne erst einmal die Grundlagen, dann erstelle eine I2C 
Funktionssammlung.
Damit kannst Du dein Programm weitere modellieren, nachdem Du alle 
INA219 Register und Bits aus dem Datenblatt in deiner Funktionssammlung 
abgebildet hast.

Dann stellst Du das hier ein und die viele Mitleser werden Dir 
antworten, wenn Sie wissen, um welchen Compiler und Zielprozessor 
(Schaltplan) es sich handelt.

von Cyblord -. (cyblord)


Lesenswert?

Also ich nutze den INA219 seit einiger Zeit erfolgreich in einem 
Sensorprojekt. Allerdings komplett Bare-Metal auch ohne Breakout o.ä.
Aber ich kann mir beim besten Willen keinen Reim auf die Fragestellungen 
hier machen.
Der INA ist recht simpel. Man bekommt mit wenigen bis keinen 
Einstellungen direkt die Spannung angezeigt. Um den Strom und die 
Kapazität zu bekommen muss den verwendeten Shunt in ein Register 
programmieren. Nach Formel in Datenblatt. Danach findet man diese beiden 
Werte quasi schon umgerechnet in den entsprechenden Registern.

Register lesen und schreiben läuft wie bei jedem I2C Baustein. Es gibt 
hier keine Überraschungen.
Nur das Datenblatt sollte man schon lesen.

von Peter (Gast)


Lesenswert?

Hallo Karl
mit dem I2C Bus arbeite ich schon länger. Dabei übertrage ich 
verschiedene Sachen mit dem PCF z.B. Anzeige oder Ein und Ausgänge. 
Dabei kommen aber immer 8 Bit Zahlen dran. Für die Einstellung der 
Register beim INA werden aber 16 Bit Zahlen verwendet. z.B. 0x2800, Kann 
ich diese genau so übertragen oder muss ich 2x 8 bit senden?
Verwende C mit einem ATm 128

Wenn ich was zum INA219 suche bekomme ich auch so viel Anzeigen. Die 
meisten da von beziehen sich auf das ori des Herstellers, also Arduino. 
Das ist das Problem, die Umsetzung zu C, ist für mich nicht so leicht.
Für C scheint es keine Beispiele zu geben, mehr für Pyhton oder dem 
Raspi

LG PT

von Cyblord -. (cyblord)


Lesenswert?

Peter schrieb:
> Für die Einstellung der
> Register beim INA werden aber 16 Bit Zahlen verwendet. z.B. 0x2800, Kann
> ich diese genau so übertragen oder muss ich 2x 8 bit senden?

Steht im Datenblatt. 16 Bit werden eben als 2x Bit übertragen. Wie auch 
sonst? Du musst halt schauen ob du erst MSB oder LSB übertragen musst. 
Also nochmal: Guck bitte ins Datenblatt da steht alles. Lass die Finger 
von Arduino Doku oder sinstigen Maker/Pfuscher Tutorials.

von Peter (Gast)


Lesenswert?

Hallo
muss noch fragen.
Hat jemand vielleicht ein Beispiel für mich (in C). Nicht für Arduino, 
die gibs genug im Netz.
So als Hinweis für die Funktion oder Teile da von.

LG Pt

von Gerhard G. (xmega)


Lesenswert?

Hallo, schau dir das mal an:

ATmega128:
https://github.com/oopsitmelted/BatteryBuddy/tree/master/Code

Solltest du unter INA219 nichts finden, schau doch mal unter INA226.
Der ist nahezu  kompatible(von der Logik und dem I2C Verhalten).

Gruß G.G.

von Cyblord -. (cyblord)


Lesenswert?

Peter schrieb:
> Hallo
> muss noch fragen.
> Hat jemand vielleicht ein Beispiel für mich (in C). Nicht für Arduino,
> die gibs genug im Netz.
> So als Hinweis für die Funktion oder Teile da von.
>
> LG Pt

Immer noch nicht ins Datenblatt geschaut? So wird das nichts.

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.