Forum: Digitale Signalverarbeitung / DSP / Machine Learning Signalqualität I²C


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 Manuel Neff (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend

Habe mich in letzter Zeit ein wenig mit I²C beschäftigt, da ich es über 
einige Meter übertragen möchte. Ich habe die Datenleitungen mit meinem 
Oszilloskop ausgemessen und hätte von euch gerne eine Einschätzung zu 
meiner Signalqualität.

Den I²C habe ich gemäss dem angefügten Bild namens "Schaltung" 
aufgebaut. Habe mich an einem PDF aus dem Internet orientiert, welches 
über lange I²C-Buslänge und ungefähre Dimensionierung der Widerstände 
berichtete.

Habe 1x eine Messung mit einer Leitungslänge von 1meter gemacht und bei 
der 2. Messung noch 9meter Kabel angehängt, jedoch war es am einen Ende 
offen. Bei den zusätzlichen 9metern der 2. Messung ging es mir darum, 
eine kapazität zu simulieren, welche das I²C-Signal negativ beeinflussen 
sollte. Bei beiden Messungen klappte der Datenaustausch auf dem Bus 
problemlos. Alles über 10meter hat jedoch teilweise zu Problemen 
geführt.

Nun zu meiner Frage:
Wie würdet ihr die Signalqualität einschätzen. Mir geht es drum, dass 
auch nach Alterung der Bauteile die Datenübertragung immer noch sauber 
gewährleistet ist. Im Moment kann ich noch nicht genau sagen, welche 
Buslänge ich schlussendlich brauche, jedoch sind es Schätzungsweise um 
die 5 bis 6 meter.

Wie kann ich meine Schaltung verbessern? Mit den 1490Ohm 
Pullupwiderstand sind es bei 3.3V einen Strom von 2.2mA. Gemäss 
Busbeschrieb kann I²C bis zu 3mA strom bringen. Sollte ich diese 3mA 
voll ausnutzen oder gibt es andere, sinnvollere Varianten um meine 
Busqualität zu verbessern?

Wie wird das in der "professionellen" elektronik gehandhabt. Lässt man 
die Schaltung stehen, wenn sie einmal funktioniert? Oder wird sie bis 
ans limit optimiert? Habe leider keinerlei Erfahrungswerte was gut oder 
schlecht ist.

Danke für zahlreiche Antworten

von I2C Spec (Gast)


Lesenswert?

I²C war eigentlich nie gedacht außerhalb einer PCB benutzt zu werden. 
Der eigentliche Gedanken war, einen Bus für mehrere ICs auf einer PCB 
bereitzustellen. Für externe Verbindungen solltest du auf einen Bus 
setzten, der tatsächlich dafür ausgelegt wurde. Stichwort CAN, RS485, 
RS232, HART, usw.

Hast du einen Link zu diesem PDF?

Die Signale zusammen mit der RC Schaltung und Leitungslänge sind 
plausibel.

von Manuel Neff (Gast)


Angehängte Dateien:

Lesenswert?

I2C Spec schrieb:
> I²C war eigentlich nie gedacht außerhalb einer PCB benutzt zu
> werden.
> Der eigentliche Gedanken war, einen Bus für mehrere ICs auf einer PCB
> bereitzustellen. Für externe Verbindungen solltest du auf einen Bus
> setzten, der tatsächlich dafür ausgelegt wurde. Stichwort CAN, RS485,
> RS232, HART, usw.
>
> Hast du einen Link zu diesem PDF?
>
> Die Signale zusammen mit der RC Schaltung und Leitungslänge sind
> plausibel.

Also direkt für lange Leitungen ist nichts beschrieben...Aber einige 
Beispielwerte, welche gut miteinander harmonieren sollen.

Was ist deine Meinung zum I²C-Signal, welches ich gemessen habe?

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Manuel Neff schrieb:
> Was ist deine Meinung zum I²C-Signal, welches ich gemessen habe?

Was erwartest du hier?

Für die grobe Misshandlung, die du deinem Signal antust, sieht das 
normal aus.

Bist du dir sicher das mit den Serienwiederständen und dem Kondensator 
nicht jemand versucht hat das Ersatzschaltbild eines Kabels 
darzustellen? So hast du dein Kabel künstlich verlängert. Rechne mal aus 
welche Ströme beim Umladen des Kondensators bei den jeweiligen Freq. 
fliesen, du das nur statisch gerechnet. Und überhaupt wie kommt man auf 
so Werte wie 1,49kOhm?  Die entsprechen keiner gängigen Normenreihe und 
noch dazu mit einer Genauigkeit von zwei Stellen hinter dem Komma bei 
einem 08/15 Bus?

von Kevin M. (arduinolover)


Lesenswert?

Die Beschaltung macht wenig bis keinen Sinn, in deinem PDF wollen sie 
Störungen auf der Leitung filtern. Das hat nichts mit einem langen Bus 
zu tun.

Im ersten Schritt solltest du schonmal die die 180Ohm und die 130pF 
entfernen.

: Bearbeitet durch User
von I2C Spec (Gast)


Lesenswert?

Das Paper zielt eher auf das Filtern der Bussleitungen auf Boards ab, 
bei denen der Bus durch umgebene System zugemüllt wird.

Dein Signal zeigt halt die starke Kapazität deiner Schaltung. Wenn du 
mit der Frequenz höher gehst läufst du Gefahr, dass du die Pegel nicht 
mehr erreichst und Clock/Datensignale verloren gehen. Es wird wohl 
irgendwie klappen aber immer irgendwie gerade so. Externe Störungen, die 
du dir dann dazu noch einfängst erhöhen dann auch Bit Fehlerrate...
Wenn es nicht läuft und unbedingt I2C sein muss, wirst du wohl mit der 
Frequenz runter gehen müssen.

Teste mal wie es aussieht wenn du den Kondensator rausnimmst.

Sonst einfach einen Bus benutzen der für Verbindungen außerhalb der PCB 
vorgesehen ist.

von Lars R. (larsr)


Lesenswert?

Kevin M. schrieb:
> Im ersten Schritt solltest du schonmal die die 180Ohm und die 130pF
> entfernen.

Würde ich auch empfehlen und stattdessen als Pullup zwei Stromquellen, 
dann sind die steigenden Flanken auch sauber.

von Manuel Neff (Gast)


Lesenswert?

Irgend W. schrieb:
> Manuel Neff schrieb:
>> Was ist deine Meinung zum I²C-Signal, welches ich gemessen habe?
>
> Was erwartest du hier?
>
> Für die grobe Misshandlung, die du deinem Signal antust, sieht das
> normal aus.
>
> Bist du dir sicher das mit den Serienwiederständen und dem Kondensator
> nicht jemand versucht hat das Ersatzschaltbild eines Kabels
> darzustellen? So hast du dein Kabel künstlich verlängert. Rechne mal aus
> welche Ströme beim Umladen des Kondensators bei den jeweiligen Freq.
> fliesen, du das nur statisch gerechnet. Und überhaupt wie kommt man auf
> so Werte wie 1,49kOhm?  Die entsprechen keiner gängigen Normenreihe und
> noch dazu mit einer Genauigkeit von zwei Stellen hinter dem Komma bei
> einem 08/15 Bus?

Ich werde morgen einmal die Serienwiderstände/130pF Kondensator in 
meiner Schaltung auslöten und testen. Das mit dem Kondensator weiss ich 
nicht mehr, von wo ich das her habe. Die Widerstände hat man ja bei 
Datenleitungen mit Potentialunterschied, um den Strom zu begrenzen. 
Klang für mich deshalb noch mehr oder weniger plausibel.

Den Widerstandswert 1,49kOhm habe ich errechnet aus einigen 
Teilwiderständen. Habe am Master und an den Slaves jeweils Widerstände

von P. S. (namnyef)


Lesenswert?

Ob man das so "stehen lassen" kann, hängt halt von der Anwendung ab. Das 
kann  in Ordnung sein, wenn z. B. nur einmal beim Hochfahren aus einem 
EEPROM mit einer CRC abgesicherte Daten geholt werden müssen.

Man kann sich noch mit so etwas wie einem PCA9615 (differentieller 
I²C-Tranceiver) behelfen. Aber schön wir "I²C über Kabel" nie wirklich.

von Manuel Neff (Gast)


Lesenswert?

Lars R. schrieb:
> Kevin M. schrieb:
>> Im ersten Schritt solltest du schonmal die die 180Ohm und die 130pF
>> entfernen.
>
> Würde ich auch empfehlen und stattdessen als Pullup zwei Stromquellen,
> dann sind die steigenden Flanken auch sauber.

Interessanter Ansatz. Hab noch die davon gehört. Kennst du eine gute 
einfache Schaltung? Bin mit der Recherche im Internet ein wenig 
unsicher, da ich nicht genau weiss, welchen Schaltungen ich vertrauen 
darf.

Danke

von Analoger (Gast)


Lesenswert?

Manuel Neff schrieb:
> Serienwiderstände/130pF Kondensator

sicher, dass es 130pF sind, die da verbaut sind? Hat da einer 130n 
eingebaut? Die Flanken sehen schlimm aus. Das ist am Rande des 
Akzeptablen.

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Manuel Neff schrieb:
> ...Die Widerstände hat man ja bei Datenleitungen mit Potentialunterschied, um 
den Strom zu begrenzen...
> ...Habe am Master und an den Slaves jeweils Widerstände...

Da dürfte dein Denkfehler liegen. Das gilt für Aktiv getrieben push/pull 
Endstufen, aber nicht für OC Ausgänge wie bei I2C. Das "HI" wird 
ausschließlich durch den pullup erzeugt und nicht durch die 
Busteilnehmer. Und wenn du wie vorgesehen auch nur ein Widerstand 
verwendest hast du garnicht das Problem mit etwaigen 
Potenzialunterschieden (GND muss natürlich verbunden sein und die 
Spannung in der Bandbreite beider Seiten). Der maximale Strom wird durch 
den pullup begrenzt.

von Achim H. (pluto25)


Lesenswert?

Manuel Neff schrieb:
> Wie würdet ihr die Signalqualität einschätzen. Mir geht es drum, dass
> auch nach Alterung der Bauteile die Datenübertragung immer noch sauber
> gewährleistet ist.

Das Signal ist ein Traum. Keine Stöärungen und eine satte fallende 
Flanke.
Die Steigende ist irrelevant, wichtig ist nur das SDA eine Mindestzeit 
High ist bevor SCL Low wird. (s. Datenblätter).
Für die Simulation von Alterung eifach noch weitere 10m dranhägen und 
die Frequenz soweit runter das es wieder funktioniert. Wenn Deine 
Umgebung keine Störungen produziert können der Kondensator und die 180 
Ohm weg. Die 68 Ohm sind Angstwidersände für den Fall das es einen 
Vcc-Signalleitung Kurzschluß gibt.
"Professionell" im Sine von Industrie/Medizin Technik? Da würde das mit 
dem i2c gar nicht erst versucht, bzw reichlich Störungen drauf gegeben 
um zu sehen was geht.
im Sinne von Customerproduktentwicklung. Da wird gar nichts optimiert 
nur solange Eingespart bis es gerade noch die Garantiezeit hält.
(Alle Teile entfernen , 1k Pullups und fertig ;-)
PS Konstandstromquellen-Pullups sind weitere Fehlequellen. Zum einen 
könnten sie ausfallen zum anderen produziert jede schnelle Flanke 
Störungen.

: Bearbeitet durch User
von Clemens L. (c_l)


Lesenswert?

Manuel Neff schrieb:
> Lars R. schrieb:
>> als Pullup zwei Stromquellen
>
> Kennst du eine gute einfache Schaltung?

Es wäre möglich, eine Konstantstromquelle aus zwei PNPs zu bauen. 
Aber das gibt es auch fertig (LTC1694, LTC4311), oder integriert in 
I²C-Repeatern (z.B. TCA9803).

von neuer PIC Freund (Gast)


Lesenswert?

> Die Steigende ist irrelevant

Wie deutet man dann den Parameter "rise time of both SDA and SCL 
signals" in UM10204Rev6, Tabelle 10?

> aus zwei PNPs

BCV62 spart Platz. Benutze ich sehr gerne. Macht den Bus zudem robuster 
gegen Einstrahlungen.

von c-hater (Gast)


Lesenswert?

Manuel Neff schrieb:

> Wie kann ich meine Schaltung verbessern?

180Ohm Widerstand ersatzlos (naja: Ersatz 0Ohm) entsorgen, 130pF 
Kondensator ebenfalls ersatzlos entsorgen. Pullups auf 1.2k verringern.

Das ist schon so ziemlich alles, was man machen kann. Ansosnten hilft 
nur: Entweder Kabel kürzer oder (besser) geschirmt oder Bitrate 
verringern.

von Helge (Gast)


Angehängte Dateien:

Lesenswert?

DIY würde ich die pullup-Widerstände durch sowas ersetzen, falls auch 5V 
da sind.

von Bernd G. (Gast)


Lesenswert?

Helge schrieb:
> die pullup-Widerstände durch sowas ersetzen,

Konstantstromquelle?

von Monk (roehrmond)


Lesenswert?

Die meisten Mikrocontroller enthalten übrigens bereits intern analoge 
Filter. Bei einigen sind sie sogar für unterschiedliche Taktraten 
konfigurierbar.

Für 10 Meter Kabel zwischen zwei Geräten ist I2C nicht vorgesehen.

: Bearbeitet durch User
von Bernd G. (Gast)


Lesenswert?

Steve van de Grens schrieb:
> Für 10 Meter Kabel zwischen zwei Geräten ist I2C nicht vorgesehen.

Geht aber, wenn man es richtig baut, halt nur mit einem oder zwei 
Teilnehmern.

von Andreas U. (Gast)


Lesenswert?

Irgend W. schrieb:
> Bist du dir sicher das mit den Serienwiederständen und dem Kondensator
> nicht jemand versucht hat das Ersatzschaltbild eines Kabels
> darzustellen?

Ein Kabel mit 180 Ohm widerstand dürfte das kaum sein.
Das ist ein Tiefpass gegen die Störungen von der rechten Seiten her.

von Katrin I. (Gast)


Lesenswert?

Gibt es eine allgemeine Strategie, wie ein solcher I2C elektrisch 
ausgelegt sein müsste, um besonders sicher gegen Einflüsse von Außen zu 
sein?

von Monk (roehrmond)


Lesenswert?

Katrin F. schrieb:
> Gibt es eine allgemeine Strategie, wie ein solcher I2C elektrisch
> ausgelegt sein müsste, um besonders sicher gegen Einflüsse von Außen zu
> sein?

In der Spezifikation von 1982 steht eigentlich alles, was man dazu 
wissen muss.
https://www.nxp.com/docs/en/user-guide/UM10204.pdf

Wobei "besonders sicher gegen Einflüsse von Außen" gar nicht der 
vorgesehene Einsatzbereich ist. Die Schnittstelle ist für interne 
Kommunikation innerhalb eines Gerätes vorgesehen.

: Bearbeitet durch User
von Katrin I. (Gast)


Lesenswert?

Steve van de Grens schrieb:
> Die Schnittstelle ist für interne
> Kommunikation innerhalb eines Gerätes vorgesehen.

Das ist bekannt, wird aber oftmals auch extern genutzt.
Das war 1982 sicher nicht abzusehen.

Es ginge also nun darum, die Widerstände optimal zu gestalten, um eine 
höchstmögliche Resistenz zu generieren.

Zur Vereinfachung wäre es denkbar, eine 1:1 Verbindung zu verwenden. Der 
zur Verfügung stehende Controller hat 4 I2C verfügbar. Es dürfen mehrere 
Controller parallel laufen.

Soweit meine Elektronikkenntnisse reichn, würde ich vermuten, dass man 
einen möglichst hohen Strom zulassen muss, den der Chip gerade noch ab 
kann, um die maximale Störfestigkeit zu erreichen -> minimale 
Widerstände.

von Monk (roehrmond)


Lesenswert?

Katrin F. schrieb:
> Soweit meine Elektronikkenntnisse reichn, würde ich vermuten, dass man
> einen möglichst hohen Strom zulassen muss, den der Chip gerade noch ab
> kann, um die maximale Störfestigkeit zu erreichen -> minimale
> Widerstände.

Korrekt.

3 mA muss jeder Chip können. Ich lege die Widerstände immer für 1-2 mA 
aus.

von Stephan S. (uxdx)


Angehängte Dateien:

Lesenswert?

Katrin F. schrieb:
> Soweit meine Elektronikkenntnisse reichn, würde ich vermuten, dass man
> einen möglichst hohen Strom zulassen muss, den der Chip gerade noch ab
> kann, um die maximale Störfestigkeit zu erreichen -> minimale
> Widerstände.

Faustformel: bei 5V bis 1k5 runter, bei 3.3 Volt bis 1k runter, die 
Bilder stammen aus Papers von NXP und TI

von Rick (rick)


Lesenswert?

Stephan S. schrieb:
> Faustformel: bei 5V bis 1k5 runter, bei 3.3 Volt bis 1k runter, die
Ich mach die immer doppelt so groß und dafür einmal am Controller und 
einmal am Busende.

Dann ist es nicht so wichtig, ob auf der anderen Seite schon Pullups 
verbaut/bestückt sind oder nicht.

von J. S. (engineer) Benutzerseite


Lesenswert?

Richtig sicher bekommmt man I2C über längere Distanzen mit single ended 
wires nicht. Da muss man symmetrisch übertragen und Hin- und 
Rückleitungen auftrennen. Gfs sogar fürs Clocksignal wegen möglichen 
streching.

von Gerhard H. (ghf)


Lesenswert?

Es gab mal eine App-note von Philips zum Puffern von I2C,
aber in der Zusammenfassung am Ende, da haben die Autoren
nicht den Eindruck erweckt, dass sie ihrer Sache sicher waren.
Mist , diese bidirektionalen Signale! I2C ist für kurz und
ohne Außenwelt.

Lang lebe SPI!!!

Gerhard

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Wenn ich es mir aussuchen dürfte, würde ich auch auf I2C so weit 
verzichten, wie es eben geht. Da es manche Chips aber nur mit diesem 
Interface gibt, hat man einfach oft keine Wahl. Selbst Video-Chips 
laufen mit einem I2C-Config interface und ich muss bei komplizierten 
Systemen dann einen Microblaze reinsetzen, damit der FPGA den Chip 
sinnvoll umschalten kann. Allerdings sitzen die dann wenigstens auf der 
selben Platine oder einen Adapter-PCB.

Für große Distanzen sollte man das Interface vorort mit einem UC 
übersetzen und digital übertragen.. Meine Waffe No 1 war seit den 90ern 
Manchester / BMC, bei Bedarf symmetrisch und immer unidirektional. Es 
gab damals schon Chips aus dem Audio-Sektor, die einen DAC/ADC treiben 
könnten oder intus hatten und einen S/PDIF transceiver hatten. Damit 
bekommt man 5 I2C-decvices mit 400kHz direkt als Bruttodatenstrom in den 
S/PDIF Datenbits verpackt. Damit geht sogar real-time-acknowledge über 
die Leitungen, wenn man das PLD etwas intelligent baut.

Wenn es unbedingt ein Passiv-System sein soll, dann eben wie oben 
beschrieben mit Trennung der Pfade. So wie im Bild kann das in etwa 
aussehen. Der Schaltkreis wurde so von mir entwickelt und mit einem PLD 
implementiert. Zuckelte ab Ende der 1990er in Schaltungen meines 
damaligen Kunden. Eine der Anwendungen waren vergossene Module mit 
Temperatur-Sensorik, in den "keine Softwarekomponenten" eingesetzt 
werden durfen. Außerdem wollte der Endkunde noch eigene unbekannte 
Module an die Endpunkte hängen.

von Simon R. (Gast)


Lesenswert?

Ich habe ein ähnliches Problem, wie der Thread-Starter. Die Flanken sind 
aber wirklich wegen des Stroms an sich schlecht. Besser dimensionieren 
wird kaum gehen.

Frage:

Ist es irgendwie zulässig und möglich, da mit einer Art Anpassung 
nachzuhelfen? Also einen Kondensator parallel zum Ausgangswiderstand, um 
die Flanke zu verbessern?

Oder sterben da die Chips?

von Monk (roehrmond)


Lesenswert?

Simon R. schrieb:
> einen Kondensator parallel zum Ausgangswiderstand, um die Flanke zu
> verbessern?

Welchen Ausgangswiderstand meinst du? In welcher Schaltung?

> Oder sterben da die Chips?

Welche Chips?

Ich würde versuchen, die Problemursache zu finden und zu beheben.

von Monk (roehrmond)


Lesenswert?

Simon R. schrieb:
> einen Kondensator parallel zum Ausgangswiderstand, um die Flanke zu
> verbessern?

Welchen Ausgangswiderstand meinst du? In welcher Schaltung?

> Oder sterben da die Chips?

Welche Chips?

Ich würde versuchen, die Problemursache zu finden und zu beheben.

Ein eigener neuer Thread wäre dazu sinnvoll.

von Simon R. (Gast)


Lesenswert?

Monk schrieb:
> Ich würde versuchen, die Problemursache zu finden und zu beheben.

Die Ursache sind die vielen Teilnehmer und deren Pullups.

Mit dem Ausgangswiderstand meine ich einen Schutzwiderstand in den 
Leitungen, der Kurzschlüsse verhindern soll.

von Clemens L. (c_l)


Lesenswert?

Simon R. schrieb:
> Die Ursache sind die vielen Teilnehmer und deren Pullups.

Du brauchst nur einen Pullup für den Bus. Warum hast du mehrere?

> Also einen Kondensator parallel zum Ausgangswiderstand, um
> die Flanke zu verbessern?

Meinst du die fallende oder die steigende Flanke? Der Schutzwiderstand 
sollte klein genug sein, dass er auf die fallende Flanken keinen großen 
Einfluss hat, und die steigenden Flanken beeinflusst er überhaupt nicht.

Weiter oben wurden schon Konstantstromquellen erwähnt.

von Manfred P. (pruckelfred)


Lesenswert?

Clemens L. schrieb:
> Simon R. schrieb:
>> Die Ursache sind die vielen Teilnehmer und deren Pullups.
> Du brauchst nur einen Pullup für den Bus.

Nicht eher zwei, an beiden Enden?

> Warum hast du mehrere?

Weil er Chinaplatinchen zusammen steckt? Bei überschaubaren Längen 
innerhalb eines Gerätes habe ich auch mit mehreren Widerständen kein 
Problem, solange der Gesamtwiderstand nicht zu gering wird.

Wenn er grenzwertige Längen ferkeln will, könnte ein Pegelwandler wie 
der TXS0108E helfen, der will lt. Beschreibung auch Flanken 
restaurieren. Er kann auf einer Seite aber nur bis 3,6 Volt.

von Simon R. (Gast)


Lesenswert?

Clemens L. schrieb:
> Du brauchst nur einen Pullup für den Bus. Warum hast du mehrere?

Die Teilnehmer haben auch welche :-(
Wurde so gebaut.

Clemens L. schrieb:
> Meinst du die fallende oder die steigende Flanke?
Schon irgendwie beide.

von Clemens L. (c_l)


Lesenswert?

Manfred P. schrieb:
>> Du brauchst nur einen Pullup für den Bus.
>
> Nicht eher zwei, an beiden Enden?

Nein. Differenzielle Busse wie RS-485 oder CAN brauchen Terminierung an 
beiden Enden, für mittlere oder hohe Geschwindigkeiten.

I²C ist langsamer, und mit den asymmetrischen Open-Drain-Signalen wäre 
Terminierung eh schwierig. Die Pull-Up-Widerstände werden nur benötigt, 
damit der Bus eine definierte Spannung hat, wenn gerade keines der 
angeschlossenen Geräte die Leitung auf GND zieht.

von Clemens L. (c_l)


Lesenswert?

Simon R. schrieb:
>> Meinst du die fallende oder die steigende Flanke?
> Schon irgendwie beide.

Ich verstehe nicht, wass du mit "irgendwie" meinst. Zeig doch mal die 
Flanken auf einem Oszilloskop. (Und bevor du das Händi zückst: alle 
modernen Oszilloskope haben eine eingbaute Screenshot-Funktion.)

> Also einen Kondensator parallel zum Ausgangswiderstand, um
> die Flanke zu verbessern?

Das wäre möglich. Aber wenn es hilft, dann war der Schutzwiderstand 
falsch.

von Paul B. (paule201)


Lesenswert?

Simon R. schrieb:
> Ich habe ein ähnliches Problem, wie der Thread-Starter. Die Flanken sind
> aber wirklich wegen des Stroms an sich schlecht. Besser dimensionieren
> wird kaum gehen.

Wenn es nicht besser geht wirst du wohl damit leben müssen....du hast 
deine Aussage auch ausreichend belegt und damit endet der Thread hier 
;).

Wie soll dir jemand sinnvoll helfen (der es eventuell besser 
dimensionieren kann) wenn du keine Oszi Bilder, Schaltpläne und 
eventuell noch paar Datenblätter in die Diskussion gibst?

Man kann I2C auch aufbohren, differentiell übertragen und und und. Aber 
das ist eine Entscheidung die man anhand der technischen Gegebenheiten 
und anhand des Kostenrahmens trifft. Das ist der Input den du bringen 
solltest.

von Simon R. (Gast)


Lesenswert?

Ich kann da leider nichts weiter einbauen oder "aufbohren", weil ich an 
die Verschaltung der Teilnehmer nicht rankomme und die haben eben 
pullups.

Meine Seite hinsichtlich des Schutzwiderstandes sieht aus wie im Bild 
ganz oben rechts. Es sind halt 100 Ohm.

Ich habe jetzt probehalber 100nF mit 50 Ohm in Serie parallel 
geschaltet.
Das hat es schon stark verbessert.
Ich vermute, dass es vor allem die Kabelkapazitäten sind, die gebremst 
haben.

von Monk (roehrmond)


Lesenswert?

Simon R. schrieb:
> Mit dem Ausgangswiderstand meine ich einen Schutzwiderstand in den
> Leitungen, der Kurzschlüsse verhindern soll.

So etwas ist bei I²C nicht vorgesehen. Damit macht man das Signal 
unnötig schlechter.

Simon R. schrieb:
>> Du brauchst nur einen Pullup für den Bus. Warum hast du mehrere?
> Die Teilnehmer haben auch welche. Wurde so gebaut.

Korrigiere diesen Fehler. Wenn du nicht kannst, suche dir jemanden, 
der es kann. Wenn du nicht darfst, dann lehne die Aufgabe als unmöglich 
ab.

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Clemens L. schrieb:
> Aber das gibt es auch fertig (LTC1694, LTC4311), oder integriert in
> I²C-Repeatern (z.B. TCA9803).

Wow, danke, davon höre ich heute zum ersten Mal.

LTC1694 SMBus/I2 C Accelerator*

https://docs.rs-online.com/eecb/0900766b810ed93f.pdf

Das Ding ist teuer, aber das Footprint gefällt mir. Damit lässt sich 
platzsparend eine Alternativbestückung mit zwei Pullups machen.

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Monk schrieb:
> Simon R. schrieb:
>> Mit dem Ausgangswiderstand meine ich einen Schutzwiderstand in den
>> Leitungen, der Kurzschlüsse verhindern soll.
>
> So etwas ist bei I²C nicht vorgesehen. Damit macht man das Signal
> unnötig schlechter.

Außer im UM10204 "I2C-bus specification and user manual". Da sind die in 
praktisch allen Schaltbildern eingezeichnet. Es gibt auch 2 Seiten zur 
Berechnung.

von Simon R. (Gast)


Lesenswert?

Monk schrieb:
> Wenn du nicht darfst, dann lehne die Aufgabe als unmöglich
> ab.

Du bist ein Spassvogel. Macht man das heute so: "Hey Chef ich finde die 
Lösung nicht gut und möchte nicht arbeiten" :-)

von Monk (roehrmond)


Lesenswert?

Simon R. schrieb:
> Du bist ein Spassvogel. Macht man das heute so: "Hey Chef ich finde die
> Lösung nicht gut und möchte nicht arbeiten" :-)

Lügen wäre falsch. So geht das:

Hey Chef, was du da haben willst ist unmöglich. Gebe mir eine andere 
Aufgabe.

von Manfred P. (pruckelfred)


Lesenswert?

Simon R. schrieb:
> Ich kann da leider nichts weiter einbauen oder "aufbohren", weil ich an
> die Verschaltung der Teilnehmer nicht rankomme und die haben eben
> pullups.

Was soll das ganze Gekasper? Zeige den konkreten Aufbau und die 
hochgeheimen Teilnehmer. Kannst Du nicht - dann hau' ab!

Monk schrieb:
>> Du bist ein Spassvogel. Macht man das heute so: "Hey Chef ich finde die
>> Lösung nicht gut und möchte nicht arbeiten" :-)
>
> Lügen wäre falsch. So geht das:
>
> Hey Chef, was du da haben willst ist unmöglich.

Ja.

>  Gebe mir eine andere Aufgabe.

Träumerei. Wenn der Chef das so anordnet, fährt man das vor die Wand. 
Dazu muß man natürlich sicher sein, dass nicht doch ein Kollege es so 
lösen kann.

von Simon R. (Gast)


Lesenswert?

Manfred P. schrieb:
> hochgeheimen Teilnehmer.
Ich poste hier keine Firmendetails.

>Kannst Du nicht - dann hau' ab!
Arbeite du mal an deinem Auftreten und deiner Psyche!

von Simon R. (Gast)


Lesenswert?

Bauform B. schrieb:
> Außer im UM10204 "I2C-bus specification and user manual". Da sind die in
> praktisch allen Schaltbildern eingezeichnet. Es gibt auch 2 Seiten zur
> Berechnung.

Na wenigstens einer, der etwas von Schutzbeschaltungen zu verstehen 
scheint.

@all: Das Thema ist erledigt. Siehe:

Simon R. schrieb:
> Ich habe jetzt probehalber 100nF mit 50 Ohm in Serie parallel
> geschaltet. Das hat es schon stark verbessert.

von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

Ein Bild sagt mehr... Schutz vor "flash-over of a TV picture tube"; ein 
Hinweis, wofür I2C mal erfunden wurde.

von Simon R. (Gast)


Lesenswert?

Bei der Argumentation frage ich mich aber, ob Widerstände wirklich 
geeignet sind, um das "flash over" zu limitieren.

von J. S. (engineer) Benutzerseite


Lesenswert?

Bauform B. schrieb:
> ein Hinweis, wofür I2C mal erfunden wurde.
Guter Hinweis, die Koppelwiderstände werden neuerdings zunehmend 
weggelassen, wie mir scheint. Ich habe und hatte die immer drin. Schon 
wenn sich ein Teilnehmer verabschiedet oder falsch programmiert ist.

Simon R. schrieb:
> Simon R. schrieb:
>> Ich habe jetzt probehalber 100nF mit 50 Ohm in Serie parallel
>> geschaltet. Das hat es schon stark verbessert.
Da musst man aufpassen, dass mit diesem AC-mässigen Kurzschluss nicht 
über erst ein Problem geschaffen wird.

Wenn der Master ein programmierbarer Port-Pin ist, kann man den auch 
aktiv treiben, wenn man den Strom begrenzt. Dann bekommt man super gute 
Flanken. Habe ich zuletzt mit 3 MHz betrieben.

Simon R. schrieb:
> ob Widerstände wirklich geeignet sind, um das "flash over" zu limitieren.
ESD-Dioden gegen die VDD und GND.

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.