Die PCB-Schaltungsdesign für eingebettete Mikrocontroller erforderlich ist ein riesiges Projekt. Für fortschrittliche Mikrocontroller, Datenblätter und technische Dokumente allein können Hunderte von Seiten lang sein.
Bevor Sie mit dem Entwurf der Schaltung beginnen, ist es am besten, ein Flussdiagramm des Betriebs aller Hauptkomponenten in dem Diema zu zeichnen, einschließlich aller Peripheriegeräte, die eine Schnittstelle mit dem Mikrocontroller haben.
ARM Cortex-M Mikrocontroller
Dieser Artikel konzentriert sich auf die Leiterplatte Leiterplatte Bemessungsgrundlagen, die für die Einfuhr der ARM Cortex-M Mikrocontroller. ARM Cortex-M Mikrocontrollers sind in verschiedenen Ausführungen von verschiedenen Chipherstellern erhältlich.
Im Vergleich zu typischen 8-Bit-Mikrocontrollern eignet sich ARM Cortex-M mit 32-Bit-Architektur besonders für intensive und rechenintensive Arbeiten. Wenn es Anwendungen gibt, die mehr Speicherkapazität benötigen oder die Migration der Systemplattform für zukünftige Erweiterungsbedarfe vereinfachen können, haben 32-Bit-Mikrocontroller ebenfalls Vorteile.
Der ARM Cortex-M Mikrocontroller, den wir diskutieren, ist die STM32 Familie von ST Microelectronics; Genauer gesagt werden wir uns auf die STM32F4 Serie konzentrieren.
Die STM32-Familie umfasst jedoch tatsächlich viele Modelle, wie die ultra-low power STM32L-Serie und die Serie mit immer höherer Leistung als die STM32F4-Version. Die effizienteste Version ist STM32F7, die eine Milliarde Anweisungen pro Sekunde ausführen kann. Zu den am wenigsten effizienten Modellen gehört der STM32L0, der nur 26 Millionen Anweisungen pro Sekunde ausführt.
Leistungsdesign
Die Stromversorgung der Schaltung ist einer der wichtigsten Aspekte des Hardwaredesigns; Warten Sie nicht bis zum späteren Stadium des Designs, um über die Konfiguration der Stromversorgung und Erdung zu entscheiden.
Der vom Mikrocontroller verwendete Strom wird durch mehrere Faktoren bestimmt, wie die Betriebsspannung, die Taktfrequenz und die Belastung der Ein-/AusgangsStifts.
Es sollten 1uF- und 100nF-Keramikkondensatoren (wie C7 und C8 in Abbildung 1) so nah wie möglich an jedem Leistungs-VDD-Pin auf der MCU angeordnet sein, um eine Leistungsentkopplung zu ermöglichen. Zusätzlich sollte ein 4,7uF Keramikkondensator (C1 in Abbildung 1) in der Nähe der IC-Position auf der Hauptschaltkreisverdrahtung installiert werden, die VDD versorgt.
Mikrocontroller mit Analog-Digital-Wandlern (ADC) verfügen in der Regel auch über unabhängige Stromversorgung (VDDA) und MasseStifte (VSSA) ausschließlich für analoge Signale. Diese Pins benötigen eine besondere Geräuschvermeidung.
Wenn Ihre Netzspannung höher ist als die obere Grenze der Eingangsspannung des Mikrocontrollers, benötigen Sie in der Regel einen Abstiegsregler. So hat der TPS795xx von Texas Instruments besonders geräuscharme Eigenschaften und kann bis zu 500mA Strom liefern.
Wenn Ihre Netzspannung deutlich höher ist als die vom Mikrocontroller benötigte Spannung, ist ein Step-Down-Schaltregler eine bessere Wahl. Wenn die Eingangsspannung deutlich höher als die Ausgangsspannung ist, verschwendet der Linearregler zu viel Energie.
Meistens ist es jedoch am besten, die Ausgangsspannung des Schaltreglers mit einem Linearregler zu unterregeln, da das vom Linearregler bereitgestellte Spannungsrauschen viel geringer ist.
Uhr
STM32F4 kann mit interner oder externer Systemuhr ausgeführt werden. Die Systemuhr, die beim Start verwendet wird, ist die interne Uhr ((16 MHz)). Nach der Initialisierung des Systems kann die externe Taktquelle über die Software ausgewählt werden.
Der Clock Pin am STM32F4 kann einen externen 4-bis 26-MHz Quarzkristall antreiben (siehe X1 in Abbildung 1) oder eine externe Taktquelle bis zu 50 MHz verwenden.
Die Konfiguration des Kristalls muss streng den Anweisungen auf dem Datenblatt folgen. Im Allgemeinen sollte die Verkabelung kurz sein, und die Lastkapazität auf dem Kristall sollte dem vom Kristallhersteller empfohlenen Wert entsprechen.
GPIO
Die universellen Ein- und Ausgangspins (GPIO) am Mikrocontroller sind programmierbar und können über Software als Ein- oder Ausgang eingestellt werden.
Zum Beispiel ist S1 in Abbildung 1 eine Taste, die an einen GPIO-Pin angeschlossen ist, der als Eingang programmiert ist. STM32 verfügt über einen eingebauten Klimmwiderstand, so dass dieser Knopf keinen externen Klimmwiderstand installieren muss. Der GPIO-Ausgang in diesem Beispiel wird zum Ansteuern der LED verwendet.
Die meisten GPIO-Pins haben auch andere Funktionen, und verschiedene Peripheriegeräte auf dem Chip kommunizieren über diese Multifunktionspins mit der Außenwelt.
Nicht alle internen Funktionen können über jeden GPIO-Pin verwendet werden, und es gibt strenge Pin-Zuordnungen, die zu beachten sind. Achten Sie daher darauf, die Datentabelle zu beachten, wenn Sie auswählen, welche Pins verwendet werden sollen.
GPIO-Pins können verwendet werden, um verschiedene Lasten anzutreiben, und die meisten Pins können einen Strom von bis zu 25mA liefern oder widerstehen. Generell ist es jedoch ein besseres Design, eine externe Laufwerksschaltung zu verwenden, um die Last des Mikrocontroller GPIO-Laufwerks zu reduzieren. Siehe Abbildung 1 für das Beispiel von MN1 treibenden LEDs.
Jeder Pin von STM32 hat eine Nennstrom-Obergrenze sowie eine Obergrenze des Gesamtstroms aller GPIO-Pins.
Peripheriegeräte anschließen
STM32 bietet serielle Signalverbindung über UART-, I2C-, SPI- und USB-Schnittstellen.
Beispielsweise ist in Abbildung 1 ein Temperatursensor (U2-LM75BDP) über den I2C-Bus mit dem Mikrocontroller verbunden. Zwei Klimmwiderstände (R2, R3) werden am I2C-Bus benötigt, um den Open-Drain-Treiber anzuschließen.
Für die meisten Anwendungen wie Low-Speed-Sensoren bevorzuge ich I2C als serielles Protokoll, da es nur zwei Leitungen für die Kommunikation verwendet. Im Gegensatz zu SPI, bei dem ein zusätzlicher Chip zur Auswahl eines Arbeitsplatzes für die Verarbeitung jeder Peripheriekomponente benötigt wird, verwendet I2C eine einzige Adresse.
Der SPI-Bus ist mit dem neun-Achs-Bewegungssensor MPU-9250 von Invensense verbunden. MPU-9250 enthält einen dreiachsigen Beschleunigungssensor, ein dreiachsiges Gyroskop und ein dreiachsiges Magnetometer.
Programmierverbinder
STM32F4 bietet zwei In-System Programmbearbeitungsschnittstellen (ISP): Serial Line Debugging (SWD) und JTAG. Die günstigere Version von STM32 bietet nur die SWD-Schnittstelle. SWD und JTAG sind die beiden am häufigsten verwendeten Programmierschnittstellen für Mikrocontroller.
Abschließend
In diesem Artikel, wir diskutierten Leiterplattenschaltung design des Mikrocontrollers, und führte den STM32F4 ein, der Eingabetasten lesen kann, Antrieb LEDs, und kommunizieren mit I2C Temperatursensoren und SPI Bewegungssensoren.