Huhu ich bins nochmal :-)
Muss am Freitag eine Klausur zum Thema Schnittstellen schreiben. Im
Fragenkatalog zu I²C sind mir da noch ein paar Fragen unklar:
1. "Durch welche Maßnahmen kann der Energiebedarf beim I²C verringert
werden?"
Ich vermute mal "Pull-up - Widerstände vergrößern". Korrekt? Oder gibt
es auch noch andere Möglichkeiten?
2. "Warum funktioniert 'Stop gefolgt von Start' in Multi-Master-Systemen
nicht immer korrekt?"
Kann ich nur raten - weil ein anderer Master den Bus an sich reißt!?
Aber warum sendet er dann überhaupt ein Stop, wenn er noch was anderes
senden will?
3. "Geben Sie die übliche I²C - Buslänge an: einige cm - einige Meter -
einige 100m"
Das letzte ist natürlich Quatsch. Aber welches von den ersten beiden ist
richtiger? (Ich finde nur "innerhalb eines Gerätes").
4. "Welche Ausgangsstufen werden für diese Schnittstelle verwendet?"
Da versteh ich gar nicht was die wollen.
Danke schonmal für jede Hilfe :-)
Francisca93 schrieb:> 4. "Welche Ausgangsstufen werden für diese Schnittstelle verwendet?"
Nur mal kurz überlegen. Es werden externe Pullups verwendet und ein
Teilnehmer kann die Leitung auf 0 ziehen. Welche Ausgangsstufe erfüllt
das?
Horst schrieb:> 3 - einige Zentimeter> schon einige Meter innerhalb eines Gerätes unterzubringen ist schwierig.
Das hängt natürlich von der Datenrate ab. Je schneller. desto weniger
Entfernung ist möglich. Ich hab zum Beispiel schon mal eine
Leitungslänge von 3-4m mit I2²C überbrückt. Geschwindigkeit müsste ich
nochmal raussuchen. War aber für die Ansteuerung von paar LEDs und
LED-Zeilen und einige Tastenabfragen schnell genug...
Aber tendenziell würde ich ebenfalls die Antwort "einige cm" wählen,
denn mit "einigen Metern" wird es definitiv schwierig, wenn damit mehr
als 3-4m gemeint sind.
Ich habe auch schon 10m geschafft, allerdings mit Mikrocontrollern,
deren Treiber stärker sind als von der I2C-Spezifikation verlangt. Ich
denke der handfeste Anhaltspunkt ist die maximale Kapazität der
Leitungen. Wenn man die Kapazitäten von üblichen mehradrigen Kabeln
daneben hält, dürfte schnell klar werden, dass mehrere Meter außerhalb
der Spezifikation liegen.
Horst schrieb:> 4 - OpenCollector
Ja, super - gant toll gemacht. Das soll aber der TE selber herausfinden.
Das ist hier kein Hausarbeiten-Lösungsforum.
Erwin D. schrieb:> Ich hab zum Beispiel schon mal eine> Leitungslänge von 3-4m mit I2²C überbrückt.Bert 4. schrieb:> Ich habe auch schon 10m geschafft,
ja, schön, ich auch aber hier war nach der üblichen Länge gefragt.
Matthias S. schrieb:> Ja, super - gant toll gemacht. Das soll aber der TE selber herausfinden.> Das ist hier kein Hausarbeiten-Lösungsforum.
Wenn Du das nötig hast, ich bin zu alt um hier Leute zu maßregeln und
Endlosdiskussionen über die Richtigkeit schwammig formulierter Antworten
zu führen.
Deine Beschreibung wird z.B. auch von OpenDrain erfüllt, welcher
I2C-Chip hat die?
Francisca93 schrieb:> 1. "Durch welche Maßnahmen kann der Energiebedarf beim I²C verringert> werden?"
Wenn man den Energiebedarf als mittleren Energiebedarf versteht, gibt
es, neben dem Eingangswiderstand der Empfänger, genau zwei Parameter die
den beeinflussen: Die Höhe des Stromes und die Dauer des Stromflusses,
also die Dauer der Übertragung.
> Deine Beschreibung wird z.B. auch von OpenDrain erfüllt
Open-Collector und Open-Drain sind gleich gut geeignet. Das eine bezieht
sich auf bipolare Transistoren, das andere auf MOSFET.
> welcher I2C-Chip hat die?
fast jeder, schätze ich mal.
Stefanus F. schrieb:> as eine bezieht> sich auf bipolare Transistoren, das andere auf MOSFET.
[Loriot] ach [/Loriot]
Stefanus F. schrieb:> fast jeder, schätze ich mal.
Sicher?
Walter Tarpan schrieb:> Wolfgang schrieb:>> also die Dauer der Übertragung.>> + die Wahl des Ruhepegels
Bei I2C gibt es da nicht so viel Auswahl, sonst wäre es kein I2C.
Matthias S. schrieb:> Horst schrieb:>> 4 - OpenCollector>> Ja, super - gant toll gemacht. Das soll aber der TE selber herausfinden.> Das ist hier kein Hausarbeiten-Lösungsforum.
Ja was? Fancisca93 macht Klausurvorbereitung und hat Fragen, also halt
den Ball flach!
Francisca93 schrieb:> Ich vermute mal "Pull-up - Widerstände vergrößern". Korrekt? Oder gibt> es auch noch andere Möglichkeiten?
Viel mehr Parameter wird es auch nicht geben - außer du hast wenig zu
senden, also viele lange Pausen oder du überträgst fast nur Einsen :-).
Francisca93 schrieb:> 3. "Geben Sie die übliche I²C - Buslänge an: einige cm - einige Meter -> einige 100m"
Konzipiert wurde I2C für die Kommunikation zwischen ICs innerhalb einer
Platine oder eines Gerätes (ich meine, I2C wurde anfangs häufig in
TV-Geräten verwendet). Es gab vermutlich keine definierte
Längenbeschränkung, aber dies impliziert hier eher Längen <1m.
Es wurde ja schon genannt, dass die Grenze abhängt von der
Busgeschwindigkeit, vom Wert der Pullups und von der durch die Leitung
und die Zahl der Busteilnehmer hervorgerufene kapazitive Belastung.
Ich würde die Antwort "mehrere Meter" nicht mehr einschließen.
Bei NXP sollte die I2C-Spezifikation zu finden sein.
(https://www.nxp.com/documents/user_manual/UM10204.pdf) Ich meine, da
ist auch die max. kapazitive Belastung genannt und der maximale Strom
(--> min. Pullup) angegeben.
HildeK schrieb:> Es wurde ja schon genannt, dass die Grenze abhängt von der> Busgeschwindigkeit, vom Wert der Pullups und von der durch die Leitung> und die Zahl der Busteilnehmer hervorgerufene kapazitive Belastung.> Ich würde die Antwort "mehrere Meter" nicht mehr einschließen.
Ich schon. In jedem normgerechten HDMI/DVI Kabel ist ein I2C Bus mit
drin. Und das kann mehrere Meter lang sein.
Zum zweiten ist eine Buslast von max 400pf zulässig (und ein Strom von
3mA), da bleiben leicht 350pf fürs Kabel übrig und das können leicht
mehrere Meter sein.
MfG Klaus
HildeK schrieb:> Ja was? Fancisca93 macht Klausurvorbereitung und hat Fragen, also halt> den Ball flach!
Fancisca93 nervt lieber ein Forum seit Wochen anstatt sich Lösungen
selber zu erarbeiten. Im späteren Berufsleben wird er/sie eine Belastung
für die Kollegen sein.
Schukostecker schrieb:> Im späteren Berufsleben wird er/sie eine Belastung> für die Kollegen sein.
Und da ist sie wieder, die Sinnlosdiskussion zum Thema 'Erziehen statt
Helfen'
Open Drain, Open Collector ... das sollte dem I2C Bus ziemlich Wumpe
sein. Wenn Du damit das Timing hin kriegst kannst Du da auch ein Relais
verwenden um die Leitungen runter zu ziehen.
Zu Thema Energiesparen: Datentransfer zeitlich bündeln und in Totzeiten
den Bus ganz abschalten.
Thomas M. schrieb:> Zu Thema Energiesparen: Datentransfer zeitlich bündeln und in Totzeiten> den Bus ganz abschalten.
Was ist denn deiner Meinung nach ein ganz abgeschalteter Bus?
Solange keiner was sagt, sind die Ausgangsstufen offen, die Pull-ups
ziehen die Leitungen hoch und der Strom, der in eine CMOS-Eingangsstufe
rein fließt, hält sich bekanntermaßen in engen Grenzen.
Wie willst du da den Stromverbrauch dirch irgenwelche Abschaltmaßnahmen
weiter verringern?