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
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