55066.jpg

Auf einen Blick

Dieser Artikel vermittelt einige Ideen darüber, wo Entwickler für ein erfolgreiches Mikrocontroller-Design mit den ersten Entwicklungsaktivitäten ansetzen sollten. Prinzipiell ist ein Mikrocontroller äußerst zuverlässig. Will man diesen jedoch in einer realen Applikation einsetzen, müssen die entscheidenden Aspekte des Designs beachtet werden, um gewährleisten zu können, dass der Baustein in seinem Applikationsumfeld zuverlässig arbeitet. Ein zuverlässiges Design erfordert ein genaues Verständnis der Arbeitsweise eines Mikrocontrollers und seiner internen Abläufe sowie Kenntnisse in der Schaltungsentwicklung. Nur so lässt sich sicherstellen, dass das Design am Ende in der realen, analogen und störungsbehafteten Welt auch wie gewünscht funktioniert.

Nach wie vor ist es jedoch wichtig, zu verstehen, was „unter der Haube“ des Mikrocontrollers passiert. Werden grundlegende Aspekte des Designs nicht bereits zu Anfang des Projekts richtig festgelegt, so kann dies zu Problemen führen, die erst gegen Projektende offensichtlich werden.

Der vorliegende Artikel beantwortet gängige Fragen am Beispiel eines Renesas-RX111-Mikrocontrollers und erläutert einige Besonderheiten beim Einsatz dieser Klasse von Mikrocontrollern, die sonst möglicherweise übersehen werden. Weiterhin erläutert der Artikel entscheidende Bereiche eines Mikrocontroller-Designs, die bereits beim Start des Entwicklungsprozesses sorgfältig beachtet werden sollten. Dabei geht es um Bereiche, die sich direkt auf das Mikrocontroller-Design auswirken.

Der RX111 verfügt über einen 32-Bit-Hochleistungs-CPU-Kern, an dessen Seite On-Chip-Flash- und SRAM-Speicher sowie leistungsfähige Peripherieschaltungen, wie Timer, serielle Schnittstellen wie USB und 12-Bit-A/D-Wandler, arbeiten. Alle diese Funktionen sind dabei im kompakten Gehäuse integriert. Die Bauteile dieser Klasse wurden als echte Single-Chiplösungen ausgelegt. Sie enthalten Systemfunktionen, wie Oszillatoren, eine Power-on-Reset-Schaltung sowie einen Brownout-Schutz auf dem Chip, und minimieren damit die externen Bauteile. Bild 1 zeigt das Blockdiagramm eines RX111.

Bild 1: Das Blockdiagramm eines RX111-Mikrocontrollers.

Bild 1: Das Blockdiagramm eines RX111-Mikrocontrollers.Renesas

Vor der eigentlichen Entwicklungsarbeit sollte bei Beginn eines neuen Designprojekts eine Reihe von Aspekten berücksichtigt werden. Die meisten davon lassen sich aus der Design-Spezifikation ableiten, viele sind aber oft nicht in dieser Spezifikation enthalten, sind jedoch genauso oder sogar noch wichtiger für die Fertigstellung eines erfolgreichen Designs als die ursprüngliche Spezifikation.

Zwischen diesen Punkten kann es auch komplexe Wechselwirkungen geben. So sind zum Beispiel die Systemleistung und der Stromverbrauch eng miteinander verbunden und wirken sich direkt auf die Auslegung der Stromversorgung sowie auf das Leiterplatten-Layout aus. Weniger offensichtlich dabei ist, dass diese Aspekte sich auch zum Beispiel auf die Bauteilplatzierung und das EMV-Verhalten auswirken.

Moderne 32-Bit Mikrocontroller bieten dem Entwickler ein hohes Maß an Flexibilität zur Optimierung der Bauteilbetriebsparameter, um diese an die Anforderungen des Systemdesigns anzupassen. Dafür stehen zahlreiche Taktgeschwindigkeiten und Spannungsbereiche zur Verfügung.

Bei der Konfiguration des Bauteils müssen zahlreiche Entscheidungen gefällt werden, so zum Beispiel, welche Oszillatoren sollen intern oder extern genutzt werden, welche Taktgeschwindigkeit und welcher Betriebsspannungsbereich gewählt werden.

Bild 2:	Das flexible Taktsystem des RX111.

Bild 2: Das flexible Taktsystem des RX111.Renesas

Daneben sind an diesem Punkt auch eine Reihe anderer Bereiche der Mikrocontroller-Konfiguration zu berücksichtigen, wie zum Beispiel Analogfunktionen, A/D-und D/A-Wandler, USB-Schnittstelle und so weiter. Alle diese Aspekte könnten das Design maßgeblich beeinflussen.

Der erste Themenbereich betrifft das Leiterplatten-Design und die Bauteilplatzierung. Bauteile sollten nach Möglichkeit so platziert werden, dass die Länge der verbindenden Leiterbahnen minimal ist. Außerdem müssen empfindliche Bauteile vor Einflüssen der Außenwelt ebenso geschützt werden wie vor anderen Komponenten, die mit höheren Strömen arbeiten. Beim Leiterplatten-Design sollte man schon zu Anfang des Projekts sorgfältig arbeiten, um so Probleme zu vermeiden, die später im Entwicklungszyklus auftauchen könnten.

Moderne 32-Bit Single-Chip-Mikrocontroller vereinfachen das EMV-Design, da in ihnen viele externe Komponenten, wie etwa Oszillatoren oder Reset-Schaltungen, oft schon integriert sind. Dazu nutzen sie modernste Halbleiterprozesse sowie oftmals hohe CPU-Geschwindigkeiten, sodass selbst bei nicht sonderlich dynamischen Signalen steile Signalflanken auftreten. Werden von Anfang an einige einfache Regeln befolgt, verbessern sich damit die Chancen erheblich, um EMV-Probleme zu vermeiden.

Einige einfache EMV-Regeln

  • Nutzen Sie keine höheren CPU-Geschwindigkeiten als absolut notwendig.
  • Halten Sie Leiterbahnen so kurz wie möglich.
  • Verwenden Sie immer HF-Bypass-Kondensatoren an den Vcc-/Vss-Anschlüssen und ordnen Sie diese so nah wie möglich an jedem IC an.
  • Nutzen Sie immer parallele Vcc-/Vss-Leiterbahnen, um Masseschleifen zu minimieren.
  • Verwenden Sie parallel verlaufende Signal- und Rückführungsleitungen auf den Leiterplatten – insbesondere bei schnellen Signalen oder Leiterbahnen, die nennenswerte Ströme führen.
  • Schirmen sie wichtige Signale wie Speicher- und Taktleitungen gegenüber anderen Signalen ab, insbesondere gegenüber solchen, auf denen hohe Ströme geschaltet werden.
  • Ziehen Sie eine Leiterplatte mit vier Layers in Betracht. Eine solche Leiterplatte könnte dedizierte, nicht-unterbrochene Vcc-/Vss-Layer enthalten. Die Zusatzkosten dafür lohnen sich oft, da sich damit das Risiko von EMV-Problemen verringern lässt.
  • Sehen Sie bereits zu Beginn der Designarbeiten Filter und Pufferspeicher an den externen Verbindungen des Designs vor. Meist ist ein nachträgliches Hinzufügen von Filtern kostspieliger.

Schaltungsimpedanz senken

Die wohl effektivste Lösung zur Störungsverminderung sind richtig eingesetzte Ableitkondensatoren, mit denen sich die Schaltungsimpedanz senken lässt. Ein Ableitkondensator zwischen den Stromversorgungsleitungen kann die Störungen erheblich verringern. Erstaunlicherweise fehlen diese Bauteile oft. Der Wert des einzusetzenden Ableitkondensators ist abhängig von der Wellenform der Störungen. Die effektivsten Werte liegen in der Regel zwischen 0,01 und 0,1 µF. Eine Kombination aus unterschiedlichen Kapazitätswerten kann vor allem bei besonders störungsbehafteten Systemen sehr effektiv sein. Da die Leitungsverbindungen bei höheren Frequenzen eine hohe Impedanz haben, ist es immer empfehlenswert, den Ableitkondensator so nah wie möglich an der MCU zu platzieren.

Die System-Pins sind in der Regel die empfindlichsten Pins an einem Mikrocontroller, deshalb sollte man mit diesen Anschlüssen sehr sorgfältig umgehen. Zu den System-Pins zählen Vcc und Vss, die externen Oszillator-Pins (falls verwendet), das Reset-Pin, das NMI-Pin sowie sämtliche anderen Anschlüsse, die für Zusatzfunktionen wie etwa die Betriebsartenauswahl und das Debugging dienen.

Reset-Pin sorgfältig behandeln

Sobald der Reset-Pin auf Low getrieben wird, werden sämtliche Verarbeitungsaufgaben abgebrochen und der RX geht in den Reset-Zustand über. Aus diesem Grund sollte dieser Pin sorgfältig behandelt werden, um eine unbeabsichtigte Operation zu vermeiden.

Viele moderne Mikrocontroller wie der RX111 besitzen eine interne Power-on-Reset-Schaltung. Diese dient meist dazu, den Mikrocontroller während des Systemeinschaltvorgangs im Reset-Status zu halten.

Um einen ordnungsgemäßen Reset der MCU während ihres Betriebs zu ermöglichen, sollten die Reset-Schaltungen in der Lage sein, den Reset-Pin während einer spezifizierten Reset-Pulsbreite in den Low-Zustand zu bringen (dieser Wert beträgt für den RX111 minimal 30 µs).

Soll die interne Power-on-Reset-Funktion nicht genutzt werden, so muss für eine korrekte Rücksetzung des Bauteils sichergestellt werden, dass der Reset-Pin mindestens für die erforderliche Reset-Zeit auf Low gehalten wird.

Die integrierte POR-Schaltung (Power-on Reset) verringert die Anzahl der für einen sicheren Start der MCU beim Hochfahren erforderlichen externen Komponenten. Beim RX111 muss der Reset-Pin zur Aktivierung der POR-Schaltung über einen 4,7-kW-Widerstand mit Vcc verbunden werden. Der Power-on-Reset erfolgt, wenn sich der Reset-Pin im High-Zustand befindet, während die Versorgungsspannung an die MCU angelegt wird. Sobald Vcc die Power-on-Spannung überschritten hat und die Power-on-Reset-Zeit abgelaufen ist, verlässt der Chip den Reset-Zustand.

Da die POR-Schaltung voraussetzt, dass sich der Reset-Pin bei eingeschalteter Vcc im High-Zustand befindet, sollte kein Kondensator an den Reset-Pin angelegt werden. Dieser würde die Anregelzeit am Reset-Pin in Bezug auf Vcc verlangsamen, sodass die POR-Schaltung den Power-on-Zustand nicht mehr korrekt erkennen könnte.

Befindet sich der Reset-Pin im High-Zustand, während die Versorgungsspannung auf oder unter die Reset-Spannung fällt, dann wird ein POR erzeugt. Der Baustein wird aus dem Power-on-Zustand freigegeben, sobald Vcc wieder auf einen höheren Wert als die Reset-Spannung angestiegen ist.

Viele moderne Mikrocontroller wie der RX111 enthalten darüber hinaus Schaltungen, mit denen der Mikrocontroller Brownout-Zustände erkennen kann. Diese Brownout- oder Unterspannungs-Erkennungsschaltung nutzt On-Chip-Komparatoren, um die Versorgungsspannung mit internen Referenzspannungen zu vergleichen. Sobald die Versorgungsspannung unter eine dieser Referenzspannungen absinkt, kann ein Interrupt oder ein Reset generiert werden. Die Auslöseschwellen sind konfigurierbar, wobei man aus einer Reihe von im Baustein voreingestellten und von einer internen Spannungsreferenz erzeugten Werten wählen kann. Steigt Vcc anschließend auf einen Wert größer als die Erkennungsspannung, so erfolgt nach Ablauf einer Stabilisierungszeit die Freigabe aus dem Spannungsüberwachungs-Reset.

Mit dieser Unterspannungserkennungsschaltung kann der Anwender sicherstellen, dass der Mikrocontroller während eines Ausfalls der Stromversorgung in einem sicheren Betriebszustand bleibt. Um gute Sicherheitstoleranzen für das System zu gewährleisten, sollte die Wahl der Spannungswerte für jeden Spannungsvergleich gut überlegt werden. Dies gilt insbesondere, wenn das System einen Interrupt erzeugen soll, mit dem der Mikrocontroller das System schonend und ohne weitere Ausfälle herunterfahren muss.

Genaues Timing

Viele moderne Mikrocontroller besitzen interne Oszillatoren, sodass keine externen Quarze oder Resonatoren mehr benötigt werden. Allerdings sind diese Schaltungen mit einigen Einschränkungen verbunden, von denen nicht zuletzt die begrenzte Genauigkeit im Vergleich zu modernen Quarzoszillatoren relevant ist.

Während also bei den meisten Anwendungen die On-Chip-Oszillatoren von heute mit einer Genauigkeit von besser als ein Prozent mehr als ausreichend sind, benötigen manche Anwendungen ein wesentlich genaueres Timing und erfordern damit immer noch externe Quarze.

Wird ein externer Quarz in der Anwendung verwendet, so enthalten viele Mikrocontroller wie der RX111 Taktüberprüfungsschaltungen, die nicht nur erkennen können, ob der externe Takt auf einer falschen Frequenz läuft, sondern auch, ob der Takt ausgefallen ist. Damit kann die Anwendung entsprechend reagieren, wobei sie dann meist auf eine interne „ausfallsichere“ Taktquelle umschaltet.

Der Entwickler sollte dabei sorgfältig den Layout-Empfehlungen im Mikrocontroller-Hardware-Manual folgen und das Design der Oszillatorschaltung in Absprache mit dem Oszillatoranbieter optimieren.

Zu den Empfehlungen zählen, die Quarze so nah wie möglich am Mikrocontroller anzuordnen, die Leiterbahnen zu den Quarzen so kurz wie möglich zu halten, als Schutz und hocheffektive Abschirmung ein breites Masse-Layoutpattern um den Oszillator herum zu nutzen, und keine dünnen Leiterbahnen zur Masse vorzusehen. Weiterhin ist zu empfehlen, die Kondensatoren und den Oszillator über dem Massepfad anzuordnen, und die Verbindungen zur Masse unterhalb der MCU niemals zwischen den Pins hindurchzuführen. Vor allem sollte der Entwickler dem Oszillator-Schaltungslayout im Hardware-Manual folgen. Bild 3 zeigt ein typisches Beispiel.

Bild 3: Vor allem sollte der Entwickler dem Oszillator-Schaltungslayout im Hardware-Manual folgen.

Bild 3: Vor allem sollte der Entwickler dem Oszillator-Schaltungslayout im Hardware-Manual folgen.Renesas

Viele Mikrocontroller nutzen außerdem einen 32-kHz-Oszillator, meist zur Unterstützung der Real- Time-Clock-Funktion. Viele Bausteine wie der RX111 können allerdings auch die CPU und andere Peripherieschaltungen mit diesem Oszillator betreiben. 32-kHz-Oszillatoren sind bekannt dafür, dass sie in einem Mikrocontroller-Design nur schwer zu kontrollieren sind. Ursprünglich verwendete man diese Oszillatoren in einfachen Clockanwendungen mit begrenztem Betriebstemperaturbereich und oftmals am Handgelenk des Benutzers. Der menschliche Körper bietet einen hervorragend stabilen Temperaturbereich und Quarze würden in einer solchen Anwendung in einer sehr stabilen Umgebung arbeiten.

Eine typische Mikrocontroller-Anwendung allerdings arbeitet nur selten in einer günstigen und stabilen Umgebung. Entsprechend muss der 32-kHz-Oszillator dann auch genau und zuverlässig in einem weiten Temperatur- und Spannungsbereich arbeiten. Bei der Entwicklung und im Test einer solchen Oszillatorschaltung muss dementsprechend sehr viel sorgfältiger vorgegangen werden.

In allen diesen Fällen sollten Entwickler den Kontakt mit dem Oszillatorhersteller ihrer Wahl aufnehmen. Viele dieser Hersteller bieten Testdienstleistungen, helfen den Entwicklern dabei, die richtigen Oszillatorschaltungsparameter für das Design auszuwählen, und geben genaue Empfehlungen für die Auswahl des richtigen Quarzes, der Schaltungsparameter sowie für das Leiterplatten-Layout.

Um Überraschungen zu vermeiden, sollte auch bei der Auslegung von I/O-Pins umsichtig vorgegangen werden. Nicht genutzte I/O-Pins müssen ordentlich terminiert werden, um übermäßigen Stromverbrauch und EMV-Probleme zu vermeiden.

Viele Mikrocontroller nutzen heute I/O-Funktionen gemeinsam mit Systemfunktionen. Beispiele dafür sind externe Oszillator-Pins. Werden diese Pins nicht für die Systemfunktionen genutzt, so sollte man die Empfehlungen des Herstellers zum Umgang mit diesen Pins genauestens befolgen.

Bei vielen Bausteinen muss man auch auf eine Initialisierung von I/O-Pins achten, die physikalisch nicht auf dem Bauteil vorhanden sind. Viele Mikrocontroller sind in unterschiedlichen Gehäusevarianten erhältlich, wobei bei manchen nicht alle I/O-Pins physikalisch mit einem Anschluss-Pin verbunden sind, sodass diese Pins oft besondere Initialisierungsroutinen erfordern.

Die meisten Mikrocontroller-Hersteller machen genaue Empfehlungen über den Umgang mit allen nicht-genutzten I/O-Pins. Diese sollten sehr genau befolgt werden. Im RX111-Hardware-Manual gibt es detaillierte Empfehlungen für sämtliche möglichen I/O-Konfigurationen, wenn Pins nicht verwendet werden.

Debugging-Schnittstelle

Der RX111 unterstützt eine Single-Wire-FINE-Debugging-Schnittstelle. Diese Schnittstelle erfordert nur ein Minimum an externen Komponenten, allerdings muss sie von Anfang an im Design berücksichtigt werden. Die FINE-Schnittstelle unterstützt ein vollwertiges On-Chip-Debugging mit Branch Trace. Die Emulatoren von Renesas unterstützen eine FINE-Verbindung über ihre 14-Pin-E1-Standard-Schnittstelle. Zum Einsatz des E1 Debuggers müssen die MCU-Pins MD/FINED und RES# mit dem E1-Steckverbinder wie im Bild 4 gezeigten Schaltplan verbunden werden.

Bild 4: Zum Einsatz des E1 Debuggers müssen die MCU-Pins MD/FINED und RES# mit dem E1-Steckverbinder wie im Schaltplan dargestellt, verbunden werden.

Bild 4: Zum Einsatz des E1 Debuggers müssen die MCU-Pins MD/FINED und RES# mit dem E1-Steckverbinder wie im Schaltplan dargestellt, verbunden werden.Renesas

Programmierungsanforderungen für die Produktion

Die Programmierung in der Produktion ist ebenfalls eine wichtige Anforderung für 32-Bit-Flash-Mikrocontroller, die bereits am Anfang eines Entwicklungsprojekts berücksichtigt werden sollte. Hier geht es um die Art der Bausteinprogrammierung und die dafür erforderlichen Schaltungen. Der RX111 unterstützt drei Schnittstellen für die Programmierung in der Produktion: ein Single-Wire-Debug-Interface, einen seriellen Boot-Modus sowie einen USB-Boot-Modus. Die Flash-Programmierung benötigt also eine Verbindung entweder zum Debug-Interface, zu den UART-Pins oder zur USB-Schnittstelle.

Graeme Clark

ist Senior Principal Engineer, MCU Solution Marketing, des Geschäftsbereiches Industrial & Communications, bei Renesas Electronics Europe.

(ah)

Sie möchten gerne weiterlesen?

Unternehmen

Renesas Electronics Europe GmbH

Arcadiastraße 10
40472 Düsseldorf
Germany