Forum: Mikrocontroller und Digitale Elektronik Einfacherer I2C Buffer gesucht


von Mampf F. (mampf) Benutzerseite


Lesenswert?

Guten Morgen,

ich benutze in einem Projekt einen PI6ULS9515A [1] I2C-Buffer, der genau 
das tut, was er soll - aber lange Bauteilbezeichnungen lassen darauf 
schließen, dass es sich eher um ein exotisches Bauteil handelt.

Grund des Puffers ist, dass ich das I2C auf einem HAT von einem 
I2C-Sensor entkoppeln möchte, der an einer langen Leitung (max 2m) 
hängt.

Macht das Sinn?

Gibt es eine einfachere Variante?

Gilt der typische I2C-Level-Shifter, bestehend aus zwei zB BSS138, als 
Puffer?

Viele Grüße,
Mampf

[1]: https://www.diodes.com/assets/Datasheets/PI6ULS5V9515A.pdf

von Falk B. (falk)


Lesenswert?

Mampf F. schrieb:
> Grund des Puffers ist, dass ich das I2C auf einem HAT von einem
> I2C-Sensor entkoppeln möchte, der an einer langen Leitung (max 2m)
> hängt.
>
> Macht das Sinn?

Eher nicht. 2m sind nicht sooo lang. Wenn man die Pull-Up Widerstände 
minimiert (3mA bei 0V) und das Timing nicht ultraschnell macht, sind 2m 
kein Problem.

> Gibt es eine einfachere Variante?

Kein Puffer.

> Gilt der typische I2C-Level-Shifter, bestehend aus zwei zB BSS138, als
> Puffer?

Nein, das ist nur ein Pegelwandler. Der erhöht nicht die 
Treiberleistung.

von Christian M. (christian_m280)


Lesenswert?

Mampf F. schrieb:
> lange Bauteilbezeichnungen lassen darauf schließen, dass es sich eher um
> ein exotisches Bauteil handelt

Interessante Theorie...

Gruss Chregu

von Wolfgang (Gast)


Lesenswert?

Mampf F. schrieb:
> Gibt es eine einfachere Variante?

Wo siehst du noch Vereinfachungspotential?
Allenfalls könnte man den EN-Pin einsparen und zu einem 6-poligen 
Gehäuse wechseln. Der Gewinn wäre minimal.

Auch der PCA9600 vom Erfinder des I2C verwendet 8 Pins, führt dann aber 
RX und TX auf der Kabelseite getrennt raus.
https://www.nxp.com/products/interfaces/ic-spi-serial-interface-devices/ic-bus-repeaters-hubs-extenders:MC_41849

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Falk B. schrieb:
>> Gibt es eine einfachere Variante?
>
> Kein Puffer.

Hmm, ok - ich hätte mich wohler gefühlt, wenn irgendwas zwischen I2C vom 
Pi-HAT und meinen 2m Kabel wäre 🤔

Vlt verbaue ich stattdessen einen USBLC6 ESD-Schutz.

Das ist dann wahrscheinlich sinnvoller :)

Langsam ist der Bus eh - um die 15kHz, weil der Pi kein clock-stretching 
kann.

von Stefan F. (Gast)


Lesenswert?

Mampf F. schrieb:
> I2C ... der an einer langen Leitung (max 2m) hängt.
> Macht das Sinn?

Eher nicht. I²C ist dafür nicht vorgesehen. Was du da vor hast ist ein 
Workaround für ein bereits um Kern mangelhaftes Konzept.

> Langsam ist der Bus eh - um die 15kHz, weil der Pi
> kein clock-stretching kann.

Noch ein Workaround.

Mache es lieber von Anfang an richtig: Benutze am Raspberry Pi einen USB 
zu I²C Adapter mit 2 Meter langem USB Kabel. Dann hast du einen 
vollwertigen USB Anschluss dort wo er benötigt wird.

von Andreas B. (bitverdreher)


Lesenswert?

Stefan ⛄ F. schrieb:
> Mache es lieber von Anfang an richtig: Benutze am Raspberry Pi einen USB
> zu I²C Adapter mit 2 Meter langem USB Kabel.

Na ja, richtig wäre, das gleich mit RS422/485 zu machen. ;-)

von Frank K. (fchk)


Lesenswert?

Mampf F. schrieb:

> [1]: https://www.diodes.com/assets/Datasheets/PI6ULS5V9515A.pdf

Das sieht mir nach einem einfachen PCA9515 aus.

Eine robustere Wahl wäre ein Paar davon:

https://www.nxp.com/docs/en/data-sheet/PCA9615.pdf

fchk

von Stefan F. (Gast)


Lesenswert?

Andreas B. schrieb:
> Na ja, richtig wäre, das gleich mit RS422/485 zu machen. ;-)

Ja, das würde mir noch mehr gefallen.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Das sieht mir nach einem einfachen PCA9515 aus.
>
> Eine robustere Wahl wäre ein Paar davon:
>
> https://www.nxp.com/docs/en/data-sheet/PCA9615.pdf

Ui, danke für den Tipp!

Das gefällt mir 😍

Dann kann man sich RS485 sparen, weil der PCA9615 ja quasi das gleiche 
macht aber dediziert für I2C ist.

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Mampf F. schrieb:
> Das gefällt mir 😍
Mir auch. dI2C: noch nie gehört.

von Stefan F. (Gast)


Lesenswert?

Aber warum sollte man I²C durch eine spezielle Twisted-Pair Verbindung 
verlängern, wenn man fast das Gleiche mit einem fertigen USB Kabel 
billig und fertig von der Stange bekommen kann?

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Stefan ⛄ F. schrieb:
> Aber warum sollte man I²C durch eine spezielle Twisted-Pair
> Verbindung
> verlängern, wenn man fast das Gleiche mit einem fertigen USB Kabel
> billig und fertig von der Stange bekommen kann?

Hmm ja, da ist schon was dran, tbh 🤔

Aus Gründen der Integration und Professionalität 🤷‍♂️

So ist alles auf einem HAT.

Aber ansonsten ... Ja stimmt schon, ein USB-to-I2C und dann einfach das 
I2C Dingens anschließen.

von Falk B. (falk)


Lesenswert?

Stefan ⛄ F. schrieb:
> Mache es lieber von Anfang an richtig: Benutze am Raspberry Pi einen USB
> zu I²C Adapter mit 2 Meter langem USB Kabel. Dann hast du einen
> vollwertigen USB Anschluss dort wo er benötigt wird.

Warum nicht gleich Glasfaser? Sicher ist Sicher! OMG!!!!!

https://de.wikipedia.org/wiki/German_Angst

https://de.wikipedia.org/wiki/Overengineering

Pussies!

: Bearbeitet durch User
von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Kurz gesagt:

Mit den Richtigen I²C Drivern sind Leitungen von 100M kein Problem.

Wir haben Anlagen mit längeren Leitungen, da fahren wir mit 12V Pegel 
und Verdrillten 2 Kabel paaren. (Wurde vom Kunden Vorgegeben dass es I²C 
sein muss) Ist sogar Galvanisch getrennt (Und nein nicht mit 
Optokopplern)
Bei Richtigem Handling kann man sogar Standard Netzwerkübertrager 
nehmen.

Allerdings dann nicht mehr "einfach" ;-)
Für Längere Leitungen empfiehlt sich dann das I²C auf MFM auf zu 
modulieren.

: Bearbeitet durch User
von Johannes S. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Eher nicht. I²C ist dafür nicht vorgesehen. Was du da vor hast ist ein
> Workaround für ein bereits um Kern mangelhaftes Konzept.

Im DVI ist auch I2C mit drin, das funktioniert i.d.R. über mehrere 
Meter. Die Monitore haben auch Treiberbausteine dafür drin. Aber oft 
auch 'Exoten'.

Edit:
habe nochmal nachgesehen, hatte mal versucht einen Pio Plasma zu 
reparieren, der hatte einen BA8274/F von Rohm drin.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Johannes S. schrieb:
> Aber oft
> auch 'Exoten'.

Ich empfehle dazu das ->AN10216.pdf von NXP/Philips zu konsultieren. ;-)

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Johannes S. schrieb:
> Die Monitore haben auch Treiberbausteine dafür drin.

Siehst du, der Raspberry Pi hat das nicht.

von Johannes S. (Gast)


Lesenswert?

Patrick L. schrieb:
> Ich empfehle dazu das ->AN10216.pdf von NXP/Philips zu konsultieren. ;-)

da steht aber nicht drin welche Treiber z.B. Pioneer oder andere 
Hersteller verbaut haben.

Das man I2C sogar als Hausbus einsetzen kann wurde schon hier 
beschrieben:
https://www.mikrocontroller.net/articles/I2C_als_Hausbus

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Johannes S. schrieb:
> Das man I2C sogar als Hausbus einsetzen kann wurde schon hier
> beschrieben:

Ja da gab es die K8000 von Velleman die eigneten sich hervorragend für 
solche Sachen ;-)

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Johannes S. schrieb:
> Das man I2C sogar als Hausbus einsetzen kann wurde schon hier
> beschrieben:
> https://www.mikrocontroller.net/articles/I2C_als_Hausbus

Sehr informativ!

Vielen Dank :)

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.