Forum: Mikrocontroller und Digitale Elektronik i2cdetect Raspi 3 Bus 0 1 10 11?


von Martin M. (capiman)


Lesenswert?

Ich sehe auf dem Raspi 3

/dev/i2c-0
/dev/i2c-1
und
/dev/i2c-10
/dev/i2c-11

0 und 1 sind 2 getrennte Busse.
10 und 11 scheinen mit i2cdetect viel langsamer Ergebnisse zu liefen?
Gehören 0 und 10 bzw. 1 und 11 irgendwie zusammen?

von PittyJ (Gast)


Lesenswert?

Soweit ich den Raspi kenne, hat die CPU nur 2 Hardware I2C Busse: -0 und 
-1
Siehe auch
http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_I2C.html

Keine Ahnung, was -10 und -11 sind. Hast du da einen Bitbang-Triber 
installiert?

Auf meinen Raspis sind -10 und -11 jedenfalls nicht.

von MaNi (Gast)


Lesenswert?

War das nicht einfach nur ein anderes Pin-Muxing?
Also prinzipiell der gleiche I2C Controller aber an anderen Pins?

von Martin M. (capiman)


Lesenswert?

$ i2cdetect -l
i2c-1   i2c  bcm2835 (i2c@7e804000)   I2C adapter
i2c-11  i2c  bcm2835 (i2c@7e205000)   I2C adapter
i2c-0   i2c  i2c-11-mux (chan_id 0)   I2C adapter
i2c-10  i2c  i2c-11-mux (chan_id 1)   I2C adapter

Siehe auch hier:
https://www.raspberrypi.org/forums/viewtopic.php?t=141517

: Bearbeitet durch User
von MaNi (Gast)


Lesenswert?

Nur nicht so viele Informationen auf einmal!

Du nutzt also ein Device Tree Overlay um einen externen I2C 
Muxer(PCA954x) zu verwenden? Ich kenne die Dinger zwar nicht, aber zeig 
mal das Overlay.

Wenn ich die Beschreibung zu z.B. i2c-mux-idle-disconnect lese:
1
i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all children in idle state.

kann ich mir schon vorstellen dass das länger dauert wenn jedesmal auf 
das Register des PCA geschrieben werden muss.

von Henrik H. (Firma: TU Chemnitz) (heha)


Lesenswert?

Hallo,
ich als armer Schlucker, der vom Raspberry Pi 4 beherscht wird und nicht 
umgekehrt:
Ich habe das gleiche Problem, obwohl ich nichts davon wissentlich 
installiert habe.
Weder in /boot/config.txt noch sonstwo.

In der /boot/config.txt genügt:

    dtparam=i2c1=on
    dtparam=i2c_arm=on,i2c_arm_baudrate=400000

zum Aktivieren von I²C. (Keine Zeile mit "dtoverlay=".) Während beim 
(alten?) RPi3 davon nur /dev/i2c-1 entsteht, entstehen beim RPi4 
zusätzlich die beiden gemultiplexten /dev/i2c-10 und -11.
Kann man zwar ignorieren, aber mit aufgeräumt hat das nichts zu tun.

Da die gleiche Frage ohne Antwort:
https://www.reddit.com/r/raspberry_pi/comments/svv0cg/how_to_disable_the_i2c_multiplexer/

Dabei ist mein eigentliches Problem nicht das Herumgammeln von zu vielen 
/dev/i2c* sondern dass beim RPi3 das BSR[1]->TOUT-Register auf 0 steht 
(= richtig für die Kommunikation mit AVR als I²C-Slave), beim RPi4 nicht 
(= ClockStretch-Bug).

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.