Forum: Mikrocontroller und Digitale Elektronik Finde I2C Slave nicht.


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Simon K. (simon1516)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich habe gerade das Problem, dass ich einen I2C Slave als IC auf einer 
Platine nicht finden kann. Es befinden sich zwei I2C Slaves auf auf dem 
Schaltplan. Der Sensor (ICM20948) wird mittels Nordics "nRF TWI/I2C 
Scanner" (SDK example) gefunden. Der IC um den es geht (LTC2941) aber 
nicht.

Da die Software funktioniert und den anderen IC findet (Sensor), vermute 
ich einen Hardwarefehler auf meiner Platine.

Verstehe ich folgendes richtig? Ich betreibe den IC mit einer Lipo (ca. 
3-4,2V). Das ist laut Datenblatt 
(https://www.analog.com/media/en/technical-documentation/data-sheets/LTC2941.pdf) 
in dem Bereich auch zulässig. Der I2C Bus wird mit einer anderen 
Spannung VDD (1,8V) betrieben. Auch das ist laut Datenblatt zulässig 
(0,3*Betriebsspannung ist Minimum und 0,7*Betriebsspannung ist Maximum, 
Datenblatt S. 3).

Schaltplan ist anbei. Vielleicht seht ihr ja noch ein NoGo :-)

Danke und Gruß

Simon

von Schlaumaier (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Hast du im Code die richtige Adresse angegeben. ?? Das ist 
Standard-Fehler No. 1

von A. S. (achs)


Bewertung
1 lesenswert
nicht lesenswert
das IC hat eine andere Spannung als der I2C-Bus? sogar doppelt so hoch? 
Dann brauchst Du vermutlich die FET-Schaltung für Clock und Daten.

von Schlaumaier (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Ich verstehe aber deine Stromprobleme nicht.

Lt. Datenblatt Seite 2 oben kann/braucht das Teil zwischen 0.3 - 6 Volt. 
Was für mich bedeutet, das Teil würde ich ganz normal an die 5 V meines 
Arduino hängen.

von Hmmm (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Simon K. schrieb:
> Der I2C Bus wird mit einer anderen
> Spannung VDD (1,8V) betrieben. Auch das ist laut Datenblatt zulässig
> (0,3*Betriebsspannung ist Minimum und 0,7*Betriebsspannung ist Maximum,
> Datenblatt S. 3).

Threshold ist nicht die I2C-Betriebsspannung, sondern die Schwelle 
zwischen High- und Low-Pegel. Im Worst Case also 4.2V*0.7=2.94V, und 
dann sind die 1.8V I2C-High-Pegel für das IC ein sehr eindeutiger 
Low-Pegel.

von Simon K. (simon1516)


Bewertung
0 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Hast du im Code die richtige Adresse angegeben. ?? Das ist
> Standard-Fehler No. 1

Das SDK example durchforstet alle mögliche  I2C Adressen und zeigt alle 
erreichbaren Teilnehmer an.

A. S. schrieb:
> das IC hat eine andere Spannung als der I2C-Bus?

Ja.

>sogar doppelt so hoch?
> Dann brauchst Du vermutlich die FET-Schaltung für Clock und Daten.

Warum sollte ich die brauchen? Diese Regel ist mir nicht bekannt. I2C 
sollte auch mit anderen Spannungen als der Betriebsspannung 
irgendwelcher IC´s funktionieren. Kannst du ein Beispiel zeigen, wo das 
so gemacht ist?

Schlaumaier schrieb:
> Ich verstehe aber deine Stromprobleme nicht.
>
> Lt. Datenblatt Seite 2 oben kann/braucht das Teil zwischen 0.3 - 6 Volt.
> Was für mich bedeutet, das Teil würde ich ganz normal an die 5 V meines
> Arduino hängen.

Korrekt. Die Spannungsversorgung, die in diesem Bereich liegt, 
beschränkt aber mit ihrem konkreten Wert folglich den Bereich für die 
I2C Pegel. Und das ist wohl das Problem.

Hmmm schrieb:
> Threshold ist nicht die I2C-Betriebsspannung, sondern die Schwelle
> zwischen High- und Low-Pegel. Im Worst Case also 4.2V*0.7=2.94V, und
> dann sind die 1.8V I2C-High-Pegel für das IC ein sehr eindeutiger
> Low-Pegel.

Hört sich plausibel an. Mist. Ich werde morgen mal versuchen, die 
Versorgunggspannung auf 2,5V zu legen. Dann hätte ich 2,5V*0,7, dann ist 
es unter 1,8V...in der Hoffnung, dass dies funktioniert :-/

von PittyJ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich schliesse dann meistens das Oszi an, und schaue, was auf den 
Leitungen wirklich los ist.

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Simon K. schrieb:
> Der I2C Bus wird mit einer anderen
> Spannung VDD (1,8V) betrieben.

Ich schreib die Spannungen immer in Klartext in den Schaltplan. Das 
vermeidet Rätselraten und Fehler.

Warum benutzt Du verschiedene Spannungen?
Natürlich braucht man dann auch Pegelwandler:
https://www.nxp.com/docs/en/application-note/AN10441.pdf

Für 1,8V geht aber nicht jeder FET.

von Simon K. (simon1516)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

danke für eure Antworten.

Da am I2C Bus auch andere IC´s hängen, möchte ich an den Parametern von 
I2C nichts ändern. Bedeutet gleichzeitig, dass der I2C Slave der nicht 
funktioniert (Battery Gas Gauge) rausgeschmissen und ersetzt wird. Was 
haltet ihr von folgendem IC?

https://www.mouser.de/datasheet/2/256/MAX17055-1097125.pdf

Für mich interessant, da:

- lötbar im TDFN package
- relativ niedriger Ruhestrom
- die I2C Signale müssen unter 0,5V sein um als Low zu gelten und über 
1,5V um als high zu gelten 
(https://www.mouser.de/datasheet/2/256/MAX17055-1097125.pdf, S.4, VIH 
und VIL). Da ich I2C mit 1,8V betreibe, passt das. Und das ohne 
Pegelwandler. Den IC kann ich unabhängig davon mit der Batteriespannung 
(3V-4,2V betreiben). Stimmt ihr damit überein?

Freundliche Grüße

Simon

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.