Hallo zusammen, ich möchte meinen Controller mit verschiedenen Bausteinen über I²C-Bus miteinander verbinden. Ich wollte über eine Stiftleiste den Anschluss über weitere I²C-Bausteine möglich machen. Um den Bus vor versehentlichen Hochspannungen zu schützen, wollte ich den Bus mit ner Zener-Diode absichern. Damit mir die Diode bei Kurzschluss nicht abraucht, habe ich Längswiderstände auf dem Bus angebracht. Da der I²C-Bus Open-Drain ist, muss man ihn über PullUp-Widerstand anbinden. Dummerweise gibts dann aber über das Spannungsteiler-Verhältnis vom Längswiderstand und PullUp einen zu hohen LOW-Pegel auf der Leitung. Kennt jemand ne Lösung, wie ich meinen Bus schütze und trotzdem vernünftige Pegel auf der Leitung bekomme ?
Der I2C ist ein LOKALER Bus und sollte eigentlich die Platine nicht verlassen. Und wenn's denn unbedingt sein muss, nimm einen I2C-Expander.
Nachtrag: Wozu diese Schutzbeschaltung? Wovor soll sie schützen? "Hochspannung" ist ein dehnbarer Begriff. Mir fällt dazu folgendes ein: 1. statische Überspannungen beim Handhaben der spannungslosen Geräte / Bauteile: Die üblichen Vorsichtsmaßnahmen reichen gut aus, nichts erforderlich. 2. transiente Überspannungen beim "Zusammenstöpseln" von Systemkomponenten, während das System unter Betriebsspannung steht: Ist das tatsächlich nötig? 3. Fehlsteckungen: gründliche Prüfung vor Einschalten des Systems bzw. von vorneherein verpolungssichere Steckverbindungen vorsehen. Und jetzt zur Schutzbeschaltung: Der Pullup-Widerstand einer I2C-Leitung beträgt sicher mindestens 1 kOhm (I2C-Spezifikation: Treiberstrom); damit bleibt für die Längswiderstände 47 Ohm als realistischer Wert übrig. Wenn es also tatsächlich nicht ohne Schutzbeschaltung geht, dann sollte diese Dimensionierung gut arbeiten.
Danke Bernhard, deine Tipps waren wirklich sehr hilfreich. Ich denke auch, dass ich beim versehentlichen Anlegen von z.B. Versorgungsspannung (bei mir 12V) an eine I²C-Leitung kein guter Kompromiss zwischen Schutz und Funktion gefunden werden kann.
@Bensch: >Der I2C ist ein LOKALER Bus und sollte eigentlich die Platine nicht >verlassen. Und wenn's denn unbedingt sein muss, nimm einen I2C-Expander. Was spricht dagegen, den I2C-Bus auch zwischen mehreren Platinen/Baugruppen einzusetzen, wenn die maximal zulässige Kapazität nicht überschritten wird ? Ich frage deswegen, weil ich gerade ein modulares System (Baugruppenträger)entwickle, wo ein I2C-Bus über die Backplane geführt wird, der zweite über ein 3m-Kabel zu einem Handbedienteil. Die Backplane arbeitet mit 400kHz ohne Störungen, das Kabel mit 50KHz, jeweils mit CRC gesichert. Master ist ein LPC2148, die Slaves sind AVRs. Gruß, Martin
@ Martin (Gast) >Was spricht dagegen, den I2C-Bus auch zwischen mehreren >Platinen/Baugruppen einzusetzen, wenn die maximal zulässige Kapazität >nicht überschritten wird ? Störeinkollungen und ggf. Masseverschiebung durch hohe Ströme. Wenn das nicht gegeben ist kann man I2C durchaus verlängern. MfG Falk
@Falk: OK, dann bin ich erst mal beruhigt. Auf unserer Backplane liegen unbelastete Masseleitungen zwischen den I2C-Signalleitungen, die stromführende Masseleitung ist 6-fach ausgeführt. Das Handbedienteil braucht nur 100mA. An Potentialverschiebungen hatte ich auch gedacht, weil es eine Motorsteuerung werden soll mit einigen Ampere Motorstrom. Bisher funktioniert es so sehr gut, aber der Test mit den dicken Motoren steht noch aus... Mfg Martin
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.