Hallo,
ich sitze gerade an einem Layout und finde keine gute möglichkeit den
I²C Bus zu routen. Problematisch dabei ist, dass sich durch die
Anbindung an den Bus sehr oft die Lage wechseln muss. Im näheren Umfeld
des I²C befinden sich Leitungen von einem LED Treiber der mit 300-600
kHz schaltet und einen Ripple von ca. 27 mA (Spitze-Spitze) aufweist.
Insgesamt 14 (gleiche) Teilnehmer müssen an den Bus angebunden werden.
Habt ihr Tipps den Bus so zu routen, dass möglichst wenig Störungen
eingefangen werden? Das Bild soll meine Problematik verdeutlichen
pkgo schrieb:> Das Bild soll meine Problematik verdeutlichen
In diesem Bild ist kein Problem zu sehen. Abgesehen vom fehlenden
Blockkondensator, den ich so dicht wie möglich zwischen Vcc und GND
legen würde. Und abgesehen davon, dass noch ein Vcc Pin unbeschaltet
ist...
pkgo schrieb:> Im näheren Umfeld des I²C befinden sich Leitungen von einem LED Treiber der >
mit 300-600kHz schaltet und einen Ripple von ca. 27 mA (Spitze-Spitze) >aufweist.
Wie schnell ist denn Dein Bus?
Wenn Du relativ langsam, also so bei 2kHz, unterwegs bist solltest Du
hier eigentlich keine Probleme bekommen.
Lothar M. schrieb:> pkgo schrieb:>> Das Bild soll meine Problematik verdeutlichen> In diesem Bild ist kein Problem zu sehen. Abgesehen vom fehlenden> Blockkondensator, den ich so dicht wie möglich zwischen Vcc und GND> legen würde. Und abgesehen davon, dass noch ein Vcc Pin unbeschaltet> ist...
Der Kondensator wird noch hinzugefügt. Die Leitung Net D79 ist die
geschaltete Leitung vom LED-Treiber. Der Bus hat eine Ausdehnung von ca
18cm. Es sind also keine Beeinträchtigungen des I²C zu erwarten?
Marc B. schrieb:> Wenn Du relativ langsam, also so bei 2kHz, unterwegs bist solltest Du> hier eigentlich keine Probleme bekommen.Störungen scheren sich nicht um Taktfrequenzen von Signalen. Was
sollte also eine niedrige Taktfrequenz hier bringen?
pkgo schrieb:> Es sind also keine Beeinträchtigungen des I²C zu erwarten?
Solange die Leitung einfach nur kreuzt und nicht ewig lang parallel
neben her fährt gibt es da keine Probleme...
pkgo schrieb:> Habt ihr Tipps den Bus so zu routen, dass möglichst wenig Störungen> eingefangen werden? Das Bild soll meine Problematik verdeutlichen
Ich sehe auch keine grossen Probleme.
Vielleicht die Via für SDA unterhalb, GND zwischen SDA und SCK
routen. Es ist viel wichtiger dass die beiden sich nicht
gegenseitig beeinflussen, als was die Leitung D79 macht.
Lothar M. schrieb:> Marc B. schrieb:>> Wenn Du relativ langsam, also so bei 2kHz, unterwegs bist solltest Du>> hier eigentlich keine Probleme bekommen.> Störungen scheren sich nicht um Taktfrequenzen von Signalen. Was> sollte also eine niedrige Taktfrequenz hier bringen?
Der I²C wird mit 400 kbit/s betrieben, möglich wären aber auch 100
kbit/s.
> pkgo schrieb:>> Es sind also keine Beeinträchtigungen des I²C zu erwarten?> Solange die Leitung einfach nur kreuzt und nicht ewig lang parallel> neben her fährt gibt es da keine Probleme...
Der Bus wird so wie im Bild von links nach rechts über die Platine
verlaufen. Die Anordnung wie sie auf dem Bild zu sehen ist wird es 7x
oberhalb und 7x unterhalb des I²C geben. Die geschaltet Leitung würde
also parralel dazu verlaufen
Hallo,
der I²C Bus ist doch an sich schon sicher gegen Störungen wenn die
Leidungen nicht zu lang sind.
SDA u. SCL mit ca. 4,7 k Widerstände auf VCC machen diese doch relativ
Niederohmig.
Für sehr lange Leitungen bis 200 Meter, gibt es Leitungstreiber IC’s.
Sind nur meine praktischen Erfahrungen als I²C Bus Fan.
Gruß
pkgo schrieb:> Ist es besser die Leitungen wie VCC rechtwinklig an den Bus zuzuführen> oder eher in einem spitzen Winkel wie SCL?
Wie beschrieben ist völlig Wurst. I²C gibt es z.b. in Fernsehgeräte.
Na da ist doch was los mit „Störquellen“ und oft ist dort das Bedienteil
sogar verkabelt (Strippen kreuz und quer) Also mit passende
Abschlusswiderstände und den kurzen Leitungen, wirst du wohl keine
Probleme bekommen.
Noch was zum Takt. 100kHz ist Standart 400kHz ist schon im
Grenzbereich(abhängig von Teilnehmer)
Groß
Fred R. schrieb:> pkgo schrieb:>> Ist es besser die Leitungen wie VCC rechtwinklig an den Bus zuzuführen>> oder eher in einem spitzen Winkel wie SCL?>> Wie beschrieben ist völlig Wurst. I²C gibt es z.b. in Fernsehgeräte.> Na da ist doch was los mit „Störquellen“ und oft ist dort das Bedienteil> sogar verkabelt (Strippen kreuz und quer) Also mit passende> Abschlusswiderstände und den kurzen Leitungen, wirst du wohl keine> Probleme bekommen.> Noch was zum Takt. 100kHz ist Standart 400kHz ist schon im> Grenzbereich(abhängig von Teilnehmer)>> Groß
Alles klar. Die Teilnehmer schaffen bis zu 400 kbit. Habe ich auch schon
getestet.
Moin,
So ausm Bauch raus wuerd' ich sagen, dass das Layout, also die
Geometrie, Anzahl der vias im Signalweg beim I2C eher unkritisch ist.
Aber ich wuerde niemals 14 Teilnehmer an einen Bus haengen. Da haett'
ich Muffe.
Dann bau' ich persoenlich auch gerne sehr niederohmige
Serienwiderstaende vor jeden Slave, dann tut man sich leichter
rauszufinden, wer den I2C Bus nicht mehr loslassen will, falls er mal
haengt.
Gruss
WK
Dergute W. schrieb:> Moin,>> So ausm Bauch raus wuerd' ich sagen, dass das Layout, also die> Geometrie, Anzahl der vias im Signalweg beim I2C eher unkritisch ist.> Aber ich wuerde niemals 14 Teilnehmer an einen Bus haengen. Da haett'> ich Muffe.> Dann bau' ich persoenlich auch gerne sehr niederohmige> Serienwiderstaende vor jeden Slave, dann tut man sich leichter> rauszufinden, wer den I2C Bus nicht mehr loslassen will, falls er mal> haengt.>> Gruss> WK
Was kann bei 14 Teilnehmern an einem Bus problematisch werden?
Wenn du Vcc nicht parallel zu SDA und SCL verlegen könntest wäre das
sicher von Vorteil, aber ich glaube nicht an eine Störung durch den
LED-Treiber.
Mach die Vias direkt über der Leitung statt noch Stummel dran zu lassen.
Zudem kann 45° Innenwinkel zu problemen bei der Fertigung führen.
Moin,
pkgo schrieb:> Was kann bei 14 Teilnehmern an einem Bus problematisch werden?
So ausm Bauch raus: Die Gesamtkapazitaet, die dann an den Leitungen
zieht. Ist halt bei mir nur so'n Gefuehl - habs' nicht nachgerechnet.
Gruss
WK
Spitze Winkel finde ich unschön.
Warum setzt Du die Vias nicht einfach direkt auf die Busse?
Ich bevorzuge Vorzugsrichtungen, d.h. die horizontalen Busse auf das
braune Layer, dann brauchst Du weniger Vias.
Die I2C-Leitungen sind unkritisch, aber VCC würde ich deutlich dicker
machen und GND am besten als Plane.
Dergute W. schrieb:> Aber ich wuerde niemals 14 Teilnehmer an einen Bus haengen.
Wenn der Master Clock-Stretching unterstützt, ist das völlig unkritisch.
Dann werden eben die Low-Zeiten durch die Schaltungskapazitäten etwas
länger, sonst passiert nichts weiter. Der I2C-Bus ist quasi
selbstsynchronisierend.
Für die Gesetzestreuen
UM10204 - 7.5:
If the length of the bus lines on a PCB or ribbon cable exceeds 10 cm
and includes the
VDD and VSS lines, the wiring pattern should be:
SDA _____________________
VDD ______________________
VSS ______________________
SCL _____________________
Dergute W. schrieb:> Moin,>> So ausm Bauch raus wuerd' ich sagen, dass das Layout, also die> Geometrie, Anzahl der vias im Signalweg beim I2C eher unkritisch ist.> Aber ich wuerde niemals 14 Teilnehmer an einen Bus haengen. Da haett'> ich Muffe.> Dann bau' ich persoenlich auch gerne sehr niederohmige> Serienwiderstaende vor jeden Slave, dann tut man sich leichter> rauszufinden, wer den I2C Bus nicht mehr loslassen will, falls er mal> haengt.>> Gruss> WK
Na ob 1 oder 255 Teilnehmer ist doch nur eine Sache für Laufzeit. Mehr
nicht!!!!!!
Meldet sich ein Teilnehmer nicht, macht er auch nix. Ist ja der Sinn
eines Bussystem.
Gruß
So würde ich es jetzt routen.
Sowie es im Datenblatt steht unterstützen die Slaves das
Clock-Stretching.
Die 5V Leitung ist 0,25mm für maximal 500mA.
Also ich habe eine Massefläche zwischen SDA und SCL. Ist es besser die
VCC in die Mitte der beiden zu platzieren?
Besser aber immernoch zu viele Schnörkel.
Zieh z.B. beim oberen Chip die SCL Leitung gerade nach unten, ohne
Abzweigung. Beim SDA daneben kannst du die Vias in gleicher Vertikaler
Ausrichtung platzieren, so dass auch diese Leitungen gerade werden. Und
so dann bei allen anderen auch.
Es wird auch so problemlos funktionieren, aber sobald du komplexere
Leiterplatten hast, bist du froh wenn du dir das schon vorher
antrainiert hast.
Ich habe auch noch etwas Senf zum dazugeben:
Miß doch mal den Abstand der LB, die sich im obigen Bild zwischen
IC-Padreihe und dem Thermo-Pad durchschlängelt (wenn ich das richtig
sehe Netz Vcc). Mindestens 150µm sollten es sein - eher mehr.
Das kann kritisch werden, wenn der LP-Fertiger seine Toleranzen beim
Aufbringen des Lötstops ausreizt. Der Versatz kann immerhin bis zu 100µm
(oder mehr, je nach Fertiger) betragen.
Wenn nun der Abstand gering genug ist, alle Toleranzen in die falsche
Richtung gehen, dann liegt hier das GND-Pad neben einem teilweise
offengelegten Vcc-Leiterzug. Das ganze liegt natürlich nicht sichtbar
unter dem IC-Gehäuse und du hast nach dem Bestücken u.U. einen Schluss
zwischen Vcc und GND.
Uwe N. schrieb:> Ich habe auch noch etwas Senf zum dazugeben:>> Miß doch mal den Abstand der LB, die sich im obigen Bild zwischen> IC-Padreihe und dem Thermo-Pad durchschlängelt (wenn ich das richtig> sehe Netz Vcc). Mindestens 150µm sollten es sein - eher mehr.>> Das kann kritisch werden, wenn der LP-Fertiger seine Toleranzen beim> Aufbringen des Lötstops ausreizt. Der Versatz kann immerhin bis zu 100µm> (oder mehr, je nach Fertiger) betragen.>> Wenn nun der Abstand gering genug ist, alle Toleranzen in die falsche> Richtung gehen, dann liegt hier das GND-Pad neben einem teilweise> offengelegten Vcc-Leiterzug. Das ganze liegt natürlich nicht sichtbar> unter dem IC-Gehäuse und du hast nach dem Bestücken u.U. einen Schluss> zwischen Vcc und GND.
Vielen Dank für den Tipp. Der Abstand beträgt aktuell 0,2mm, wobei ich
die Leiterbahn auch noch dünner machen könnte. Der Pin, den ich
ebenfalls an VCC anschließen möchte ist eine Art Undervoltage-Protection
und soll eigentlich über einen Spannungsteiler und einem JFET an die 48V
VErsorgunsspannung angeschlossen werden. Dies wollte ich mir allerdings
(auch aus Platzgründen) sparen.
Moin,
Fred R. schrieb:> Na ob 1 oder 255 Teilnehmer ist doch nur eine Sache für Laufzeit. Mehr> nicht!!!!!!> Meldet sich ein Teilnehmer nicht, macht er auch nix. Ist ja der Sinn> eines Bussystem.
Ja, nun. Ich bin kein so grosser Experte, sondern beschreibe nur mein
Bauchgefuehl...das muss man keineswegs teilen. Wir leben in einem Land,
in dem unsere Vorfahren fuer die Freiheit gekaempft haben, soviele
Slaves ueber so lange Leitungen wie sie wollen an einen I2C Bus haengen
zu duerfen :-)
Gruss
WK
Ich persönlich vermeide Leiterzüge in diesen Bereichen.
Einen Tip habe ich noch: es ist nicht verboten, das Thermo-Pad etwas
kleiner als im DB angegeben zu machen. Die Betonung liegt auf "etwas"...
:)
Uwe N. schrieb:> Ich persönlich vermeide Leiterzüge in diesen Bereichen.>> Einen Tip habe ich noch: es ist nicht verboten, das Thermo-Pad etwas> kleiner als im DB angegeben zu machen. Die Betonung liegt auf "etwas"...> :)
Ja darüber habe ich auch schon nachgedacht. ;)
Warum ziehst du nicht durchgehend SDA und SCK auf der Rückseite lang und
stichst jeweils mit einem Via nach oben und führst dann einen Stich zum
Teilnehmer?
Ich habe es mal skizziert.. Gerade machen kannst es selber ;-)
Wo läuft eigentlich GND lang?
Schlumpf schrieb:> Warum ziehst du nicht durchgehend SDA und SCK auf der Rückseite> lang und> stichst jeweils mit einem Via nach oben und führst dann einen Stich zum> Teilnehmer?> Ich habe es mal skizziert.. Gerade machen kannst es selber ;-)>> Wo läuft eigentlich GND lang?
Die Idee ist gut. Da ich davon ausgegangen bin, dass es unter umständen
zu Störungen kommen kann, habe ich den Bus auf die Unterseite gelegt.
Vom Bauchgefühl her hätte ich da gesagt, dass dies besser ist, da die
Leitungen dann weiter von den schaltenden Leitungen entfernt sind.
pkgo schrieb:> Schlumpf schrieb:>> Warum ziehst du nicht durchgehend SDA und SCK auf der Rückseite>> lang und>> stichst jeweils mit einem Via nach oben und führst dann einen Stich zum>> Teilnehmer?>> Ich habe es mal skizziert.. Gerade machen kannst es selber ;-)>>>> Wo läuft eigentlich GND lang?>> Die Idee ist gut. Da ich davon ausgegangen bin, dass es unter umständen> zu Störungen kommen kann, habe ich den Bus auf die Unterseite gelegt.> Vom Bauchgefühl her hätte ich da gesagt, dass dies besser ist, da die> Leitungen dann weiter von den schaltenden Leitungen entfernt sind.
GND ist als Fläche (gerade ausgeblendet) verlegt
Schlumpf schrieb:> Weil du gesagt hast, dass GND ne Fläche ist..> Aber dann meintest du, dass du die freien Flächen mit GND "flutest"
Ja die große Fläche, u.a. zwischen SDA und SCL werden Ground. Eine extra
Lage gibt es dafür nicht
Nun sollte es Gut sein.
Als alter I²C Busfahrer habe ich sehr viele üble Strecken ohne Unfall
überstanden.
Ob ein „fliegender“ Aufbau in einer Trafostation oder in einem
Schweißautomaten.
Entscheitend für Zuverlässigkeit, ist in der Digitaltechnik, nach wie
vor ein stabiles VCC und ein sauberes GND........
Ob GND sternförmig oder ringförmig aufgebaut wird, ist immer Objekt
abhängig.....
Wichtig ist nur GND zu GND sollte Nullkomma Null Ohm haben.
Na klar ist auch der Takt auf den Leitungen zu beachten. Leitungen
bilden wenn parallel eine Art Kondensator(F Kurzschluss) Nun würde ich
behaupten, in diesem Fall erst ab einer Frequenz oberhalb einiger GHz.
I²C Leidungen liegen auf H im „Ruhezustand“. Mehr H geht nicht. Es sei
denn der Blitz schlägt ein.
Schlussfolgerung:
Ist GND – Master = GND- Sklave, hat man einen sauberen Bezugspunkt.
Fällt aber über die GND- Leitung Spannung ab, wird es übel. GND- Leitung
sollten wenn Möglich eine optimale „Breite“ haben(Widerstand).
Was oft nicht beachtet wird ist halt GND, viele bauen in VCC aufwendige
Filter ein, in der Annahme, „Störimpulse“ zu beseitigen.
Gruß
Was sagt ihr zu der jetzigen Umsetzung?
Die Leitung D79 ist mit 600 kHz getaktet von einem LED-Treiber. Da
fließen 270 mA mit einem Ripple von run 10%. Eine schmale Massefläche
befindet sich zwischen SDA und SCL. Habe etwas bedenken vor Übersprechen
der LED-Leitung auf den Datenbus.