Fehler-Modi von Mikrocontrollern: Warum sie auftreten und wie man sie verhindert

“Anything that can go wrong will go wrong” written on a whiteboard

Alles, was schief gehen kann, wird schief gehen

Ich verdanke einen Großteil meines Designerfolgs meinem Kollege. Allerdings nicht wegen der Laborversuche, bei denen wir gelernt haben, was einen Kondensator versehentlich in die Luft jagen könnte, sondern weil wir gelernt haben, dass Murphys Gesetz zuschlagen kann, wenn man es am wenigsten erwartet. Ich verbrachte damals viel Zeit mit Computerspielen und der Bewältigung eines endlosen Aufgabenpensums und musste mich somit darauf verlassen können, dass mein Computer jederzeit funktioniert.

Damals waren die Computer in Ihrer Leistung noch recht limitiert und es war nicht ungewöhnlich, den berüchtigten "Blue Screen Of Death" zu sehen. Während es natürlich frustrierend ist, beim Computerspielen unterbrochen zu werden, hätte der Verlust von Stunden ungespeicherter Arbeit aufgrund eines Systemabsturzes eine massive Panikattacke in mir ausgelöst. Als Designer haben Sie vielleicht eine ähnliche Panik erlebt, wenn Ihr Mikrocontroller im Außeneinsatz ausgefallen ist.

Wie sich Fehler-Modi von Mikrocontrollern auf ein System auswirken

In einem Embedded-System können Ausfälle von Mikrocontrollern (MCUs) schlimmere Auswirkungen haben, als nur eine verpasste Frist für die Einreichung Ihrer Arbeit. MCUs sind oft das Herzstück von Anwendungen wie Zahlungssystemen, medizinischen Geräten und Sicherheitssystemen. Diese Systeme erfordern eine hohe Stabilität und haben oft geringe Toleranzen für Systemausfälle.

Eine ausgefallene MCU kann zu einem vollständigen Stillstand des Betriebs führen. Dies kann für die Benutzer lästig sein aber auch Sicherheitsrisiken für kritischen Anwendungen darstellen. Für die Kunden führen unzuverlässige Systeme zu einer Beeinträchtigung der Betriebskapazität und potentiell auch zu Umsatzeinbußen. Für uns als Designer ist es ein schwerer Schlag für unseren Stolz, wenn Hunderte unserer Produkte ständig im Außeneinsatz versagen, abgesehen von der drohenden Rufschädigung.

Businesspeople blaming frustrated colleague

Die Schuld bei anderen zu suchen macht einen ausgefallenen Mikrocontroller nicht wieder funktionstüchtig.

Warum ein Mikrocontroller ausfällt und wer die Verantwortung dafür übernehmen sollte

Ein zuverlässiges Embedded-System erfordert eine gemeinsame Anstrengung des Hardware-Designers und des Firmware-Programmierers. Einige Designfehler können während der Entwicklungsphase unentdeckt bleiben und entfalten erst nach dem Einsatz ihr destruktives Potential. Wenn dies der Fall ist, wer sollte dann den Hauptanteil der Verantwortung tragen? 

Bevor wir Schuldzuweisungen machen, lassen Sie uns einen Blick auf die häufigsten Gründe werfen, warum Mikrocontroller ausfallen.

1. Überlaufen des Speicherblocks

Der Speicherblock eines Microcontrollers ist ein bestimmter Bereich seines internen RAM, der für den temporären Einsatz bestimmt ist. Die Größe eines Speicherblocks ist begrenzt und unterscheidet sich je nach MCU. Wenn der Firmware-Programmierer eine Variable zuweist, die größer als die Blockgröße ist, kann es während der Laufzeit zu einem Überlaufen des Speicherblocks kommen, was dann zum Ausfall der Firmware führt.

2. Illegale Pointer

Bei der MCU-Firmware-Programmierung wird ein Pointer häufig verwendet, um die Adresse einer Variablen oder Programmfunktionen anzuzeigen. Die Deklaration und Verwendung von Pointern erfordert, dass der Firmware-Programmierer die durch die Programmiersprache (oft C) streng definierte Syntax einhält. Die versehentliche Einführung eines illegalen Pointers kann dazu führen, dass die MCU versucht, Variablen oder Funktionen in Adressen zu verarbeiten, die außerhalb ihres gültigen Bereichs liegen. Dies könnte zum Absturz der MCU führen.

3. Instabile Spannungsquelle

Eine MCU benötigt ein stabiles Stromnetz, um zuverlässig zu funktionieren - ein Faktor, der oft übersehen wird. Eine MCU kann ausfallen, wenn ihre Stromquelle durch externe Störungen ständig unterbrochen wird. Ein Einbruch der Betriebsspannung kann dazu führen, dass sich eine MCU unberechenbar verhält oder vollständig zum Stillstand kommt.

4. Elektrische Störungen

Wenn man elektrische Störungen nicht behebt, insbesondere solche, die durch Relais und Motoren verursacht werden, kann dies zum Absturz der MCU führen. Während eines meiner früheren Projekte, bei dem es um das Antreiben eines einfachen Gleichstrommotors ging, fiel meine MCU jedes Mal aus, wenn sie versuchte, den Motor rückwärts zu fahren. Dieses Problem ließ sich schließlich durch eine Erhöhung der elektrischen Isolation mit einem Operationsverstärker lösen.

5. Mangelhafte Fertigungsprozesse

Manchmal hat ein Ausfall eines Mikrocontrollers nichts mit dem für die Hardware oder Firmware zuständigen Ingenieur zu tun. Qualitativ minderwertige Lötstellen an den MCU-Pins können zu einem unvorhersehbaren MCU-Verhalten führen. Wenn nur eine Handvoll Ihrer Embedded-Systeme ausfallen, sollten Sie damit beginnen, die Prozessqualität Ihres Herstellers zu prüfen. 

Microchip production factory

Ihr Design ist so gut wie Ihr Leiterplattenbestücker.

Anstatt sich gegenseitig die Schuld zuzuweisen, müssen sowohl Hardware- als auch Firmware-Ingenieure ihren Teil zum Entwurf eines zuverlässigen Embedded-Systems beitragen. Die Anwendung guter Programmierethik und die vorherige Planung der Speicherzuweisung sind bewährte Verfahren, die man befolgen sollte. Für Programmierer kann es eine gute Wahl sein, die Dinge einfach zu halten, um fehlerhafte Codes zu minimieren.

Hardware-Designer müssen die Umgebung berücksichtigen, in der die Hardware eingesetzt wird, und sich auf alle Möglichkeiten vorbereiten. Dies bedeutet die Einhaltung der besten grundlegenden Designpraktiken und die Nutzung der Werkzeuge Ihrer PCB-Software zum Testen des Designs. Altium’s CircuitStudio, das auf der Technologie von Altium Designer basiert, bietet Ihnen die Werkzeuge für das Design professioneller PCBs.

Wenden Sie sich an einen Experten von Altium, um herauszufinden, warum Ihr Mikrocontroller ausfällt.

Über den Autor

Altium Designer

PCB Design Tools for Electronics Design and DFM. Information for EDA Leaders.

Dieser Website ist leer! Weitere Inhalte von Altium Designer
Vorheriger Artikel
Verwendung von Sacklöchern und vergrabenen Durchkontaktierungen in Altium Designer
Verwendung von Sacklöchern und vergrabenen Durchkontaktierungen in Altium Designer

Die Verwendung von Sacklöchern und vergrabenen Durchkontaktierungen beim Routing kann für Designs mit hoher...

Nächster Artikel
Lithium-Eisenphosphat-Akku im Vergleich zu Lithium-Ionen-Akku für Embedded-Systeme
Lithium-Eisenphosphat-Akku im Vergleich zu Lithium-Ionen-Akku für Embedded-Systeme

Dieser Blog kann Ihnen helfen, die Wahl zwischen Lithium-Eisenphosphat- und Lithium-Ionen-Akkus für Embedde...