I2C zwischen 2 ATTINY84A

Gast #5094240
Lesenswert?

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 #5094254
Lesenswert?

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 #5094264
Lesenswert?

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.
Gast #5094805
Lesenswert?

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 #5095129
Lesenswert?

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 #5096883
Lesenswert?

> 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 #5096918
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren