Die Kommunikation von Mikrocontrollern mit ihrer Umgebung findet häufig per I²C-Bus statt. Je länger die Übertragungsstrecke, desto störungsanfälliger wird die Kommunikation. Mit einer geeigneten Filter- und Schutzschaltung lässt sich die Störfestigkeit jedoch deutlich erhöhen.
Von Andreas Nadler, Würth Elektronik eiSos
Der I²C-Bus (Inter-Integrated Circuit) ist eine populäre serielle Kommunikations-schnittstelle, die hauptsächlich genutzt wird, um Mikrocontroller mit Peripherie-ICs (z. B. Sensoren oder Speicher) zu verbinden. Der Bus nutzt jeweils eine bidirektionale Datenleitung (SCL) und eine Taktleitung (SDA). Er findet jedoch nicht nur innerhalb von Platinen Einsatz, sondern wird in vielen Applikationen mithilfe von diversen Steckverbindern und Kabeln in andere Bereiche erweitert. Dadurch wird der I²C-Bus potenziell anfälliger für Störungen von außen wie beispielsweise ESD, Burst und eingestrahlte HF-Störsignale.
Mit geeigneter Filter- und Schutzschaltung lässt sich die Störfestigkeit des I²C-Bus erhöhen, ohne dass die Signalqualität der Daten- und Taktleitung leidet. Dazu wurden Simulationsmodelle in LTspice erstellt und eine reale Applikation vermessen, um die Simulationsergebnisse zu verifizieren.
Der I²C-Bus arbeitet nach dem Prinzip »Master-Slave«, wobei der Master immer den Datentransfer initiiert. Aufgrund seiner geringen Komplexität hat der Bus eine große Verbreitung erzielt. Allerdings ist das Protokoll sehr einfach konzipiert und die physikalische Topologie nur massebezogen (single-ended). Beides führt in der Praxis dazu, dass der Bus sehr anfällig auf externe Störungen (z. B. bei EMV-Tests) reagieren kann. Tabelle 1 gibt einen Überblick über die I²C-Spezifikationen.
Bild 1 zeigt eine vereinfachte Blockschaltung des I²C-Bus. Alle ICs, die am I²C-Bus teilnehmen, besitzen Open-Kollektor-Ausgänge. Diese schalten die Pull-up-Widerstände abwechselnd auf Referenzmasse und generieren somit die logischen Zustände »1« (VCC) und »0« (GND). Wie in Tabelle 1 ersichtlich ist, verringern sich die max. zulässigen Flankenanstiegszeiten mit Zunahme der Datenrate. Der mathematische Zusammenhang der Min./Max.-Werte für die Pull-up-Widerstände ist durch die Gleichungen 1 und 2 gegeben.
VCC = Referenz-Spannungspegel des I²C-Bus (Volt)
VL = Max. Logik »0« Schwellwert (z. B. 0,4 V bei VCC > 2 V)
CBus = Max. parasitäre Buskapazität der Applikation (Farad)
tr = Max. zulässige Anstiegszeit, abhängig von der Datenrate (Sekunden)
IPull-up = Max. möglicher Strom durch die Open-Kollektor-Pins (Ampere)
Die Pull-up-Widerstände in Kombination mit der parasitären Buskapazität bilden ein RC-Glied. Das führt zu einer Verzögerung der Flankenanstiegszeit des Rechtecksignals. In vielen Applikationen ist dieses RC-Glied oftmals der limitierende Faktor in Bezug auf die maximal mögliche Datenrate und Kabellänge. Wie Tabelle 1 zeigt, ergibt sich daher nach der I²C-Spezifikation bei den meistverwendeten Datenraten (100 kBit/s und 400 kBit/s) eine maximale Buskapazität von 400 pF bei 3 mA Strom. Je kleiner die Pull-up-Werte gewählt werden, desto kürzer kann die Flankenanstiegszeit werden. Das unte- re Limit bestimmt, wie in Gleichung 1 ersichtlich ist, den max. Logik-Low-Schwellwert, den Referenzspannungspegel und den max. möglichen Strom.
➔ Die parasitäre Buskapazität hängt unter anderem ab von
➔ Bauteilkapazitäten
➔ Länge und Breite der Leiter- bahnen (ca. 0,5 pF/cm)
➔ Länge und Art der Kabel und Stecker
➔ Lagenaufbau und Dielektrizitätskonstante der Leiterplatten.
Um die Störfestigkeit gegenüber ESD, Burst sowie eingestrahlten HF-Signalen zu erhöhen, bietet sich eine Kombination aus SMT-Ferriten plus TVS-Dioden an (Bild 2). Breitbandig wirkende SMT-Ferrite (z. B. 742792693) bauen oberhalb von 10 MHz kontinuierlich Impedanz auf und sind daher in der Lage, den Bus gegenüber den hochfrequenten Störungen zu schützen. Überspannungen können zudem durch die TVS-Dioden wirksam auf Referenzmasse abgeleitet werden.
Da sich die Werte der Pull-up-Widerstände oftmals im Bereich von kΩ bewegen, spielen der RDC und die Impedanz von SMT-Ferriten unterhalb von 10 MHz hier nur eine untergeordnete Rolle. Somit ist in einer ersten Überlegung davon auszugehen, dass die Flankenanstiegszeit des Nutzsignals praktisch kaum beeinflusst wird. Werden passende TVS-Dioden mit geringer Kapazität (z. B. 824012823 – 0.18 pF) ausgewählt, hat deren Bauteilkapazität ebenfalls keinen relevanten Einfluss auf die Signalqualität. Bei einem ESD-Test kann beispielsweise kurzzeitig ein Strom von über 10 A fließen, wodurch dann an dieser Diode eine Spannung von ca. 10 V anliegt. Alle weiteren ICs am I²C-Bus müssen diese Spannung dann aushalten. Dies funktioniert nur, wenn man eine nieder- impedante Masse (z. B. große Kupferfläche in einer Innenlage) zur Verfügung stellt, um einen weiteren Spannungsabfall zu vermeiden.
Mithilfe des kostenlosen Simulationsprogramms LTspice lässt sich relativ leicht untersuchen, welchen Einfluss die parasitäre Buskapazität in Kombination mit den gewählten Pull-up-Widerständen hat. Um die gewünschten Nutzsi- gnale zu erzeugen, bietet es sich an, einen spannungsgesteuerten Schalter zu verwenden. Mithilfe der Spannungsquelle kann praktisch jedes beliebige, periodische Signal erzeugt werden. Dazu wählt man die Funktion »Puls« und legt anhand der gewünschten I²C-Spezifikation die gewünschte Bandbreite fest.
Für die weit verbreitete 400-kBit/s-Variante wird eine Periodendauer von 2,5 µs gewählt. Bei einem Tastverhältnis von 50 Prozent wird hierbei die »High«-Zeit auf 1,25 µs gesetzt. Um die Flankensteilheit des Signals zu bestimmen, kann man sich beispielsweise an den Anstiegszeiten der verwendeten Busteilnehmer-ICs orientieren. Um die maximal zulässigen 400 pF parasitäre Buskapazität ausnutzen zu können, wurden die Pull-ups auf 1 kΩ festgelegt. Es werden drei Kanäle (kann in der Praxis SCL oder SDA darstellen) simuliert (Bild 3):
➔ Ohne parasitäre Buskapazität
➔ 400 pF parasitäre Buskapazität
➔ 400 pF + Breitbandiger Multilayer-SMT-Ferrit (742792693)
Das Simulationsergebnis in Bild 4 zeigt, dass von dem Multilayer-SMT-Ferrit praktisch kein Einfluss auf die Anstiegszeit des Signals zu erwarten ist. Dadurch, dass jeder Multilayer-SMT-Ferrit auch einen Induktivitätsanteil hat, sind in Kombination mit der Buskapazität geringfügige Oszillationen sichtbar. Diese sind allerdings unkritisch, da deren Amplituden kleiner als zehn Prozent des eigentlichen Nutzsignals sind. In der realen Messung fallen diese Oszillationen sogar noch deutlich geringer aus.