Schwerpunkte

Power-Sequencing für Embedded Processing

Adieu 257 x Copy-Paste

22. Oktober 2020, 11:32 Uhr   |  Autor: Navdeep Singh Dhanjal; Redaktion: Ute Häußler

Adieu 257 x Copy-Paste
© Analog Devices

Embedded-Processing-Komponenten brauchen unterschiedliche digitale Lasten und erfordern eine Vielzahl von Spannungsschienen mit verschiedenen Leistungspegeln und individuellen Spannungstoleranzen.

Smarte, kleine elektronische Systeme stellen Power-Entwickler vor Aufgaben. Embedded-Processing braucht unterschiedliche digitale Lasten, viele Spannungsschienen mit diversen Leistungspegeln und individuellen Toleranzen. Skalierbares Power-Sequencing beschleunigt die Entwicklung und das Debugging.

ASICs, FPGAs, SoCs und Mikroprozessoren stehen für eine exponentielle Steigerung der Komplexität in elektronischen Systemen. Die Implementierung von zusätzlichen Funktionen auf stetig schrumpfendem Bauraum kann für Power-Entwickler schnell zur Sisyphus-Aufgabe werden. Denn: Neben den sehr unterschiedlichen Power-Anforderungen müssen die Embedded-Processing-Bauteile zusätzlich in einer exakt festgelegten Reihenfolge ein- und ausgeschaltet werden, nur so initialisieren sie richtig. Die Komplexität dieses Power-Sequencings ist aufgrund der immer weiter steigenden Zahl an Versorgungsspannungen auf einer Platine exponentiell gestiegen – was die Entwicklung, Implementierung und Fehlersuche deutlich erschwert.

Kapazität kombinieren und skalieren

Power-Sequenzer arbeiten normalerweise mit maximal 16 Versorgungsschienen, ihre Kapazität ist also begrenzt. Doch die Zahl der Spannungsschienen auf einer Platine kann weit größer sein. Entwickler von Stromversorgungen können es sowohl mit zehn Spannungsschienen auf einem Board zu tun bekommen als auch mit 200 Spannungsschienen. Sobald die Zahl der Versorgungsschienen die Anzahl der von einem einzelnen Sequenzer unterstützten Spannungen überschreitet, müssen sich die Power-Entwickler mit den Besonderheiten der einzelnen Sequenzer vertraut machen und diese in komplexen Systemen kombinieren.

In Systemen mit vielen Spannungsschienen werden häufig mehrere Sequenzer kaskadiert, die Komplexität steigt bei einer linearen Zunahme der Spannungsschienen exponentiell. Zur Verringerung der Komplexität haben Entwickler schon kreative Methoden entwickelt, beispielsweise die Verwendung von Ping-Pong-Mechanismen oder die gemeinsame Nutzung des Fehler- und Power-Good-Status über dedizierte digitale Signale. Diese Lösungen werden aber bei Systemen, die mehr als eine einfache Ein-/Ausschaltsequenzierung verlangen, schnell unvertretbar.

Abhilfe können Power-Sequencing-Systeme schaffen, die nach dem Master-Slave-Prinzip parallel geschaltet werden und damit eine echte Skalierbarkeit schaffen. Als Referenz für die Funktionalität und Implementierung wird im Folgenden der ADM1266 aus der Super-Sequencer-Familie von Analog Devices verwendet.

Die Verbindung mehrerer Sequenzer erfordert einen dedizierten Zweidraht-Interdevice-Bus (IDB) zur Kommunikation. Bis zu 17 Stromversorgungen können pro Sequenzer überwacht und sequenziert werden. Mit bis zu 16 parallel geschalteten Bauteilen können so maximal 257 Spannungsschienen angeschlossen werden.

Voraussetzung: alle Geräte befinden sich am selben IDB. Ein Baustein fungiert als Master, alle weiteren als Slaves. Die parallele Architektur sorgt dafür, dass jeder einzelne Sequenzer je nach Systembedingungen in den gleichen nächsten Zustand übergeht. Somit ist sichergestellt, dass jeder Sequenzer auf dem Bus synchron arbeitet. Ein Entwickler hat mit der Erstellung einer Sequenzierung also den gleichen Aufwand wie bei 16 Sequenzern, da die transparente Bus-Kommunikation alles synchronisiert. Ein weiterer Vorteil dieses Aufbaus ist, dass sich Entwickler lediglich mit dem Einsatz von nur einem Bauteil sowohl für einfache als auch für komplexe Schaltungen vertraut machen müssen. Die Kaskadierung mehrerer Bauteile ist damit so einfach wie das Anschließen an denselben IDB (Bild 1).

Power Sequenzing Debugging
© Analog Devices

Bild 1. Es ist einfach, eine Sequenz mit mehreren Power-Sequenzern zu skalieren, indem sie über einen IDB zusammengefasst wird.

Ereignisgesteuerte Sequenzierung

Herkömmliche zeitbasierte Sequenzer haben feste Signale mit einem bestimmten Ergebnis und begrenztem Funktionsumfang. Heutige Sequenzer müssen nicht nur Spannungsschienen überwachen, sondern auch auf variable digitale Signale reagieren. Verdeutlichen lässt sich dies am Beispiel eines Motherboards mit optionalem Mezzanine-Board. Der Sequenzer überwacht ein Erkennungssignal des Mezzanine-Boards: Wenn das Signal vorhanden ist, fährt der Sequenzer die Spannungsschienen des Mezzanine-Boards hoch. Ist das Signal nicht vorhanden, fährt der Sequenzer mit dem Sequencing auf der Hauptplatine fort und beendet den Vorgang mit dem Power-Good-Zustand. Ein Mezzanine-Board-Erkennungssignal können die meisten herkömmlichen Sequenzer nicht verarbeiten. Ferner ändern sich solche Anforderungen je nach Anwendung und können mit GPIO-Pins (General-Purpose Input Output) adressiert werden.

Ein weiteres Beispiel betrifft die Versorgung eines ASICs und eines FPGAs. Laut Systemanforderungen soll das ASIC vollständig eingeschaltet sein und laufen, bevor das FPGA mit Strom versorgt wird. In diesem Fall fährt der Sequenzer die ASIC-Versorgungen hoch und wartet auf ein digitales Power-Good-Signal vom ASIC. Sobald das Power-Good-Signal des ASICs bestätigt ist, wartet der Sequenzer 100 ms, bevor er die Sequenzierung des FPGA fortsetzt. Zur Realisierung dieser komplexen Sequenz ist ein ereignisbasierter Sequenzer erforderlich. In einem System mit mehreren Sequenzern müssen die Ereignisinformationen zwischen allen Bauteilen auf dem Board synchronisiert werden, damit diese übereinstimmend agieren.

Komparatoren zum Schutz vor Über-/Unterspannung, digitale Signale wie GPIOs und PDIOs, Taktgeber, Variablen und andere Signale des IDB können von modernen Power-Sequencing-Bausteinen verarbeitet werden und abhängige Folgeereignisse auslösen. Anwender können so auf einfache Art und Weise komplexe State Machines und Steuerungskonzepte realisieren.

Die Systementwicklung beschleunigen

Üblicherweise unterscheidet sich die Entwicklung eines Power-Sequencing-Systems mit nur einem Sequenzer deutlich von der eines Systems mit mehreren Sequenzern. Eine Schaltung mit nur einem Sequenzer für 16 Spannungen ist meist unkompliziert: Entwickler nutzen eine grafische Benutzeroberfläche (GUI), um jede Spannungsschiene und die zugehörige Sequenzierung zu konfigurieren. Die Vor­gehensweise wird im Allgemeinen über eine manuelle Auswahl-/Einstellung für jede der 16 Spannungsschienen wiederholt.

Schon bei nur fünf angenommenen Sequenzern und 80 Spannungsschienen wird die GUI-Konfiguration zeitaufwendig und fehleranfällig. Zusätzlich müssen Entwickler auch festlegen, wie sich mehrere Bauteile am besten kaskadieren lassen, und die Ressourcen der fünf Sequenzer den 80 Spannungsschienen zuweisen. Oft sind softwaregestützte Entwicklungswerkzeuge dabei nicht wirklich hilfreich. Anwender müssen die spezifischen Funktionen des Sequenzer-ICs verstehen und dem Bauteil über die GUI explizit mitteilen, was es zu tun hat. Eine Menge Aufwand entsteht, die Fehleranfälligkeit steigt.

Intuitive Power-Sequenzer verfolgen einen anderen Ansatz. Konfiguration und Debugging erfolgen in einer PC-basierten Anwendung, im Referenzbeispiel das ADI Power Studio, welche weit mehr als die Konfiguration der verschiedenen Einstellungen leistet. Das PC-Programm ist damit ein vollständiges Entwicklungs- und Debugging-Werkzeug, das Developer bei der Realisierung stabiler Ein- und Ausschalt­sequenzen unterstützt.

Power Sequenzing Debugging
© Analog Devices

Bild 2. Ein-Schritt-Konfiguration eines gesamten Systems.

Mit der PC-basierten Konfiguration können Ingenieure Stromversorgungssysteme auf einer wesentlich höheren Ebene entwickeln als bei herkömmlichen GUIs. Wizards richten beispielsweise 80 Spannungsschienen in wenigen Minuten ein und konfigurieren diese – eine Aufgabe, die bei manueller Vorgehensweise einige Stunden in Anspruch nehmen würde. Bild 2 zeigt ein Beispiel aus der Referenz­anwendung. Der Systemschienen-Wizard führt den Entwickler durch den Konfigurationsprozess einer Sequenz unter Verwendung derselben Schnittstelle, unabhängig von der Zahl der Spannungsschienen. Anwender können individuelle Schienennamen festlegen, die es ermöglichen, einzelne Spannungsschienen sofort zu erkennen.

Für die Erstellung einer State Machine schauen Entwickler zuerst auf die Anforderungen an das System. In einer einzigen Sequenzer-Schaltung mit bis zu 17 Spannungsschienen stimmen die State Machines der GUI und des Sequenzers überein. Kommen weitere Sequenzer hinzu, weicht die State Machine der GUI von den einzelnen Sequenzer-State-Machines ab. Zusätzliche Schritte müssen in der virtuellen State Machine implementiert werden, damit die Bauteile unterschiedliche Ereignisse untereinander kommunizieren.

Falls ein Entwickler beispielsweise zwei Spannungsschienen auf Sequenzer 1 und zwei Spannungsschienen auf Sequenzer 2 überwacht, kann die Schaltung verlangen, dass bei einem Fehler auf einer der vier Spannungsschienen alles abgeschaltet wird. Da es sich um zwei Bauteile handelt, müssen diese Fehlersi­gnale austauschen.

Power Sequenzing Debugging
© Analog Devices

Bild 3. Virtuelle State Machine gegenüber einer State Machine auf Bauteilebene.

Falls ein Entwickler beispielsweise zwei Spannungsschienen auf Sequenzer 1 und zwei Spannungsschienen auf Sequenzer 2 überwacht, kann die Schaltung verlangen, dass bei einem Fehler auf einer der vier Spannungsschienen alles abgeschaltet wird. Da es sich um zwei Bauteile handelt, müssen diese Fehlersi­gnale austauschen. Bild 3 zeigt die State Machine des Systems und die State Machines für die einzelnen Bauteile.
Generell steigt die Zahl der Spannungsschienen in modernen Embedded-Anwendungen und die Anforderungen an die Sequenzierung werden immer komplexer werden. Bei voneinander abweichenden State Machines müssen Entwickler bisher mit einer zeitaufwendigen und fehlerbehafteten Vorgehensweise die Sequenzer dazu bringen zusammenzuarbeiten. PC-basierte Anwendungen für Sequenzer automatisieren einen Großteil der Erstellung der State Machines. Der Anwender entwirft mithilfe der GUI die virtuelle State Machine, während der Compiler die Kommunikation zwischen den verschiedenen Sequenzern übernimmt. Dies ermöglicht Entwicklern, komplexe State Machines in einem flexiblen, intuitiven Prozess zu erstellen.

Leistungsstarkes Debugging-Werkzeug

Bei der Entwicklung eines jeden komplexen Systems treten naturgemäß Fehler auf. Im Idealfall werden die meisten Fehler während der Entwicklung und im Testing beseitigt. Manche Fehler schaffen es jedoch in die Produktion.

Da Entwickler oft wesentlich mehr Zeit mit der Fehlersuche als mit der reinen Entwicklung verbringen, ist es in jedem Fall von entscheidender Bedeutung, dass Developer Fehler schnell erkennen und beheben können. Typische Fehler sind zum Beispiel ausgefallene Spannungsschienen und Signale mit falschen Logikpegeln.

Am oben erwähnten Beispiel einer Platine mit 80 Spannungsschienen kommt es nicht selten vor, dass eine der Spannungsschienen in der Entwicklungsphase ausfällt. Der Fehler kann ein Entwicklungsfehler auf Bauteilebene oder ein Fehler auf der Konfigurationsebene sein. In beiden Fällen beginnt das Aufspüren des Problems mit der Suche nach der kritischen Spannungsschiene. Problematisch ist, dass der Sequenzer in einer typischen Sequenz alle Spannungsschienen abschaltet, wenn eine Spannungsschiene ausfällt. Das Abschaltverhalten ist bei einem Produkt auf Produk­tionsebene robust, behindert aber die Fehlersuche in der Entwicklung. Der Ausfall der Spannungsschiene wird durch den Ausfall des Gesamtsystems verdeckt. So können Entwickler sprichwörtlich den Wald vor lauter Bäumen nicht sehen. Es ist unwahrscheinlich, dass Entwickler alle 80 Spannungsschienen gleichzeitig überwachen können. Damit ist es fast unmöglich, die fehlerhafte Versorgungsschiene zu finden.

In einem idealen Debugging-System werden, sobald eine defekte Spannungsschiene entdeckt wird, die anderen Spannungsschienen weiterhin mit Strom versorgt. Entwickler können so das Verhalten der problematischen Versorgungsschiene beobachten, während das restliche System aktiv bleibt. Obwohl diese Vorgehensweise durch eine Modifikation der Sequenzkonfiguration erreicht werden kann, ist die Sequenzunterbrechung zum Debuggen ein eher umständlicher Ansatz.

PC-basierte Power-Sequencing-Programme verfügen über fortschrittliche Debugging-Werkzeuge, wie sie oft in Softwareentwicklungsumgebungen zu finden sind. Diese vereinfachen das Debugging enorm. Ein sehr hilfreiches Debugging-Werkzeug kommt in Form von Breakpoints, bei denen die Sequenz in einem bestimmten Status angehalten wird. In einem System mit mehreren Sequenzern des Referenzmodells durchlaufen alle Sequenzer die State Machine und stoppen bei dem Status, für welchen der Breakpoint vom Entwickler festgelegt wurde. Mit Unterbrechung der Sequenz können Fehler auf der Spannungsschiene behoben werden – oder es wird überprüft, warum das Signal nicht den korrekten Logikpegel besitzt.

Power Sequenzing Debugging
© Analog Devices

Bild 4. Breakpoints ermöglichen es Entwicklern, eine erstellte Sequenz in jedem beliebigen Zustand anzuhalten und so die Fehlersuche zu verbessern.

Entwickler können eine Sequenz auch schrittweise durchlaufen, indem sie bei allen Zuständen Breakpoints setzen. Diese Einzelschritt-Fehlersuche (Single Stepping) kommt etwa zur Überprüfung von Pre-Bias Start-ups für Spannungsschienen zum Einsatz, bevor sie aktiviert werden. Entwickler können in einzelnen Schritten die Stromversorgungssequenz durchlaufen, um zu erkennen, ob an den Ausgängen von vermutlich deaktivierten Spannungsschienen Spannungen anliegen, die im Monitorfenster der Software angezeigt werden. Bild 4 zeigt ein Beispiel für benutzerdefinierte Breakpoints.

Ein weiteres Debugging Tool ist die Blackbox-Aufzeichnungsfunktion. Der Sequenzer erstellt damit bei einem kritischen Ereignis eine Momentaufnahme des Status aller Spannungsüberwachungs- und Digitalanschlüsse. Die Blackbox zeichnet also alle relevanten Informationen auf, sobald sie getriggert wird. Zum Beispiel den Zustand bei Eintritt des Ereignisses, den vorherigen Good State, den Zeitpunkt des Ereignisses oder wie oft ein Bauteil eingeschaltet war und einen Fehler festgestellt hat. Dies hilft Entwicklern, Fehler zu lokalisieren und Ursachen schnell zu diagnostizieren.

Power Sequenzing Debugging
© Analog Devices

Bild 5. Die Blackbox-Überwachung erstellt eine Momentaufnahme von Bedingungen bei vom Anwender definierten Ereignissen. Blackbox-Trigger können in Produktionssysteme einbezogen werden, um bei der Fehlersuche und Wartung vor Ort sowie bei der Fehlerbeseitigung zu helfen.

Die Blackbox-Funktion spielt eine wichtige Rolle bei der Erfassung von Fehlerzuständen in der Produktion und hilft bei der Wartung und Upgrades. Sie kann jedoch auch bereits als Debugging-Werkzeug in der Entwicklung eingesetzt werden. Wenn beispielsweise ein Design in einer Wärmekammer geprüft oder mechanischen Prüfungen unterzogen werden soll, ist dies mit Tisch-Laborgeräten oft nicht durchführbar, da sich die Geräte nicht bei allen Versuchen einfach anschließen lassen. Blackboxen hingegen können Fehler für eine spätere Überprüfung erfassen. Bild 5 zeigt einen Screenshot einer Blackbox-Aufzeichnung.

Um die zunehmende Komplexität des Embedded Processing und die damit verbundenen wachsenden Anforderungen an die Leistungssequenzierung zu adressieren, müssen moderne Power-Sequenzer und deren Power-Sequencing-Tools skalierbar, intuitiv und mit vielen Funktionen ausgestattet sein. Hochwertige und einfach kaskadierbare Power-Bausteine und automatisiert arbeitende Entwicklungs- und Debugging-Werkzeuge verkürzen die zur Entwicklung und Fehlerbeseitigung benötigte Zeit. Sie schenken Entwicklern damit Raum für Innovation und zur Realisierung zuverlässiger Power-Lösungen in kleinen und smarten elektronischen Systemen. UH

Autor_Navdeep Singh Dhanjal
© Analog Devices

Navdeep Singh Dhanjal arbeitet seit 14 Jahren als Power-Architekt bei Analog Devices. Er entwickelte eine Digital-Power-Benutzeroberfläche und managte die Entwicklung von Firmware, Software und Hardware des Super Sequencers. Er hält einen Master in Elektrotechnik der San José State University, Kalifornien, sowie drei Patente.

Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenVia Mail teilen

Verwandte Artikel

Analog Devices GmbH