I2C GasGauge STC3100: kein Adressieren möglich?

Gast #5089439
Lesenswert?

Hallo!

Ich verwende den o.g. Sensor um Lade- und Entladeströme von und zu einem 
Akku zu messen, klappt prima.

http://www.st.com/en/power-management/stc3100.html

Die Idee, einen weiteren Sensor zu verbauen, scheitert (scheinbar) 
daran, dass der STC3100 eine feste I2C-Adresse besitzt, ich also am 
TWI-Bus des Atmega keinen weiteren (mit anderer Adresse) anschließen 
kann.


Die Lektür des Datenblattes ergab zwar, dass jeder STC3100 eine 
einmalige ID besitzt- aber was nützt mir die, wenn sie alle bei Adresse 
10h antworten?!
#5089458
Lesenswert?

Stephan schrieb:
> STC3100 eine feste I2C-Adresse besitz

Und

Stephan schrieb:
> keinen weiteren (mit anderer Adresse) anschließen kann

Ja was, die gleiche oder eine andere Adresse?

Falls ein und der selbe Sensor mit fester Adresse verwendet werden 
sollen, gibt es spezielle i2c Multiplexer. Der Sinn eine feste Adresse 
zu vergeben bei I2C hat sich mir auch noch nie erschlossen.
Gast #5089467
Lesenswert?

Stephan schrieb:
> Die Lektür des Datenblattes ergab zwar, dass jeder STC3100 eine
> einmalige ID besitzt- aber was nützt mir die, wenn sie alle bei Adresse
> 10h antworten?!

Das Ding ist für eine einzelne LiIon-Zellebene gedacht.
Die ID ist für die Erkennung des jeweiligen Akkupacks wie eine 
Seriennummer gedacht.
Will man mehrere der Akkupacks verwenden, braucht man einen 
I2C-Multiplexer.
Die Parallelschaltung von LiIonen-Zellen ist relativ unproblematisch; 
interessant ist die Reihenschaltung - da der Sensor massebezogen misst, 
muss man bei einer Reihenschaltung eh den ganzen Kram entkoppeln.
Der I2C-Bus würde ohne die Entkopplung nicht richtig funktionieren.
Die Allupacks müssten alle an der gleichen Masse hängen.
#5089470
Lesenswert?

Stephan schrieb:
> Die Idee, einen weiteren Sensor zu verbauen, scheitert (scheinbar)
> daran, dass der STC3100 eine feste I2C-Adresse besitzt

Bits DevADDR0 to DevADDR2 are factory-programmable, the default device 
address value being 70h (AddrID0 = AddrID1 = AddrID2 = 0).

Also anscheinend können diese programmiert werden, stellt sich die Frage 
nur wie. Sonst gäbe es ja kein default?!

Ob es evtl. ein Register gibt, welches man beschreiben kann?

hast du vllt. mal nach welchen geschaut die über Pull Ups / Pull Downs 
konfiguriert werden können. Bei Digi-Potis entsprechen dann diese 3 Pins 
den 3 Adressbits.
#5090624
Lesenswert?

Adam P. schrieb:
> Mir ist schon klar, dass es "Werksseitig" bedeutet - aber könnte ja
> sein, dass die auch nur intern ein Register beschreiben, welches so
> nicht im Datenblatt aufgelistet ist.

Oder sie tauschen bei der Chipherstellung die Maske für einen Metall- 
Layer aus. Auch das wäre "factory programmable".

Schau Dir mal an wie man I²C Busse multiplexen kann oder nimm einen µC 
mit mehr als einem I²C Bus - der Master ist außerdem noch einigermaßen 
ordentlich in Software implementierbar.
Gast #5090640
Lesenswert?

Du könntest auch mit einem Analogmux den Messpin umschalten und nur ein 
Device nutzen, oder auch die SDA-Leitung von zwei Devices.

Schwaches Bild von ST - bei Maxim gäbe es die verschiedenen 
Adressvarianten direkt zu kaufen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren