Ich habe einen Lichtsensor- IC.
Ich habe 2 Fragen:
Ist es in diesem Fall richtig, die Pull-Ups des I2C in der Nähe des Mikrocontrollers auf der Mikrocontroller-Leiterplatte zu platzieren, oder sollte ich sie auf der Lichtsensor-Leiterplatte platzieren? Soweit ich gelesen habe, sollten die Pull-up-Widerstände in der Nähe des Masters platziert werden, und daher denke ich, dass sie in der Nähe des Mikrocontrollers platziert werden sollten. Bitte bestätigen.
Das sind wirklich zwei verschiedene Fragen:
Für den ersten Teil ist es einfach: Sie verbinden sie einfach nicht. Oder Sie können das auch an Masse binden, wenn es hilft (normalerweise zur Wärmeleitung). Die interne Struktur ist einfach ein MOSFET mit der Source an Masse und dem Drain… offen (und normalerweise einer ESD-Schutzstruktur). Binden Sie es nur nicht an etwas anderes als einen Boden.
Zur zweiten Frage gibt es eine etwas detaillierte Erklärung in den I2C-Spezifikationen (Download von NXP), aber kurz gesagt gibt es eine einfache Regel: Ziehen Sie sie irgendwo mit einigen Kiloohm Widerstand an die entsprechende Versorgung.
I2C ist nicht impedanzgesteuert, daher ist es nicht wirklich wichtig, wo oder wie Sie es tun. Man könnte argumentieren, dass mehr oder weniger in der Mitte etwas besser sein könnte. Der Bus selbst ist Multimaster (oder kann es zumindest sein), sodass es keinen bevorzugten Signalerzeugungspunkt gibt. Platzieren Sie die Klimmzüge also einfach an einer geeigneten Stelle.
Was den Wert betrifft, ist das etwas wichtig. Der Pullup-Widerstand bildet mit der parasitären Streckenkapazität einen RC-Kreis. Kurz gesagt, ein größerer Widerstand verursacht eine längere Anstiegszeit, die die Timing-Spezifikationen verletzen könnte. Ein zu kleiner Widerstand würde die Bustreiber überlasten.
Es sei denn, Sie haben einen wirklich langen oder bevölkerten Bus oder Sie machen Hochgeschwindigkeits-I2C, es spielt wirklich keine Rolle. Gängige Werte sind 2k2 oder 4k7 Ohm. Bei Problemen mit einem Oszilloskop prüfen und abstimmen.
DoxyLover
Neuling