Forum: Mikrocontroller und Digitale Elektronik Es wird nur ein I2C Gerät erkannt


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Jurgen H. (jache)


Lesenswert?

Hallo,

ich habe auf einer Platine vier I2C Geräte drauf. Alle haben 
unterschiedliche Adressen.
Alle werden mit 3.3V versorgt.

Angeschlossen an einem ESP32 WROOM32 E.

Pull Up sind direkt am ESP32 dran. Jeweils 2K für SCA und SCL.

Mittels I2C Scanner bekomme ich nur ein Gerät angezeigt. Es ist auch 
nicht das erste in der Leitung, sondern das 2. Gerät.

Jemand eine Idee was das sein kann bzw Ideen wie ich was messen kann um 
herauszufinden wo das Problem ist?

: Verschoben durch Moderator
von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Jurgen H. schrieb:
> Ideen wie ich was messen kann um
> herauszufinden wo das Problem ist?

Mit einem Oszi siehst du die Signalform.
Ein LA zeigt dir die Protokollfehler

Ansonsten ist es natürlich klug das Testprogramm geheim zu halten.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jurgen H. schrieb:
> wie ich was messen kann um herauszufinden wo das Problem ist?
Du kennst doch die Adressen der Bausteine. Sprich sie einfach mal ganz 
direkt mit dieser Aderesse an und eben nicht nur über einen generischen 
Scanner, der tumb eine Adresse nach der anderen abscannt.

Ein Tipp: teile und herrsche.

1. Mach erst mal 1 Gerät an den Bus und schau ob du das ansteuern 
kannst.
2. Dann mach das 1. Gerät wieder weg und mach das 2. dran und steuere es 
an.
3. Dann mach beide dran und steuere sie an.
4. Und dann mach beide wieder weg und nimm das dritte Gerät in Betrieb.
5. Dann mach alle 3 dran...

Usw. usf. du erkennst das Muster?

Es funktioniert normalerweise nicht, etwas "fertig" zu entwicklen, das 
dann komplett aufzubauen und dann "alles auf einmal" in Betrieb zu 
nehmen.

: Bearbeitet durch Moderator
von Bruno V. (bruno_v)


Lesenswert?

Jurgen H. schrieb:
> Mittels I2C Scanner bekomme ich nur ein Gerät angezeigt. Es ist auch
> nicht das erste in der Leitung, sondern das 2. Gerät.
Da es ein Bus ist, sind sie elektrisch (hoffentlich) alle parallel.

Wenn Du ein Oszi hast, einen Mitschnitt hier einstellen

Wenn Du die Clockrate reduzieren kannst, ausprobieren.

Wenn Du einen Typ der Chips hast, hier DB verlinken

Ggf. 4k und 1k als pullups probieren (wenn eines funktioniert, kann man 
sich immer noch um die Gründe kümmern)

Wenn Du die Geräte einzeln an den Bus hängen kannst, auch das gerne 
probieren

von Michael H. (mha1)


Lesenswert?

Leider lässt du uns im Dunkeln bzgl. des Layouts/Verkabelung und der I2C 
Geräte, sowie den verwendeten I2C Parametern und des Programmcodes.

2K ist ein ungewöhnlicher Widerstandswert. Es gibt 2k Wiederstände, aber 
er ist nicht Teil der gebräuchlichen E12 und E24 Reihe (nur von E96 und 
E192). Ist der Wert korrekt? Der Pullup könnte für deine Anwendung den 
falschen Wert haben (abhängig von der kapazitiven Buslast und der 
Geschwindigkeit).

Alle deine I2C Geräte sind 3,3V fähig und werden auch mit 3,3V versorgt 
(nicht mit 5V)?

Die I2C Bus-Leitungen sind als Bus ausgeführt und nicht als Stern (keine 
Stichleitung vom Bus zu den einzelnen Geräten)?

Versuch es mal mit einer geringeren Geschwindigkeit und einzelnen 
Geräten am Bus.

von Rolf (rolf22)


Lesenswert?

Jurgen H. schrieb:
> ich habe auf einer Platine vier I2C Geräte drauf. Alle haben
> unterschiedliche Adressen.

Das nimmst du an, überprüfen konntest du es ja bisher nicht. Bei den 
Adressen kann in der Software viel schiefgehen.

> Mittels I2C Scanner bekomme ich nur ein Gerät angezeigt. Es ist auch
> nicht das erste in der Leitung, sondern das 2. Gerät.

Vielleicht zeigt der Scanner das erste Gerät an, das er anzusprechen 
versucht. Er weiß ja nichts über die Reihenfolge am Bus.

von Wastl (hartundweichware)


Lesenswert?

Michael H. schrieb:
> Es gibt 2k Wiederstände

Nein, die gibt es nicht. Aber es gibt 2k Widerstände.

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Rolf schrieb:
> Vielleicht zeigt der Scanner das erste Gerät an, das er anzusprechen
> versucht. Er weiß ja nichts über die Reihenfolge am Bus.

Ein I2C Scan zeigt an von welcher Adr eine Antwort kommt.
Die Reihenfolge der Geräte ist dabei vollkommen Wurst.

Michael H. schrieb:
> 2K ist ein ungewöhnlicher Widerstandswert
Nö.
Ist nur ein weiterer 0,x Cent Artikel in der BOM, den der Bestücker 
besorgt.

Bruno V. schrieb:
> Wenn Du ein Oszi hast, einen Mitschnitt hier einstellen
> Wenn Du die Clockrate reduzieren kannst, ausprobieren.
> Wenn Du einen Typ der Chips hast, hier DB verlinken
+1

von Jurgen H. (jache)


Lesenswert?

Michael H. schrieb:
> Alle deine I2C Geräte sind 3,3V fähig und werden auch mit 3,3V versorgt
> (nicht mit 5V)?

Yes

Michael H. schrieb:
> Die I2C Bus-Leitungen sind als Bus ausgeführt und nicht als Stern (keine
> Stichleitung vom Bus zu den einzelnen Geräten)?

Ich gehe einmal vom ESP zu allen Geräten. Also eine Leitung vom ESP32 zu 
Gerät 1 dann zu Gerät 2 usw.

Ich habe jedoch bei manchen ein VIA in der SCL / SDA Leitung welcher 
dann zu einem Gerät geht (auf der Platine einen Weg von <5mm)

Auch bei dem Gerät, dass funktioniert (MPU6050)

: Bearbeitet durch User
von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Jurgen H. schrieb:
> Yes

Nach lesen deiner Antwort, gehe ich davon aus, dass du nicht an einer 
Lösung deiner I2C Probleme interessiert bist.

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Masse durchverbunden?

von Εrnst B. (ernst)


Lesenswert?

Jurgen H. schrieb:
> Auch bei dem Gerät, dass funktioniert (MPU6050)

Viel interessanter als der funktionierende Chip wären die Typen der 
nicht-funktionierenden...

von Jurgen H. (jache)


Lesenswert?

Habe einmal einen INA219 drauf und zwei TCA9548 (Diese haben 
unterschiedliche I2C Adressen, bzw sollten Sie haben :) )

habe erst mal alles durchgepresst, dass passt. Sowohl 3.3V als auch GND 
und SDA und SCL. Habe auch keine Brücken drinnen.
Habe die PullUps mal gegen 1K ausgetauscht, leider wir Dimmer noch nur 
der MPU6050 gefunden (bzw nur den kann ich ansprechen)

Einen Oszi habe ich leider nicht

: Bearbeitet durch User
von Bruno V. (bruno_v)


Lesenswert?

Jurgen H. schrieb:
> Habe die PullUps mal gegen 1K ausgetauscht, leider wir Dimmer noch nur
> der MPU6050 gefunden (bzw nur den kann ich ansprechen)

4k? (3k3 oder 4k7)

Baudrate auf 100kBaud begrenzt im Scanner?

Anschluss geprüft? (Also Vcc/Gnd an den Pins ICs, pullup an SCL und SDA 
kommt an und geht auch auf z.B. 1.6V wenn Du einen gleich großen 
Widerstand gegen GND dranhälst?) Dazu reicht ein DMM.

Scanner durchläuft wirklich alle 127 Adressen?

von Wastl (hartundweichware)


Lesenswert?

Bruno V. schrieb:
> Scanner durchläuft wirklich alle 127 Adressen?

Der Scanner. Es gibt ja nur einen, deswegen braucht man
darüber ja nicht zu spekulieren. SCNR.

von Thomas Z. (usbman)


Lesenswert?

Dann erzähl halt mal welche Adressen du an jedem IC eingestellt hast.
Es kann doch nicht so schwer sein wichtige Infos schon in der 
Eröffnungspost darzulegen.

von Harald K. (kirnbichler)


Lesenswert?

Und die verschiedenen ICs sind nicht nur alle mit der gleichen Masse, 
sondern auch der gleichen Versorgungsspannung verbunden?

Wo bleibt eigentlich das Foto der bestückten Platine?

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Jurgen H. schrieb:
> Einen Oszi habe ich leider nicht
Wie bastelt man dann an Elektronik, wenn man nicht sehen kann was 
passiert?

Messgeräte sind die Augen und Ohren des Elektronikers und das Oszi ist 
eines der grundlegensten und wichtigsten Werkzeuge.
Eher verzichte ich auf ein Multimeter.

von Rolf (rolf22)


Lesenswert?

Jurgen H. schrieb:
> Habe (...) zwei TCA9548 (Diese haben
> unterschiedliche I2C Adressen, bzw sollten Sie haben :)

Tja, so einen Chip wie diesen wird ein 08/15-Scanner kaum korrekt 
ansprechen können. Wie, bitteschön, legt er denn die Signale A0, A1 und 
A2 an den Chip? Die kennt er doch gar nicht. Hast du die etwa fest 
verdrahtet?

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Harald K. schrieb:
> Wo bleibt eigentlich das Foto der bestückten Platine?

von Bruno V. (bruno_v)


Lesenswert?

Rolf schrieb:
> Tja, so einen Chip wie diesen wird ein 08/15-Scanner kaum korrekt
> ansprechen können. Wie, bitteschön, legt er denn die Signale A0, A1 und
> A2 an den Chip? Die kennt er doch gar nicht. Hast du die etwa fest
> verdrahtet?

Ups, sehe ja jetzt erst, was der Chip macht.

Ich hoffe ja mal, dass er die 3 Adressbits fest auf Masse/VCC gelegt 
hat, mit mindestens einer unterschiedlich.

@TO: Wofür brauchst Du 2 von diesen Chips? Bzw. was ist dahinter 
angeschlossen?

Hast Du Pullups am durchgeschalteten "Ausgang"?

von Stephan D. (50plus)


Lesenswert?

> Habe (...) zwei TCA9548
RESET input der TCA9548(A) richtig beschaltet?

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Rolf schrieb:
> Hast du die etwa fest
> verdrahtet?

Sollte er eigentlich, macht ja keinen Sinn, die Adresse dynamisch zu 
ändern..

Adressen ergeben sich dann laut Tabelle aus dem Datenblatt.

Einen Hinweis, ob sich zur Laufzeit, also ohne PowerCycle/Reset, 
geänderte Addresspins direkt auswirken, gibt das Datenblatt nicht. Würde 
ich also statisch lassen.

Devices hinter dem TCA wird der Scanner nicht finden, zumindest nicht 
ohne diese vorher passend zu konfigurieren. Aber die TCA9548 selber 
sollten schon ein ACK senden, also vom Scanner erkannt werden können.

: Bearbeitet durch User
von Rolf (rolf22)


Lesenswert?

Εrnst B. schrieb:
> Adressen ergeben sich dann laut Tabelle aus dem Datenblatt.

Ah, ja, richtig. Ich habe das Datenblatt zu hastig überflogen. Sorry.

Aber ein 08/15-Scanner kann die Slaves hinter dem Chip tatsächlich nicht 
einzeln ansprechen. Er weiß ja nichts von dem Multiplexen.

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Rolf schrieb:
> ein 08/15-Scanner kann die Slaves hinter dem Chip tatsächlich nicht
> einzeln ansprechen. Er weiß ja nichts von dem Multiplexen

Was stellst Du Dir denn unter dem I2C Scanner vor?

Das wird nur ein SW Dreizeiler sein, der eine von Null ansteigende 
Adresse auf den Bus gibt und jedes Gerät das innerhalb von Zeitspanne X 
ein ACK sendet in die Liste der vorhandenen Geräte aufnimmt.

von Jurgen H. (jache)


Lesenswert?

Hallo,

Danke euch für die ganzen Kommentare.

Ich versuche mal alles zu schreiben.

Hinter dem Multiplexer sind weitere INA219.
Ich möchte nicht von diesen INA219 die Adressen finden sondern vom 
Multiplexer selbst. Das ich die dahinter mit dem Scanner nicht finde ist 
mir klar.
Aber an jedem Ausgang vom Miultiplexer sind nochmal eigene 4k7 Pull-ups.

Es hängen alle I2C Devices am gleichen GND und am gleichen VCC (3.3V)

Die Adressen sollen wie folgt sein.
Multiplexer einmal 70 und einmal 71
MPU6050 die 68 und der eine einzelnen INA219, der nicht hinter den 
Multiplexern hängt, soll die 40 haben.
Was komisch ist, dass der MPU6050 bei mir die 69 hat obwohl der AD0 PIN 
auf GND liegt. Laut Datenblatt soll aber bei low an AD0 die 68 sein. Ist 
aber bei mir die 69. und der MPU funktioniert auch komplett.

Als Scanner nutzt ich den ganz normalen simplen der in einer Schleife 
von 1-127 hochzählt. Hier findet er nur die 69

Ich werde nachher mal Bilder von allem einstellen.
Bin gerade unterwegs.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jurgen H. schrieb:
> Ich werde nachher mal Bilder von allem einstellen.
Am besten auch den zugrundeliegenden Schaltplan. Denn die 
länderübergreifende Sprache der Elektronik sind nun mal Schaltpläne.

Michael schrieb:
> Jurgen H. schrieb:
>> Einen Oszi habe ich leider nicht
> Wie bastelt man dann an Elektronik, wenn man nicht sehen kann was passiert?
Denn so ein IC antwortet nur dann, wenn es das an seinen Pins das sieht, 
was in seinem Datenblatt spezifiziert ist. Dabei sind Spannungspegel, 
Flankensteilheiten und der zeitliche Ablauf wichtig. Eine Inbetriebnahme 
(samt Fehlersuche) eines seriellen Busses ohne Oszilloskop ist wie 
"Autofahren nach Gehör": man sieht immer erst hinterher, wenn es wieder 
nicht geklappt hat.

Jurgen H. schrieb:
> Habe die PullUps mal gegen 1K ausgetauscht, leider wir Dimmer noch nur
> der MPU6050 gefunden
Hast du mal meine zigfach erprobte Vorgehensweise mit der schrittweisen 
Inbetriebnahme versucht?

: Bearbeitet durch Moderator
von Rolf (rolf22)


Lesenswert?

Bruno V. schrieb:
Michael schrieb:
>> Vielleicht zeigt der Scanner das erste Gerät an, das er anzusprechen
>> versucht. Er weiß ja nichts über die Reihenfolge am Bus.
>
> Ein I2C Scan zeigt an von welcher Adr eine Antwort kommt.
> Die Reihenfolge der Geräte ist dabei vollkommen Wurst.

Wolltest du mich jetzt bestätigen oder mir widersprechen?

Ein Scanner durchläuft den ganzen Adressraum und versucht bei jeder 
Adresse, dahinter ein Gerät zu sehen. Sinnvollerweise benutzt er aber 
keinen Zufallsgenerator für die Reihenfolge – also ist ein bestimmtes 
Gerät immer das erste angesprochene. Und es ist vielleicht das einzige 
erkannte, falls am Ende von oder nach dessen Erkennung etwas nicht 
klappt.

von Hmmm (hmmm)


Lesenswert?

Jurgen H. schrieb:
> Was komisch ist, dass der MPU6050 bei mir die 69 hat obwohl der AD0 PIN
> auf GND liegt. Laut Datenblatt soll aber bei low an AD0 die 68 sein. Ist
> aber bei mir die 69.

Dass es zwei unterschiedliche Schreibweisen für I2C-Adressen (nackte 
7-Bit-Adresse oder mitsamt R/W-Bit als LSB) gibt, ist Dir bewusst?

Bei der letztgenannten gibt es halt zwei Adressen, eine zum Lesen und 
eine zum Schreiben.

von Jurgen H. (jache)


Angehängte Dateien:

Lesenswert?

Hier nun die Bilder...

Wegen er Adresse handelt es sich beim MPU6050 um die 0x69, anstatt die 
0x68, die es eigentlich laut Datenblatt seins sollte.

Der Rest auf der Platine funktioniert.

Der OLED ist mit Absicht noch nicht eingelötet.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Hmmm schrieb:
> Dass es zwei unterschiedliche Schreibweisen für I2C-Adressen (nackte
> 7-Bit-Adresse oder mitsamt R/W-Bit als LSB) gibt, ist Dir bewusst?
>
> Bei der letztgenannten gibt es halt zwei Adressen, eine zum Lesen und
> eine zum Schreiben.

und je nach Library muß beim scannen eben +1 durchgezählt werden <127 
oder +2 <256 durchgezählt werden, im letzteren Fall muß sich um R/W also 
bit0 high oder low gekümmert werden.

Dann gibt es noch die Adresserweiterung oberhalb 0x70 und ack/nack

also ein bissle mehr Arbeit für die Softwareerstellung tut not.

: Bearbeitet durch User
von Jurgen H. (jache)


Lesenswert?

Das heißt wenn es im Datenblatt 0x68 sein muss ich in meinem INO Coder 
die 0x69 als Adresse angeben? Mit der 0x69 kann ich zumindest den 
MPU6050 auslesen. Mit der 68 nicht.

von Thomas Z. (usbman)


Lesenswert?

Jurgen H. schrieb:
> Das heißt wenn es im Datenblatt 0x68 sein muss ich in meinem INO Coder
> die 0x69 als Adresse angeben? Mit der 0x69 kann ich zumindest den
> MPU6050 auslesen. Mit der 68 nicht.

Nun Das ist doch offensichtlich oder? wenn das Ding auf 69 antwortet 
hast du eine kalte Lötstelle an A0. -> A0 hängt in der Luft....

Wo eine kalte Lötstelle ist sind sicher auch noch mehr...

von Jurgen H. (jache)


Lesenswert?

Ich habe aber durchgepiepst und nicht auf dem Pad sondern am kleinen 
Minibeinchen. Da ist Kontakt.

von Steve van de Grens (roehrmond)


Lesenswert?

C26 ist für Gleichspannung hochohmig -> dein INA219 hat keine 
Stromversorgung.

Der CLKIN Anschluss vom MPU6050 gehört an GND (nicht an einen 
Kondensator), steht so im Datenblatt "Optional external reference clock 
input. Connect to GND if unused"

von Jens G. (jensig)


Lesenswert?

Steve van de Grens schrieb:
> C26 ist für Gleichspannung hochohmig -> dein INA219 hat keine
> Stromversorgung.

Dafür hat er +/-5V an den Eingängen. Das muß auch reichen ... ;-)

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Die TCA9548 bekommen keinen Reset und setzen deswegen niemals ihre 
Register zurück und lesen auch nicht ihre Adresse ein.
Es fehlt der Kondensator nach GND oder wie in der Appnote der Anschluss 
an die MCU (empfehlenswert zum Auflösen von Konfliktsituationen am Bus)

von Jurgen H. (jache)


Lesenswert?

Laut Datenblatt soll am Reset ein Widerstand zu VCC. Den habe ich doch 
drinnen.

https://www.ti.com/lit/ds/symlink/tca9548a.pdf#page20

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Jurgen H. schrieb:
> Laut Datenblatt soll am Reset ein Widerstand zu VCC.
Ja, und laut DB macht die MCU dann den Reset.
Und bei Dir?
Was macht da den Reset zum zurücksetzen der Statemachine?

von Bernd S. (bernds1)


Lesenswert?

Michael schrieb:
> Was macht da den Reset zum zurücksetzen der Statemachine?

Laut Datenblatt der "Power-on reset":

Zitat:
8.5.6 Power-On Reset
When power (from 0 V) is applied to VCC, an internal power-on reset 
holds the TCA9548A in a reset condition
until VCC has reached VPOR. At that point, the reset condition is 
released and the TCA9548A registers and I2C
state machine initialize to their default states. After that, VCC must 
be lowered to below VPOR and then back up to
the operating voltage for a power-reset cycle.

Oder hab ich da etwas falsch verstanden?

von Jurgen H. (jache)


Lesenswert?

So habe ich es auch verstanden gehabt, dass der manuelle redet über den 
Master optional ist. Aber es kann natürlich sein, dass ich da einen 
Fehler habe.
Aber beim INA219 müsste dann ja auch was falsch sein…

: Bearbeitet durch User
von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Bernd S. schrieb:
> Laut Datenblatt der "Power-on reset":
Wenn man die
10.1 Power-On Reset Requirements
einhält, sonst triggert der u.U. nicht.

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Jurgen H. schrieb:
> beim INA219 müsste dann ja auch was falsch sein…

Steve van de Grens schrieb:
> C26 ist für Gleichspannung hochohmig -> dein INA219 hat keine
> Stromversorgung.

von Rainer W. (rawi)


Lesenswert?

Lothar M. schrieb:
> Du kennst doch die Adressen der Bausteine. Sprich sie einfach mal ganz
> direkt mit dieser Aderesse an und eben nicht nur über einen generischen
> Scanner,

Genau das tut ein Scanner gewöhnlich. Er versucht den Baustein auf 
seiner Adresse anzusprechen und wertet das Acknowledge aus.

Dass der Scanner das nacheinander für alle möglichen Adressen versucht, 
geht den Baustein überhaupt nichts an.

von Rainer W. (rawi)


Lesenswert?

Jurgen H. schrieb:
> und zwei TCA9548 (Diese haben unterschiedliche I2C Adressen, bzw sollten Sie 
haben :) )

Dass sie die nicht nur haben sollten, sondern auch haben müssen, ist 
doch wohl klar, wenn du sie über den Bus ansprechen möchtest.

Woher nimmst du die Zuversicht, dass sie die auch haben?

von Jurgen H. (jache)


Lesenswert?

Weil wie oben im Schema zu sehen ist A0,A1 und A2 unterschiedlich 
beschaltet sind.

von Jurgen H. (jache)


Lesenswert?

Michael schrieb:
> Jurgen H. schrieb:
>> beim INA219 müsste dann ja auch was falsch sein…
>
> Steve van de Grens schrieb:
>> C26 ist für Gleichspannung hochohmig -> dein INA219 hat keine
>> Stromversorgung.

Dass muss mir jemand erklären, welches Bauteil muss ich hier bei C26 
nutzen?

von Jurgen H. (jache)


Lesenswert?

Michael schrieb:
> Bernd S. schrieb:
>> Laut Datenblatt der "Power-on reset":
> Wenn man die
> 10.1 Power-On Reset Requirements
> einhält, sonst triggert der u.U. nicht.


Ok, wie müsste ich hier was verbinden, dann kann ich das ggf. Mal 
mittels Litzen testen.

Wobei mich das wundert, denn die fertigen INA219 Devboards sind auch so 
aufgebaut und ich verbinde die Devboards ganz normal mit dem ESP und 
nutze hier nicht den Reset Pinout und das funktioniert ja auch.
https://wolles-elektronikkiste.de/ina219

von Michael (Firma: HW Entwicklung) (mkn)


Lesenswert?

Jurgen H. schrieb:
> Dass muss mir jemand erklären, welches Bauteil muss ich hier bei C26
> nutzen?

Wenn Du nicht erkennst das ein Kondensator eine DC Unterbrechung 
darstellt, ist jede weitere Hilfe vergebens.
Dann müssen wir mit dem kleinen 1x1 der Elektronik anfangen und erstmal 
die Grundlagen vermitteln und darauf hat hier wohl einer Bock.

Jurgen H. schrieb:
> wie müsste ich hier was verbinden
???
Verstehst Du das Problem und was das DB da fordert?

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Jurgen H. schrieb:
> Wobei mich das wundert, denn die fertigen INA219 Devboards sind auch so
> aufgebaut

Nein, sh. Anhang, Breakout-Board von Adafruit.

Kannst auf deiner Platine leicht fixen, Lötzinn-Klecks über C26 
platzieren.
Der INA hat dann keinen Abblock-Kondensator mehr, und läuft evtl. 
instabil/ungenau.
Aber hat zumindest eine Chance, zu funktionieren.

: Bearbeitet durch User
von Jurgen H. (jache)


Lesenswert?

Danke dir.

Hab es verstanden...

Ich werde es testen.

Bei dem TCA Multiplexer, sehe ich das Problem noch nicht.

Hier wird ein Breakoutboard verwendet als Beispiel mit dem 
TCA.https://wolles-elektronikkiste.de/tca9548a-i2c-multiplexer

als Board wird eines von Adafruit genutzt.
hier das Schema dazu:
https://learn.adafruit.com/assets/27693

Hier wird auch Reset auf VCC gezogen und nirgends angeschlossen...

von Jurgen H. (jache)


Lesenswert?

Εrnst B. schrieb:
> Jurgen H. schrieb:
>> Wobei mich das wundert, denn die fertigen INA219 Devboards sind auch so
>> aufgebaut
>
> Nein, sh. Anhang, Breakout-Board von Adafruit.
>
> Kannst auf deiner Platine leicht fixen, Lötzinn-Klecks über C26
> platzieren.
> Der INA hat dann keinen Abblock-Kondensator mehr, und läuft evtl.
> instabil/ungenau.
> Aber hat zumindest eine Chance, zu funktionieren.

Habe den C26 aufgelötet und einen Punkt drüber gemacht - das 
funktioniert nun schon mal! Vielen Dank dafür.

Dann nur noch die TCA9548...

von Rainer W. (rawi)


Lesenswert?

Hmmm schrieb:
> Dass es zwei unterschiedliche Schreibweisen für I2C-Adressen (nackte
> 7-Bit-Adresse oder mitsamt R/W-Bit als LSB) gibt, ist Dir bewusst?
>
> Bei der letztgenannten gibt es halt zwei Adressen, eine zum Lesen und
> eine zum Schreiben.

Nun wirf doch keine Nebelkerzen, sondern lies erstmal das Datenblatt vom 
MPU6050.
Im Datenblatt ist explizit die 7-Bit Adresse angegeben ("The slave 
address of the MPU-60X0 is b110100X which is 7 bits long."), wobei X das 
LSB darstellt und durch den Pegel am Pin AD0 festgelegt wird.
Wenn dahinter nach Datenblattangabe noch das RW-Bit folgt, sind das ganz 
klar I2C-Adressen nach I2C-Spezifikation und dort gibt es keine 
separaten Adressen für Lesen und Schreiben.

Jurgen H. schrieb:
> Wegen er Adresse handelt es sich beim MPU6050 um die 0x69, anstatt die
> 0x68, die es eigentlich laut Datenblatt seins sollte.

Hast du an AD0 nachgemessen?
Sonst häng einmal einen Pull-Up ans Messgerät und miss den Pegel an AD0 
nach. Sind Layout und Lötung ok?

Die Chance, dass so ein Fehler über ein dutzend Jahre im Datenblatt 
überleben soll, ist überschaubar.

: Bearbeitet durch User
von Jurgen H. (jache)


Lesenswert?

Hallo,

ok, ich habe den MPU6050 einmal ausgetauscht. Nun habe ich auch die 68 
als Adresse. Habe dann gleichmal einen TCA9548 ausgetauscht, aber den 
erkenne ich noch immer nicht :(

: Bearbeitet durch User
von Adam P. (adamap)


Lesenswert?

Bzgl. der Vcc am INA219.

Laut Datenblatt wird für SDA/SCL der High Pegel bei 0.7(Vs) erkannt:

0.7 * 5V = 3,5V

Wenn du nun mit deinem 3.3V Signal auf dem I²C Bus ankommst...
ich weiß ja nicht so recht.

von Jurgen H. (jache)


Lesenswert?

Mein INA219 und auch der MPU6050 funktionieren nun wie sie sollen. Danke 
allen dafür!
Mein Problem besteht "nur" noch am TCA9548. Dieser will einfach nicht 
erkannt werden und bei dem Reset Pin ist bei mir eigentlich alles wie 
auch bei den Breakout Boards von Adafruit. Und diese werden auch einfach 
an einen ESP32 angeschlossen ohne Verbindung des Reset Pins...

von Rainer W. (rawi)


Lesenswert?

Jurgen H. schrieb:
> ok, ich habe den MPU6050 einmal ausgetauscht.

Wegen einer schlechten Lötstelle muss man nicht den Chip tauschen. Was 
war das Problem mit dem alten?
Hast du wenigstens vorher am AD0 nachgemessen oder einfach profilaktisch 
blind getauscht?

: Bearbeitet durch User
von Jurgen H. (jache)


Lesenswert?

Ich habe es 100 mal gemessen und der Kontakt war immer da. Habe es dann 
einfach ausgetauscht und dann ging es sofort.

von Thomas Z. (usbman)


Lesenswert?

Jurgen H. schrieb:
> Mein Problem besteht "nur" noch am TCA9548.

Wenn das Teil nicht funktioniert, wird der PwrOn Reset vielleicht nicht 
ausgeführt. Dann einfach den Reset mal kurz auf GND legen.
Wie sieht denn die Stromversorgung aus? (Anstiegs/Abfallzeiten)

> Ich habe es 100 mal gemessen
statt 100 mal messen hätte einmal nachlöten vermutlich gereicht.

von Rainer W. (rawi)


Lesenswert?

Jurgen H. schrieb:
> Ich habe es 100 mal gemessen und der Kontakt war immer da.

Wo hast du gemessen und wie groß hast du den Pull-up dabei gewählt?
Beim Messen an der kritischen Stelle besteht immer die Gefahr, dass die 
fehlende Verbindung durch das Aufsetzen der Messspitze hergestellt wird, 
sei es durch Überbrücken oder durch mechanische Verformung.

: Bearbeitet durch User
von Jurgen H. (jache)


Lesenswert?

Ja, das kann gut sein. Jetzt funktioniert es, dass ist für mich als 
Hobby Mensch das wichtigste!
Aber mit dem TCA9548 komme ich nicht weiter... Hat hier jemand noch eine 
Idee wie ich etwas verkabeln könnte um zu probieren ob es geht.

von Joachim B. (jar)


Lesenswert?

Jurgen H. schrieb:
> Hat hier jemand noch eine
> Idee wie ich etwas verkabeln könnte um zu probieren ob es geht.

erst mal A0 A1 A2 an GND, ich sehe immer noch kein Schaltbild oder 
aussagekräftige Fotos.

Du fragst aber du lieferst keinen Plan, keine Bilder und wir sollen hier 
Romane schreiben?

Fange schon mal an zu lesen
https://www.ti.com/product/de-de/TCA9548A#tech-docs

https://www.ti.com/lit/ds/symlink/tca9548a.pdf?ts=1714812954218

von Jens G. (jensig)


Lesenswert?

Joachim B. schrieb:
> erst mal A0 A1 A2 an GND, ich sehe immer noch kein Schaltbild oder
> aussagekräftige Fotos.
>
> Du fragst aber du lieferst keinen Plan, keine Bilder und wir sollen hier
> Romane schreiben?

Beitrag "Re: Es wird nur ein I2C Gerät erkannt"

Ok, unter Schaltplan verstehe ich zwar was anderes, aber daß er gar nix 
geliefert hätte, ist schonmal falsch ...

von Joachim B. (jar)


Lesenswert?

Jens G. schrieb:
> Ok, unter Schaltplan verstehe ich zwar was anderes, aber daß er gar nix
> geliefert hätte, ist schonmal falsch ...

na gut wenn dir das reicht kannst du ihm ja bestimmt helfen, meine 
Möglichkeiten sind erschöpft, ich wollte ja aber so......

von Jurgen H. (jache)


Lesenswert?

Hallo,

aber hier ist doch ein Schaltplan, oder was meint Ihr?

Beitrag "Re: Es wird nur ein I2C Gerät erkannt"

von Harald A. (embedded)


Lesenswert?

Tue Dir selbst einen Gefallen und investiere 10€ in einen Logic 
Analyzer. Du wirst dich nach 3h fragen, wie Du vorher ohne leben 
konntest. Kenne einige dieser Fälle aus missionarischer Tätigkeit.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Jurgen H. schrieb:
> aber hier ist doch ein Schaltplan, oder was meint Ihr?
Naja, sowas Ähnliches. Aber eines wird klar: dieser Schaltplan passt von 
der Struktur genau zur Vorgehensweise bei der Inbetriebnahme.

In einem gut lesbaren Schaltplan sind keine ICs mit Gehäusen und 
durchlaufendem Pinout eingezeichnet, sondern funktionale Symbole mit 
Eingangssignalen links und Ausgangssignalen rechts sowie Versorgung oben 
und unten. Oder wenigstens so, dass zusammengehörige Signale gruppiert 
sind. Erst im Layout ist die Geometrie und die Pinreihenfolge wichtig.

Sieh dir einfach mal an, wie das Symbol der Bausteine im jeweiligen 
Datenblatt aussieht.

Zudem wird in einem leserlichen Schaltplan das Potential von oben nach 
unten negativer. Bei einem Pullup ist plus also oben.

Und wie gesagt: bringe in die Inbetriebnahme mehr Struktur als in den 
Schaltplan. Wie es geht, habe ich ganz weit oben schon erwähnt.
Der Punkt 0 der Inbetriebnahme lautet: "stelle sicher, dass 
Versorgungsspannung/en korrekt und störungsfrei ist/sind und deine 
Signale physikalisch den erforderlichen Signalen im Datenblatt 
entsprechen." Zur Physik eines Signals gehören Spannungspegel, 
Flankenverlauf und das Timing. Um das messen zu können, brauchst du ein 
Oszlloskop.

Jurgen H. schrieb:
> Einen Oszi habe ich leider nicht
Ändere das. Anders wirst du ganz offenbar nicht zum Ziel kommen. Kauf 
dir das kleinste Picoscope und du hast den Protokollanalyzer für I2C 
schon mit dabei.

Harald A. schrieb:
> Tue Dir selbst einen Gefallen und investiere 10€ in einen Logic Analyzer.
Das ist leider nur die zweite Hälfte der Wahrheit. Denn der zeigt nur 
das Timing an, nicht die tatsächlichen Spannungspegel und nicht die 
Flankensteilheit und -stetigkeit.


BTW: mich würde für ein neuentwickeltes Produkt das angekündigte EOL des 
MPU 6050 nachdenklich stimmen:
- 
https://product.tdk.com/de/search/sensor/mortion-inertial/imu/info?part_no=MPU-6050

: Bearbeitet durch Moderator
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.