I2C Reichweite bei geringem Buspegel

(Firma: fleissige Studenten GmbH) #3981569
Lesenswert?

Hallo alle miteinander,

ich habe mal wieder eine der schon oft beantworteten Fragen. Leider 
haben mir die alten Threads nicht wirklich viel weitergeholfen und ich 
mache mir ein wenig sorgen, ob ich die mögliche Reichweite meiens 
I2C-Busses nicht grade etwas an die Grenzen treibe.

Ich habe eine 1.8V starken I2C vom Beagleboard auf meiner Platine. Auf 
dem Beagleboard xM legt dieser bereits 6,5cm zurück. Hinter den 
Stiftleisten wäre es auf meiner Platine aktuell nochmal ca. 13cm bei 
o.3mm breiter Leitung. Um die Leiterbahnen ist immer ein min. 1mm 
breiter Massestreifen (meistens eher mehr).

Was sagt ihr dazu? Kein Problem? Schon kritisch oder geht auf garkeinen 
Fall? Bustakt darf laut Datenblatt des Empfängers max. 100kHz haben.

Besten Dank schonmal an alle die drüber Nachdenken ;)

Gruß,

Lenni
Persönliche Seite #3981612
Lesenswert?

Du könntest einen Pegelwandler (PCA9517) verwenden und auf der "anderen" 
Seite mit höherem Pegel arbeiten. Bringt natürlich nur dann was, wenn 
die an Deinem I2C-Bus angeschlossenen anderen Geräte etwas mit dem 
höheren Pegel anfangen können.

Hast Du denn da Bauteile verwendet, die auch nur 1.8V Betriebsspannung 
haben?
(Firma: fleissige Studenten GmbH) #3981620
Lesenswert?

Der Empfänger könnte auch mit 3.3V arbeiten. Einen Pegelwandler habe ich 
sowieso schon in der Schaltung ... Das wäre tatsächlich ne Möglichkeit. 
Allerdings ist der Pegelwandler auch schon ganz schön weit weg. 
Wahrscheinlich nochmal so ... 8cm hinter der Stiftleiste. Das würde 
allerdings die Anzahl der Leitungen die durch den Pegelwandler müssen 
immer größer und das Leitungsverknote wird wieder schlimmer. Hoffe da 
lieber noch auf mehr Leute die sagen "Passt scho" ^^

Danke euch beiden schonmal für eure Einschätzung!
Gast #3981624
Lesenswert?

Lennart G. schrieb:
> Was sagt ihr dazu? Kein Problem?

Zunächst kein Problem - aber wie groß sind denn die Pull-Up-Widerstände 
am Bus? Du kannst bis zu 3mA Strom ziehen, also 1k bei 1.8V sind noch 
weit innerhalb der Spec. Ich kann mir aber kaum vorstellen, dass deine 
Leitungsstrecke so stark kapazitiv belastet ist, dass du soweit runter 
gehen musst.
(Firma: fleissige Studenten GmbH) #3982040
Lesenswert?

@HildeK: Die PullUps haben 4,7k Ohm. Sonst kann ich dir nicht ganz 
folgen. Ich entnehme dem mal, dass bei kapazitiver Belastung mehr Strom 
gebraucht wird? Woran mache ich denn eine kapazitive Belastung fest? 
Dadurch, dass recht viel Masse drum herum ist, bildet sich doch quasi 
eine kapazitive Last oder? Oder meinst du eher kapazitive Last in Form 
von 2m geschirmtes Kabel?

@Rufus: Der Pegelwandler ist ein TI SN74AVC16T245. Jetzt wo ich drüber 
nachdenke, fällt mir wieder ein, dass I2C ja open drain ist. Denke das 
kann der tatsächlich nicht. Würde aber so oder so nur höchst ungern den 
Pegel noch wandeln. Wie gesagt: Ich hoffe noch darauf überschüssig 
paranoid zu sein ^^
Gast #3982186
Lesenswert?

Nehmen wir mal an, deine Leitung und der Empfänger haben zusammen eine 
Kapazität von 50pF. Dann macht das mit 4k7 ein Tau von 250ns.

Deine Flanke wird also "verschliffen", das Signal sollte aber deutlich 
unter 1 us von L nach H gewechselt haben..

100kHz (nehme an, du meinst kBit/s) bedeutet aber, dass ein Bit 10 us 
lang ist.

Die Zeit, die der Signalwechsel braucht, wäre also unter 10% der 
Bitzeit.

Reflexionen werden auftreten, aber bei 20cm Leitungslänge werden die im 
einstelligen Nanosekundenbereich abgeklungen sein.

Ich würde erwarten, dass die Flanke beim Wechsel L->H etwa 1 us benötigt 
und eventuell ganz "unten" ein kleiner Zappler zu sehen ist.
Die Flanke von H->L wird deutlich schneller sein und auch hier könnte in 
der Flanke, oder wenn sie sehr schnell ist, nach der Flanke ein Zappler 
üder Schwinger erkennbar sein.
Aber ich gehe davon aus, dass das Signal in beiden Fällen für ca 9ns 
stabil und sauber anliegt.
Gast #3982360
Lesenswert?

Das sind natürlich nur übeschlagsmäßige Gedanken, die man sich bei so 
ner Sache machen kann. In der Realität kommen dann sicher auch noch 
andere Effekt zum Tragen wie Groundbounce etc. Aber rein von Seiten der 
Signalintegrität sollten die paar cm kein Problem sein.

Und du hast recht.. wenn die Kapazität kleiner ist, dann werden die von 
mir beschriebenen Effekte auch geringer.

Aus dem Bauch heraus und mit den überschlagsmäßigen Rechnungen würde ich 
aber sagen, dass du gute Chancen hast, dass das problemlos funktionieren 
wird.
Persönliche Seite #3982376
Lesenswert?

Lennart G. schrieb:
> Der Pegelwandler ist ein TI SN74AVC16T245. Jetzt wo ich drüber
> nachdenke, fällt mir wieder ein, dass I2C ja open drain ist. Denke das
> kann der tatsächlich nicht.

I2C ist vor allem nicht nur open drain, sondern auch noch 
bidirektional.
Wie hattest Du Dir das mit der Richtungsumschaltung gedacht?

Dein Pegelwandler ist daher ganz sicher völlig ungeeignet. Für SPI 
kannst Du so etwas verwenden, aber nicht für I2C.

Nimm als Pegelwandler für I2C einen PCA9517. Der ist dafür gedacht und 
funktioniert. Und als 8beiner auch nicht gerade groß oder aufwendig in 
die Schaltung einzubauen.
(Firma: fleissige Studenten GmbH) #3982777
Lesenswert?

@Rufus: Stimmt das hab ich ganz vergessen. Da hatte ich auch schon 
einige gesehen die das können, als ich den SN74... gesucht habe. Denke 
ich werde es tatsächlich erstmal so ausprobieren. Im Zweifellsfall um 
selber mal Erfahrungswerte zu sammeln ;) Aber danke für den Tipp. Wenns 
dann nicht klappt, werd ich drauf zurück kommen!
Persönliche Seite #3982845
Lesenswert?

Lennart G. schrieb:
> Denke ich werde es tatsächlich erstmal so ausprobieren.

Das ist sinnlos. Ein Bustreiber, den man mit einem Steuersignal 
umschalten muss, kann keinen I2C-Bus übertragen. Das geht nicht.

I2C ist bidirektional, d.h. ändert ständig die Richtung des 
Datenflusses. Und das nicht nur auf der Daten- sondern potentiell auch 
auf der Taktleitung ("clock stretching" durch langsamere Slaves).

Es ist daher müßig, einen '245 als Pegelwandler zu verwenden, ganz 
abgesehen davon, daß der keine Open-Drain-Ausgänge verwendet.

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