Hallo alle miteinander, trifft das zu das der I2C-Bus für SDA und SDL
jeweils einen Pull-UP Widerstand benötigt und gibt es da eine
Widerstandsvorgabe? hab nämlich gelesen das mind. 3ma über den Pull-UP
fließen sollen, mein Controller kann aber nur 2ma ab.
Vielen Dank schonmal
MfG Florian
florian wrote:
> mein Controller kann aber nur 2ma ab.
Der Controller muss bei I2C die Leitungen gegen Masse ziehen... Da Du
von 2mA schreibst gehe ich dal davon aus dass es sich nicht um einen
Mega oder Tiny handelt. Einfach mal im Datenblatt nachsehen ob der
Controller unterschiedliche Ströme bei "L" und "H" hat.
@ florian (Gast)
>Hallo alle miteinander, trifft das zu das der I2C-Bus für SDA und SDL>jeweils einen Pull-UP Widerstand benötigt und gibt es da eine>Widerstandsvorgabe?
Je nach Geschwindigleit und Betriebsspannung zwischen 1K und 100K.
> hab nämlich gelesen das mind. 3ma über den Pull-UP>fließen sollen, mein Controller kann aber nur 2ma ab.
Welcher Controller? Glaub ich kaum, die meisten können wesentlich mehr.
Ausserdem kannst du grössere Widerstände nutzen, dann wird der Bus nur
etwas langsamer.
MFG
Falk
Ja, der I2C-Bus benötigt einen Pull-up, an beiden Leitungen. Doch manche
Bausteine können auch ohne Pull-up laufen, müssen den Bus dann
allerdings als Master treiben. Geht, ist aber unsauber.
Üblich für die Pull-up's sind bei 5V Betriebsspannung irgendwas zwischen
10k und 4,3k. Hängt von der Art und Menge der angeschlossenen Geräte ab
(Kapazität der Busleitungen wäre hier ein Stichwort).
Den Strom kannst du ja berechnen :-) liegt selbst im worst-case deutlich
unter 2mA.
@ Stefan (Gast)
>100k wären aber schon arg viel, oder?
Warum? Wenn man nur wenige ICs am Bus hat und kurze Leitungen und nicht
schnell kommunizieren muss reicht das. Sagen wir mal 20pF
Leitungskapazität +2x10pF für die ICs, macht 40pF. Mit 100k ergibt das
4µs Zeitkonstante und ~8us Anstiegszeit. Damit macht man noch locker
30kHz.
MfG
Falk
2mA ist merkwürdig.
Philips hat für I2C-Bausteine mindestens 3mA festgelegt und daran halten
sich alle mir bekannten ICs.
Deshalb nehme ich immer 1,8k (=2,8mA) für den I2C.
Peter
Wenn ich einen Atmega als Master habe und ca. 10 Atmegas als Slave, was
empfiehlt sich da als Rpu zu nehmen? Sollte man zu 4,7k oder 10k
tendieren, wenn man noch störsicher und möglichst schnell übertragen
möchte?
Wo setzt man den pullup denn hin? am master?
Oder macht es sinn jeden teilnehmer einen zB 100k Pullup zu geben damit
sich bei z.B. 8 teilnehmern rund 12 k ergeben?
Eigentlich (im Normalfall) am Master. Ein Pull-UP kann aber sonst wo am
BUS platziert werden. Das Spiel glaube ich keine Rolle, ob am Anfang
oder am Ende. Die Pull-Ups sollen die Pegel der Leitungen auf VCC
ziehen.
Guten Abend,
was für Pullups soll ich am besten bei einem Sensirion SHT1X
Temperatursensor nehmen? Im Datenblatt ist nur ein Pullup an DATA mit
10k eingezeichnet und im Atmleldatenblatt vom Atmega 32 zwei
Widerstände. Was ist euerer Meinung nach nun richtig. Fahre ich bei
diesem Sensor mit jeweils einem Pullup von um die 2k richtig oder muss
es unbedingt einer sein und dieser brauch um die 10K?
Danke!
Martin
Joachim B. schrieb:> weil I2C normalerweise OC (open collector ist) und durchaus 2> verschiedene VCC haben kann.
Das ist nur zur Hälfte richtig:
Ja, I²C hat Open Drain bzw. Open Collector Ausgänge.
Nein, er kann pro Segment nur eine Versorgungsspannunghöhe haben. Wenn
die Pull-up Widerstände an 3,3V hängen, wird es mit dem High-Pegel für
die 5V Teilnehmer eng. Und wenn die Pull-ups an 5V hängen, dann machen
die 3,3V Bausteine dicke Backen und klemmen den High-Pegel über ihre
Eingangsdioden auf 3,3V. Oder sie gehen einfach kaputt.
Carsten W. schrieb:> Das ist nur zur Hälfte richtig:
OK vielleicht hatte ich einen Denkfehler, es gilt nur low als gültiges
Datum und ich kann OC 5V Kreise auch auf 3,3V runtertrimmen, gültig ist
low.
Was eben nicht geht ist ein pullup nach 3,3V auf der einen Seite und ein
pullup nach 5V auf der anderen Seite.
Und ganz wichtig, für die ganz schlauen: auch mit nur einem Master darf
man die clock nicht nach high treiben.
Siehe clock Stretching. Wenn irgendwo im SW-I2C ein paar
"Erfahrungs-NOPs" auftauchen, ... dann hatte jemand die Idee.