I2C zwischen 2 ATTINY84A

Gast #5094240
Hallo zusammen,

ich betreibe 2 ATTINY84A (8MHz). Beide sind über eine I2C Verbidnung 
untereinander verbunden.

Da am Anfang die Kommunikation nicht funktionierte, habe ich die 
Kommunikation mit einem Oszi gemessen. Dabei ist mir aufgefallen, dass 
jedes mal wenn ich mit einer Prüfspitze an der Clock messe, die 
Verbindung ohne Probleme funktioniert.

Darauf hin, habe ich einen Kondensator zwischen Clock und GND (das was 
auch die Prüfspitze macht) angeschlossen. Nun funktiert es.

Meine Frage: Warum? Laut I2C Standard sollte die Leitunskapazität nicht 
größer als 400pF sei. D.h. (bzw. das verstehe ich so), dass eine 
Leitunskapazität von 0 F (also theoretisch) ideal wäre.

Danke und einen schönen Samstag.

ciao

MO
Gast
Ja, GND ist verbunden.

Der Master hat auf seinem PCB einen Spannungswandler drauf. Von diesem 
PCB gehen 4 Leitungen ab (Vcc, GND, SDA, SCL). Der Slave wird dadurch 
auch vom selben Spannungswandler versorgt.

Gruß
Gast
Aus dem Datenblatt: "The USI two-wire mode is compliant to the Inter IC 
(TWI) bus protocol, but without slew rate limiting on outputs and 
without input noise filtering."
Das übernimmt jetzt wohl diese zusätzliche Kapazität. Trotzdem würde ich 
mir den Aufbau noch mal genau anschauen.
Also 150cm ist schon ne Hausnummer... da passt das eigentlich, es wird 
immer mit so 1.5 - 10pF/inch gerechnet. Dir ist schon bewusst, das es 
zwar kein Maximum an Leitungslänge gibt, aber i2c eigentlich einen 
Platinen-Bus für kurze Distanzen ist?!
Gast
Rene K. schrieb:
> da passt das eigentlich, es wird
> immer mit so 1.5 - 10pF/inch gerechnet.

d.h. in diesem Fall ca. 590'' --> ca. 1nF - 6nF

Der Cap an der Clock zur Rauschunterdrückung benötigt werden?

Oder liegt es daran, dass der Cap die Clock Geschwindigkeit reduziert.
Durch den Cap dauert es ja länger bis zum erreichen der Threshold. Und 
damit wird die Datenrate reduiziert(?)


Ja mir ist es bewusst, dass I2C eigentlich nur auf einem PCB verwendet 
werden sollte.

Pull-Up liegen bei 1k

I2C software kommt aus TinyWire.
Gast
Ich würde mal dringend auf Leitungsreflexionen tippen
die einem das Signal versauen.

Ohne Serienabschluss wird es bei dieser Konstellation
wohl nichts werden.
Gast
MO schrieb:
> Beide sind über eine I2C Verbidnung untereinander verbunden.

Dann kann es noch Ausgleichsströme geben wenn beide Controller
über (separate) Netzteile versorgt werden. Das hebt dann den
einen oder anderen Controller im GND-Bezugspegel an.
Gast
> Ja, mal 100Ω in die beiden Signalleitungen einfügen
> gegen das "Klingeln".

I2C kann dazu nicht genug Strom treiben. Der Widerstand würde den bus 
fast kurzschließen.

Eventuell klappt es mit einer Reihenschaltung aus 120 Ohm und einigen 
pF. Könnte man ausprobieren und mit einem Oszilloskop überprüfen.
Gast
Stefan U. schrieb:
> Eventuell klappt es mit einer Reihenschaltung aus 120 Ohm und einigen
> pF. Könnte man ausprobieren und mit einem Oszilloskop überprüfen.

Was keinen wirklichen Sinn macht, da die Leitung von beiden Seiten 
getrieben wird. Über 1-2 Meter sind aber keine Tricks nötig, das 
funktioniert in Millionen DVI bzw HDMI Kabeln einwandfrei. Dies halte 
ich aber für wichtig:

Peter D. schrieb:
> SDA und SCL nicht nebeneinander führen, sondern eine kalte Leitung (GND,
> VCC) dazwischen.
> Bei paarigem Kabel ein Paar SDA+VCC, das andere SCL+GND.

MfG Klaus
Stefan U. schrieb:
>> Ja, mal 100Ω in die beiden Signalleitungen einfügen
>> gegen das "Klingeln".
>
> I2C kann dazu nicht genug Strom treiben. Der Widerstand würde den bus
> fast kurzschließen.

Nicht 100Ω Pullup, sondern in Serie zur Verbindungsleitung.
Als Schwingungsdämpfer.

Stichwort "Serienterminierung"

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.