Hallo alle zusammen! Ich möchte einen Sensor über I2C ansteuern, der Aufbau ist wie folgt: Microcontroller --> 1-2m lange Leitung --> Sensor. Jetzt ist die Frage: An welchem Ende der Leitung sollte man sinnvoller Weise die Pull-Ups vorsehen? Sollen die Pull-ups lieber auf das Board, auf dem auch dem uC ist, oder lieber in die Nähe des Sensors platziert werden? Die Gedanken sind folgende: Wenn ich die Pull-Ups am uC platziere und der Sensor zieht den Bus auf low und lässt ihn dann wieder los, dann spielt beim passiven Hochziehen des Busses die gesamte Kapazität (und der gesamte Widerstand) der Leitung bis zum Pull-Up in die Entladezeit ein, dementsprechend wird diese dann lang sein. Wenn ich die Pull-Ups am Sensor platziere, habe ich das gleiche umgekehrt, sprich der der uC sieht immer die gesamte Leitung bis zun den Pull-Ups. Sind die Gedankengänge soweit plausibel? Wenn ja, wäre wahrscheinlich das Splitten der Pull-Ups (also das Vorsehen von Pull-Ups an beiden Enden) sinnvoll. Oder ist es so, dass ich ohnehin immer die Kapazität der gesamten Leitung mitberücksichtigen muss, egal wo die Pull-Ups sind? Gruß, Gerd
Moin, PullUps am uC, da können sie nicht abhauen :-). Hintergrund: wenn Du mehrere I2C Teilnehmer hast und den mit den Widerständen abklemmst geht das Licht aus. MfG
Gerd schrieb: > Oder ist es so, dass ich ohnehin immer die Kapazität der gesamten > Leitung mitberücksichtigen muss, egal wo die Pull-Ups sind? Würde ich sagen. http://www.i2c-bus.org/de/terminierung-und-kapazitaeten/
Sauger schrieb: > Moin, > > PullUps am uC, da können sie nicht abhauen :-). Hintergrund: wenn Du > mehrere I2C Teilnehmer hast und den mit den Widerständen abklemmst geht > das Licht aus. > > MfG Sorry, verstehe ich nicht ganz.. @all: vielleicht nochmal einen Schritt zurück: wenn bspw. der Slave den Bus auf low zieht, dann gließt der Stom doch über den nächstgelegenen Pull-Up-Widerstand. Spielt daher nur die Kapazität dieser Teilleitun (vom Slave über Pull zu Vcc) eine Rolle, oder kommt immer die gesamte Kapazität in die Betrachtungen mit rein?
Gerd schrieb: > oder kommt immer die gesamte > Kapazität in die Betrachtungen mit rein? Kapazität geht doch nicht verloren und kann auch nicht mit Widerständen abgeschaltet werden
Jo schrieb: > Gerd schrieb: >> oder kommt immer die gesamte >> Kapazität in die Betrachtungen mit rein? > > Kapazität geht doch nicht verloren und kann auch nicht mit Widerständen > abgeschaltet werden Darum geht's ja auch gar nicht!! Wenn der Slave schaltet, dann fließt der Strom wo entlang? Von der Quelle über den Pull-up zum Slave! D.h. die Kapazitäten dieser Leitungsstrecke (??) werden geladen. Lässt der Slave den Bus wieder los, dann muss die zuvor geladene Kapazität entladen werden. Die Frage ist, ob diese Betrachtung korrekt ist.. Bitte nur die Leute antworten, die Ahnung haben/das Problem verstehen!
Wow! Willst Du hier eine Frage stellen oder belehren? Eine Parallelschaltung von Kondensatoren (Leitungen) kannst Du doch nicht wegdiskutieren. Durch die Änderung der Spannung auf der Leitung sind selbstverständlich alle Leitungen betroffen, und somit werden auch alle Kapazitäten umgeladen.
sorry, aber auf so einzeilige Bemerkungen ohne Inhalt kann jeder Fragensteller verzichten... Demnach spielt es theoretisch keine Rolle, an welcher Stelle ich die Pull-Ups einsetze?
Mach keine 2 Meter Leitung an den I2C, dazu ist er nicht designed worden. Es gibt aber Applikationsbeispiele für größere Entfernungen. Such mal bei TI. Eine weitere Lösung ist die Datenrate sehr klein zu machen, dann sind die Kapazitäten nicht so arg störend. Vergiss außerdem Deine Ansicht wie der Strom fließt, das hilft hier nicht weiter. Es müssen Spannungspegel richtig erkannt werden.
Gerd schrieb: > Demnach spielt es theoretisch keine Rolle, an welcher Stelle ich die > Pull-Ups einsetze? Da du eine elektrisch kurze Leitung hast (< 2m) ist es elektrisch gesehen egal. Es spricht allerdings einiges dafuer sie in der naehe des steuernden uC zu setzen. Bei einer elektrisch kurzen Leitung ist immer die gesammte Kapazitaet des Leitung massgebend. Elektrisch kurz bedeutet das die Wellenlaenge deines Signales um ein vielfaches groesser ist als die Leitung selbst die Spannung an der Leitung also an allen Punkten gleich ist. Ohmische Leitungswiderstaende vergessen wir dabei einmal da sie um ein vielfaches kleiner als die Pullups sind. Erst wenn die Signale so kurz sind das deren Wellenlaenge kleiner als die Leitung selber sind trifft das dann nicht mehr zu. Stichpunkt: Wellenausbreitung auf Leitungen/ Telegraphengleichung. Aber beim langsam getakteten I2C und der kurzen Leitung von <2M trifft das hier nicht zu.
Gerd schrieb: > sorry, aber auf so einzeilige Bemerkungen ohne Inhalt kann jeder > Fragensteller verzichten... wow, hast du Umgangsformen... Da freut sich doch jeder gleich so drüber, dass er nicht lieber möchte, als die zu helfen.
Gerd schrieb: >> Kapazität geht doch nicht verloren und kann auch nicht mit Widerständen >> abgeschaltet werden > > Darum geht's ja auch gar nicht!! Na was hast Du denn gefragt? > Oder ist es so, dass ich ohnehin immer die Kapazität der gesamten > Leitung mitberücksichtigen muss, egal wo die Pull-Ups sind? Wenn Du Einzeiler nicht verstehen kannst, oder beim lesen der Antwort Deine Frage schon wieder vergessen hast dann hier noch mal langsem lesen: Die Kapazität der Leitung ist immer die selbe, egal ob Du rechts, links oder rechts und links einen Widerstand daneben hängst. Du musst die Kapazität der gesamten Leitung also in jedem Fall berücksichtigen. Ich wette aber Du hast keine Ahnung wie Du die berücksichtigen sollst ;-) Du kanst sie ja auch nicht ändern (außer durch ein anderes Kabel mit weniger Kapazität) Freitags ist es hier immer besonders lustig ;-)
Gerd schrieb: > Die Frage ist, ob diese Betrachtung korrekt ist.. Bitte nur die Leute > antworten, die Ahnung haben/das Problem verstehen! Soll / hier und oder oder heissen? Das sind nämlich 2 ganz verschiedene Fragen: es gibt hier sicher viele, die Ahnung von der Sache haben, aber deine Probleme nicht verstehen, weder die elektrischen noch die sozialen. Gruss Reinhard
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.