Analogtechnik

Wie man die Tücken einer vermeintlich einfachen IC-Schnittstelle bekämpft

Seite: 2/2

Anbieter zum Thema

Fehlerbild: „Mein SPI-Bus spielt gelegentlich verrückt“

Es kommt vor, dass ein Anwender besorgt feststellt, dass in seinem System unerklärliche Dinge geschehen, insbesondere unerwartete Reaktionen auf SPI-Befehle. Oft werden Störsignale als Ursache vermutet. Doch das ist eher unwahrscheinlich aus folgendem Grund:

Während Übertragungspausen müsste ein Störer das Signal CS (Chip Select) auf Low ziehen und gleichzeitig die Takt- und Datenleitung in den 30 bis 70% Pegelbereich bringen, was unwahrscheinlich ist. Während einer Datenübertragung reicht eine kurzzeitige Störung einer der Leitungen. Die Erfahrung zeigt jedoch, dass in solchen Fällen die Datenübertragung überhaupt nicht funktioniert oder die Daten werden völlig verstümmelt, der DAC-Ausgang würde also wilde Sprünge vollführen.

Bildergalerie

Es ist eine alte Weisheit ist, dass man bei der Diagnose eines Fehlers zuerst nach der wahrscheinlichsten Erklärung suchen sollte. In unserem Beispiel ist es viel wahrscheinlicher, dass die „unerklärlichen Vorgänge“ durch einen unvollständigen SPI-Befehl verursacht wurden.

Aber wie kommt es dazu, dass ein Befehl unvollständig übertragen wird? Während der Systementwicklung arbeitet man in der Regel mit einem kleinen System oder einer Untermenge des endgültigen, komplexen Systems. Das bedeutet, dass der Prozessor nur schwach ausgelastet ist und deshalb nur selten die Ausgabe eines SPI-Befehls durch einen Interrupt unterbrochen wird. Wenn das System wächst und der Prozessor immer mehr Befehle an immer mehr Geräte sendet, nimmt die Wahrscheinlichkeit dafür zu, dass ein SPI-Befehl durch einen Interrupt unterbrochen wird. Deshalb müssen Interrupts während der SPI-Übertragung unbedingt maskiert werden.

Wie können sich Störsignale auf ICs auswirken?

Starke Störsignale können eine digitale Datenübertragung zum Erliegen bringen [6, 7]. Deshalb sollten die stärksten potenziellen Störquellen, beispielsweise Überspannungen infolge eines Blitzeinschlags, auf der Systemebene angegangen werden; nicht systemrelevante Probleme hingegen können auf der Chip-Ebene gelöst werden.

Ein typisches Beispiel für ein systemrelevantes Problem, mit dem ein gewöhnliches IC nicht fertig wird, ist eine instabile Betriebsspannung. Eine 3-V-Betriebsspannung, die zwischen 1 und 5 V schwankt, verursacht Fehler, die kein IC der Welt korrigieren kann. Zugegeben, das ist ein Extrembeispiel – aber so etwas kommt gar nicht so selten vor.

Täglich erleben wir Netzspannungstransienten, verursacht durch große Motoren, Lichtbogenschweißgeräte oder Überspannungen infolge von Blitzeinschlägen oder abrupten Laständerungen im Netz. Ausgedehnte Stromnetze müssen auf den veränderlichen Strombedarf durch Zuschalten oder Abtrennen von Kraftwerksressourcen reagieren. Diese Schaltvorgänge können Spannungsänderungen hervorrufen, die sich durch das ganze Stromnetz hindurch fortpflanzen können.

Potenzielle Störsignal-Quellen

Weitere potenzielle Quellen starker Störsignale sind hochfrequente Störstrahlung (RFI, Radio Frequency Interference), elektromagnetische Störeinstreuungen (EMI, ElectroMagnetic Interference) und elektrostatische Entladungen (ESD, ElectroStatic Discharge). In vielen Gegenden gibt es während des Sommers fast täglich Gewitter und im Winter elektrostatische Entladungen wegen der trockenen Luft. Alle diese potenziellen Quellen starker Störsignale müssen bei der Systementwicklung berücksichtigt und mit geeigneten Gegenmaßnahmen – beispielsweise Schutzerdung, Abschirmungen und Überspannungsschutzbauteile – angegangen werden.

Typische Gegenmaßnahmen gegen die kleineren Probleme, die auf der Chip-Ebene behandelt werden müssen, sind: sternförmige Leiterbahnführung für Stromversorgungs- und Masseschienen; separate Layer für die Stromversorgungs- und Masseschienen von „sauberen“ (analogen) und „schmutzigen“ (digitalen) Spannungen [6]; Betriebsspannungsentkopplung durch Serienwiderstände, Induktivitäten, Ferritperlen und Parallelkapazitäten [7].

Die genannten Störsignalquellen können Fehlfunktionen hervorrufen und müssen daher verhindert bzw. entschärft werden. Es sind zahlreiche Schutzbauteile verfügbar, die es ermöglichen, Störsignale von Versorgungsleitungen, Datenleitungen und Schnittstellen fern zu halten. Ein extremen Fällen muss man eventuell einen Watch-dog-Timer vorsehen, der den Systemprozessor gegebenenfalls neu startet.

I2C – nur einer von Dutzenden Schnittstellenstandards

Es gibt eine Unmenge Schnittstellenstandards, um nur einige zu nennen: RS-232, RS-422/RS-485, USB, Ethernet IEEE 802 mit unzähligen Suffixen, IO-Link, LIN bus, 1-Wire, I2C, SMBus, SPI, MICROWIRE/MICROWIRE PLUS, M-Bus (EN1434), CAN (ISO11898)... Viele dieser Bezeichnungen sind Marken oder eingetragene Marken ihrer Schöpfer. Angesichts der Vielzahl und Vielfalt von Systemen, Protokollen, Standards und Substandards haben Entwickler die Qual der Wahl [8].

I2C (Inter-Integrated Circuit) ist ein serieller, mit unsymmetrischer Übertragungstechnik arbeitender Kommunikationsbus für den Anschluss von langsamen Peripheriegeräten an Fernsehapparate, Consumer-Produkte, Mobiltelefone oder sonstige elektronische Geräte. Die Technologie eignet sich gut für Kurzstreckenkommunikation innerhalb eines Gerätes oder einer Leiterplatte, wenn keine galvanische Trennung erforderlich ist. Sie wurde zudem für Anwendungen in verkabelten Systemen erweitert.

Wie die meisten Systeme hat auch die I2C-Schnittstelle ihre spezifischen Vor- und Nachteile. Eine grund¬legende Beschränkung ist darin zu sehen, dass sie Pullup-Widerstände verwendet und dadurch für eine maximale Lastkapazität von 400 pF ausgelegt ist. Man würde sich außerdem eine geringere Leistungsaufnahme wünschen, insbesondere bei batteriebetriebenen Geräten.

Eine geringere Leistungsaufnahme würde allerdings mit niedrigerer Busgeschwindigkeit einhergehen. Einige Anwendungen erfordern jedoch eine schnellere Datenübertragung. Die Taktfrequenzen typischer I2C-Implementierungen betragen zwischen 100 kHz und 3,4 MHz; SPI hingegen erlaubt Taktfrequenzen bis zu einigen zig Megahertz. I2C, auch als „serieller Zweidraht-Bus“ [9] bezeichnet, ist eine ideale Lösung für langsamere Systeme. I2C arbeitet mit bidirektionaler Signalübertragung – für die Übertragung der Daten vom Master zum Slave wird die gleiche Leitung verwendet wie für die Übertragung der Bestätigung vom Slave zum Master. Ein I2C-System kann mehrere Master enthalten, und da der Takt von dem jeweils aktiven Master geliefert wird, kann auch das Taktsignal bidirektional sein. Diese bidirektionale Kommunikation erschwert die galvanische Trennung, weshalb I2C normalerweise nur in kleinen Bereichen eines Systems eingesetzt wird.

Es gibt am Markt eine Unmenge von ICs mit den unterschiedlichsten Schnittstellen. Bei der Entwicklung eines Systems sollte man die ICs zuerst nach ihrer Funktion auswählen – beispielsweise A/D-Wandler, D/A-Wandler, Temperatursensor, Digitalpotentiometer usw. – und sich dann für eine der verfügbaren Schnittstellen entscheiden.

GPIO – unkompliziert und einfach zu implementieren

GPIO (General-Purpose Input Output) ist eine Parallelschnittstelle, die es einem Mikroprozessor ermöglicht, einfache Geräte über ein paar Leitungen zu steuern. GPIO benutzt einfache Standard-Mikroprozessoranschlüsse als Parallelschnittstelle. Es gibt heute zahlreiche ICs mit Parallelschnittstelle, darunter auch A/D-Wandler und D/A-Wandler.

Fazit: Der Teufel steckt im Detail

Beim Umgang mit den oft unterschätzten IC-Schnittstellen sollte man den Details die nötige Aufmerk-samkeit schenken, insbesondere dann, wenn man nicht genau weiß, wie wichtig sie sind. Nicht ohne Grund heißt es: Der Teufel steckt im Detail.

Literatur

[1] „Smileys“ sind im Unicode vieler Schriftsysteme enthalten. In Unicode finden sich über 50 Gesichter, darunter fröhliche und traurige, Tier-, Sonnen-, Mond-, Uhrengesichter und vieles mehr. Beispiele siehe unter http://unicode.org/.

[2] Ausführliche Informationen über Murphys Gesetz finden Sie unter http://en.wikipedia.org/wiki/Murphy%27s_law.

[3] Eine gute Einführung in SPI und I2C finden Sie unter http://www.byteparadigm.com/kb/article/AA-00255/22/Introduction-to-SPI-and-IC-protocols.html.

[4] Siehe Maxim Applikationsbericht 802, "Interfacing SPI Peripherals to the MAX7651 Processor" unter www.maxim-ic.com/AN802.

[5] Siehe Maxim Applikationsbericht 4429, "Murphy's Law and the Risks of Designing ‘Off Data Sheet’" über ESD, RFI und die Länge von gedruckten Leiterbahnen unter www.maxim-ic.com/AN4429.

[6] Siehe Maxim Applikationsbericht 4345, "Well Grounded, Digital Is Analog" über Masseebenen und Sterntopologien unter www.maxim-ic.com/AN4345.

[7] Siehe Maxim Applikationsbericht 4992, "Reduce the Chances of Human Error: Part 1, Power and Ground" über Betriebsspannungsentkopplung, Eigenresonanz von Kondensatoren, Tiefpassfilter, Rauschen auf der Betriebsspannung und sternförmige Masse-Topologien unter www.maxim-ic.com/AN4992.

[8] Tutorials und Einführung in die Grundlagen von I2C: http://www.i2c-bus.org/;

a. I2C Manual: http://www.nxp.com/documents/application_note/AN10216.pdf;

b. Die I2C-Bus-Spezifikation: http://www.nxp.com/documents/other/39340011.pdf;

c. Der I2C-Bus und seine Anwendung: http://www.i2c-bus.org/fileadmin/ftp/i2c_bus_specification_1995.pdf;

d. Was geschieht, wenn man die Pull-up-Widerstände eines I2C-Bus ändert? http://www.dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors.html.

[9] Siehe Maxim Applikationsbericht 4024, “SPI/I²C Bus Lines Control Multiple Peripherals" unter www.maxim-ic.com/AN4024; Applikationsbericht 3967, "Selecting a Serial Bus" unter www.maxim-ic.com/AN3967; und Applikationsbericht 3438, "Serial Digital Data Networks" unter www.maxim-ic.com/AN3438. //

* Bill Laumeister arbeitet als Strategic Applications Engineer bei der Precision Control Group von Maxim Integrated in Sunnyvale / USA.

(ID:42439178)