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
Hi >ich betreibe 2 ATTINY84A (8MHz). Beide sind über eine I2C Verbidnung >untereinander verbunden. GND ist auch verbunden? MfG Spess
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ß
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.
Peter D. schrieb: > Wie lang ist welche Leitung, welche Baudrate? 100kbits/sec bei einer Länge von 1,5 m Gruß
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?!
Hallo, ist den sichergestellt, dass die I2C Master und insbesondere die I2c Client-Software funktioniert ? Woher stammt sie - Quelle ?
Hast du Pull-Up Widerstände verwendet? Hoffentlich nicht allzu hochohmig. Bei der Leitungslänge würde ich es mit 1 bis 3,3k Ohm versuchen.
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.
MO schrieb: > 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 1 inch = 2,54cm 150cm = ? inch
Carl D. schrieb: > 1 inch = 2,54cm > 150cm = ? inch ups, Komma vergessen. also nun: 59,0'' --> ca . 88,5pF - 590pF
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.
Ich würde mal dringend auf Leitungsreflexionen tippen die einem das Signal versauen. Ohne Serienabschluss wird es bei dieser Konstellation wohl nichts werden.
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.
Mitlesa schrieb: > Ich würde mal dringend auf Leitungsreflexionen tippen > die einem das Signal versauen. > > Ohne Serienabschluss wird es bei dieser Konstellation > wohl nichts werden. Ja, mal 100Ω in die beiden Signalleitungen einfügen gegen das "Klingeln".
> 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.
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"
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.