Willkommen zum zweiten Teil des Pi.MX8 Open-Source-Compute-Modul-Projekts! In dieser Artikelserie gehen wir auf das Design und die Tests eines System-on-Module ein, das auf einem i.MX8M Plus-Prozessor von NXP basiert.
Im vorherigen Update haben wir die Motivation hinter diesem Projekt sowie die Funktionen, die unser Modul haben sollte, und die Komponenten, die wir zur Implementierung verwenden möchten, besprochen.
Dieses Mal möchten wir uns auf die Struktur des Schaltplans konzentrieren und wie wir mit dem PCB-Layout beginnen können.
Beginnen wir damit, wie der Schaltplan organisiert ist. Typischerweise werden zwei Ansätze für die Erfassung des Schaltplans verwendet; flache und hierarchische Designs.
Ein flacher Schaltplan lässt sich am besten als ein großer einzelner Schaltplan vorstellen, der einfach in mehrere Blätter unterteilt ist. Verbindungen zwischen den Blättern können beispielsweise mit Off-Sheet-Verbindern hergestellt werden.
In einem hierarchischen Schaltplan kann das Design in Funktionsblöcke unterteilt werden, die als Blattsymbole dargestellt werden, die wiederum miteinander verbunden oder sogar verschachtelt werden können. Dieser Ansatz wird oft bei großen Entwürfen verwendet, da er es Ihnen ermöglicht, ein großes Schaltbild effektiver in Blöcke zu unterteilen, die unabhängig voneinander entworfen und betrachtet werden können. Die Verbindungen zwischen diesen Funktionsblöcken werden mit Hilfe von Ports hergestellt, die auf dem Blattsymbol dargestellt werden. Mit Ausnahme von Stromobjekten (VCC, GND usw.) werden nur Ports verwendet, um die Schaltpläne miteinander zu verbinden.
Das Pi.MX8-Schaltbild verwendet diese hierarchische Topologie:
Das Design ist in mehrere Funktionsblöcke unterteilt – alle in einem obersten Blatt dargestellt. Hier werden alle Verbindungen zwischen den einzelnen Blättern hergestellt. Dieses Design verwendet nur eine hierarchische Ebene.
Der iMX8 SoC ist in mehrere Teile unterteilt, die auf mehreren Blättern platziert sind. Auf dem obersten Blatt repräsentiert das große Symbol in der Mitte der Seite den SoC. Die zwei großen Blattsymbole auf der linken und rechten Seite der Seite stellen die zwei Board-zu-Board-Steckverbinder des Pi.MX8-Moduls dar. Alle anderen Funktionsblöcke sind mit ihrem eigenen Blattsymbol dargestellt.
Jede Seite folgt derselben Designphilosophie. Schnittstellen, die eine Schaltplanseite verlassen, sind farbcodiert, um das Spannungsniveau der Schnittstelle darzustellen. Netze, die Teil des Stromverteilungsnetzwerks sind, werden mit einer dicken Linienbreite gezeichnet.
Das Integrieren von Notizen für spezifische Konfigurationseinstellungen, Benennungskonventionen oder allgemeine Bemerkungen kann dazu beitragen, den Debugging- und Inbetriebnahmeprozess zu beschleunigen und gleichzeitig als Erinnerung für den PCB-Routingprozess zu dienen.
Schaltplanseite inklusive Notizen und Farbcodierung
Notizen zu einem Altium Designer Schaltplan aus einer Excel-Tabelle oder von Screenshots, die aus einem Datenblatt genommen wurden, hinzuzufügen, ist so einfach wie Strg+C, Strg+V:
Der Schaltplan selbst unterliegt derzeit noch Änderungen und befindet sich daher noch in der Entwicklung. Wir werden uns in einem weiteren Update tiefer mit dem Schaltplan beschäftigen.
Obwohl der Schaltplan in den nächsten Wochen einige kleinere Änderungen erfahren wird, können wir bereits mit der Planung des PCB-Layouts beginnen.
In der Phase der Layoutplanung möchten wir den Lagenaufbau definieren und eine Strategie für das Verlegen der Leiterbahnen planen. Als ersten Schritt zur Definition eines Lagenaufbaus und eines Verlegeansatzes können wir Schlüsselkomponenten auf der Platine platzieren. Dies wird uns helfen, den Platzbedarf und die Routingdichte abzuschätzen, die beide wichtige Faktoren für die Definition eines Lagenaufbaus und einer Routingstrategie sind. Schlüsselkomponenten sind in diesem Kontext Teile, die einen großen Einfluss auf die Platzierung der Komponenten haben, was für die folgenden Beispiele zutrifft:
Teile mit einer vordefinierten Position auf der PCB, z. B. Steckverbinder, Anzeige-LEDs, SMD-Abstandshalter;
Teile mit vielen Netzen, die verlegt werden müssen, z. B. SoCs, Speichergeräte, MCUs;
Teile, die viel Platz auf der Platine beanspruchen, z. B. große Induktoren, Schalter, Kühlkörper.
Bevor wir irgendwelche Komponenten auf dem Pi.MX8-Modul platzieren, möchten wir als Erstes einige Randbedingungen definieren. Im Kontext des Moduls sind dies mechanische Merkmale und Abmessungen, die durch den Formfaktor des Moduls vorgegeben sind und die wir verwenden möchten.
Je nach Liste der MCAD-Tools, mit denen wir integrieren, können diese Informationen mit dem MCAD CoDesigner in den PCB-Layout-Editor übertragen werden. In unserem Fall importieren wir eine DXF-Datei, die mit Spaceclaim Engineer erstellt wurde. Diese DXF-Kontur wird importiert und in eine neue mechanische Ebene namens „Referenz“ platziert:
Mechanische Abmessungen und Anschlussorte der PCB
Mit der Kontur an Ort und Stelle können wir die Befestigungslöcher an den richtigen Stellen hinzufügen, indem wir die Fangoptionen im PCB-Editor verwenden. Die Board-zu-Board-Verbinder können auf die gleiche Weise auf der unteren Schicht des Moduls platziert werden:
Positionierung von Befestigungslöchern und Anschlüssen auf der PCB
Auf der oberen Schicht wird ein U.FL-Anschluss für eine externe Antenne unterhalb des oberen linken Befestigungslochs platziert. Unter dem Anschluss wird eine Chip-Antenne für WiFi- und Bluetooth-Betrieb platziert. Die Position dieser On-Board-Antenne sollte nicht verändert werden, da viele bereits existierende Basisplatinen eine Kupferaussparungsregion unterhalb des Antennenstandorts verwenden.
Die Antenne ist eine Bibliothekskomponente, die nicht nur die Chipantenne selbst umfasst, sondern auch einige Kupfergeometrien und Referenzpunkte, an denen Anpassungskomponenten platziert werden müssen. Diese Informationen können im Datenblatt der Antenne gefunden werden. Indem wir diese Informationen in die Bibliothekskomponente einbetten, stellen wir sicher, dass die vordefinierte Geometrie nicht versehentlich geändert wird.
Definition des Antennenstandorts
In dieser Phase der Definition des für das Routing und die Platzierung von Komponenten verfügbaren Platinenraums kann es auch sinnvoll sein, entlang des Randes der Leiterplatte einen Schutzring hinzuzufügen. Ein Schutzring ist eine Kupferbahn, die entlang des Randes der Leiterplatte auf allen Schichten verläuft und in regelmäßigen Abständen über Vias mit der Masse verbunden ist. Ein entlang des Randes der Platine platzierter Schutzring verhindert, dass abgestrahlte Emissionen von den internen Schichten in die Umgebung gelangen. Schutzringe werden auch in anderen Konfigurationen auf einer Leiterplatte verwendet, zum Beispiel für präzise analoge Elektronik, bei der Leckströme, die durch Oberflächenkontaminationen fließen, von Bereichen mit hochsensiblen hochohmigen Knoten ferngehalten werden müssen. Wenn solche Merkmale erforderlich sind, sollten diese auch während der Layoutplanungsphase berücksichtigt werden.
Das Platzieren eines Schutzrings entlang des Randes der Platine in diesem frühen Entwurfsstadium ist wichtig, da es zwar nicht schwierig erscheinen mag, dieses Merkmal später hinzuzufügen, ein Schutzring jedoch erheblichen Platz beanspruchen kann. Typischerweise muss die Kupfergeometrie einen Mindestabstand von 0,2mm – 0,3mm zum bearbeiteten Platinenrand haben. Dazu kommt die Breite der Schutzringspur von beispielsweise 0,6mm und weitere 0,1mm für den Abstand des Schutzrings zu den verbleibenden Kupferspuren, und die Platine wird plötzlich in jeder Richtung 2mm kleiner. Besonders wenn Steckverbinder nahe am Platinenrand platziert werden oder wenn die Komponentendichte auf der Platine sehr hoch ist, kann dies während des Routings einen großen Unterschied machen.
PCB mit Schutzring
Eine weitere Einschränkung, die wir bei der Platzierung von Komponenten berücksichtigen sollten, ist die Tatsache, dass bestimmte Komponenten anfällig für mechanische Belastungen sein können. Abhängig von der Montagesituation einer PCB innerhalb eines Gehäuses können bestimmte Bereiche einer Platine erheblichen mechanischen Belastungen ausgesetzt sein. Typische Beispiele für solche Szenarien sind Montagelöcher oder Kühlkörper, die einen externen Montagedruck auf eine PCB ausüben.
Das ist auch etwas, das wir für das Pi.MX8-Modul im Kopf behalten sollten. Das Modul wird in einem Aluminiumgehäuse mit den vier Befestigungslöchern montiert. In dieser Konfiguration sind die Platine und das Gehäuse starr miteinander verbunden. Da Aluminium einen anderen thermischen Ausdehnungskoeffizienten als FR4 hat, beginnt die Platine sich zu verziehen, sobald das System aufheizt. Das Ausmaß dieses Effekts hängt von den genauen Materialeigenschaften und dem Temperaturunterschied ab, den die Baugruppe sieht.
Wir können die thermische Ausdehnung des Moduls simulieren, das im Aluminiumgehäuse montiert ist. Indem wir den Gradienten des Verschiebungsvektors berechnen, können wir sehen, dass die Platine Bewegungen erfahren wird, insbesondere in der Nähe der Befestigungslöcher:
Mechanische Spannungen durch thermische Ausdehnung
Wenn die PCB in einer Umgebung mit hohen Vibrationen verwendet wird, gilt das gleiche Prinzip in Bezug auf hohe Belastungen in der Nähe der Befestigungslöcher.
Aber warum ist das für das Pi.MX8-Modul wichtig? Es gibt Komponenten auf dem Modul, die empfindlich auf externe mechanische Belastungen reagieren. Diese Komponenten sind große Keramikkondensatoren. Diese Kondensatoren können leicht reißen, wenn sie mechanischen Belastungen ausgesetzt sind. Oftmals versagen die Kondensatoren mit einem Kurzschluss, was zu einem katastrophalen Ausfall des gesamten Systems führt. Aus diesem Grund sollten große Keramikkondensatoren nicht in der Nähe von Montagelöchern oder V-Schnittkanten der Platine platziert werden. Letztere erfahren während der Panel-Trennung ebenfalls hohe mechanische Belastungen. Je größer der Kondensator ist, desto empfindlicher reagiert er auf mechanische Lasten in der PCB.
Für uns bedeutet das, Keramikkondensatoren größer als 0603, die keine weiche Terminierung verwenden, mindestens 3,5 mm von den Montagelöchern entfernt zu halten. Diese Zahl variiert je nach Montagesituation der Platine und wurde aus der Simulation für das Pi.MX8-Board abgeleitet.
Unter Berücksichtigung dieser Aspekte sieht die vorläufige Platzierung der Schlüsselkomponenten auf dem Pi.MX8-Board wie folgt aus:
Vorläufige Platzierung der Schlüsselkomponenten
Die Idee hinter dieser Komponentenplatzierung und wie sie die Wahl des Schichtstapels beeinflusst, wird Teil des nächsten Updates sein. Bleiben Sie dran, um den Fortschritt des Pi.MX8-Moduls zu verfolgen!