Erstellen des Designs für mehrere PCBs im gleichen Projekt

Ari Mahpour
|  Erstellt: May 9, 2021  |  Aktualisiert am: July 22, 2021
Erstellen des Designs für mehrere PCBs im gleichen Projekt

Die meisten unserer PCB-Designs befinden sich als eine einzelne Leiterplatte unter unseren Altium Designer-Projekten (z. B. .PrjPcb-Datei). Von Zeit zu Zeit verwenden wir für unser Design Varianten mit verschiedenen Bestückungsoptionen. Es kommt nur selten vor, dass wir ein einzelnes Projekt haben, das mehrere Leiterplatten mit verschiedenen Bestückungsoptionen erfordert, aber wenn es geschieht, dann bleiben viele von uns hängen. Allzu oft habe ich erlebt, wie Designer Teile eines Projekts kopieren und einfügen und dann kleinere Variationen am Schaltplan und/oder der Leiterplatte anbringen. Im Allgemeinen ist diese Vorgehensweise akzeptabel, so lange Sie das Design nicht später aktualisieren müssen. Wie bewältigen Sie die exakte Änderung über beide Projekte hinweg? Wie garantieren Sie, dass diese Änderungen identisch sein werden? Wie oft wird dies vorkommen (z. B. Rev A, B, C usw.)? Dieser Artikel behandelt einen Ansatz für die Verwaltung mehrerer PCB-Designs innerhalb eines einzigen Projekts, der eine zentrale Informationsquelle sicherstellt. Wir werden auch das Beispiel der Leiterplatte aus meinem letzten Artikel Pandemic Prototyping: Building Electronics from your Living Room durchgehen.

Einrichten der Projektdatei

Unser Ziel ist es, eine zentrale Informationsquelle innerhalb der Schaltpläne zu verwalten und dennoch Varianten der Leiterplatte selbst routen zu können. In diesem Beispiel habe ich einen einzigen Schaltplan, jedoch mit zwei Leiterplatten, erstellt:

Abbildung 1: Projektdateien mit mehreren PcbDocs
Figure 1: Project files including multiple PcbDocs

Die Varianten sind oben zu sehen. Ich habe zwei Varianten für meinen Kiln Controller erstellt: eine für den Raspberry Pi (Standardgröße) und die andere für den Raspberry Pi Zero. Ich begann das Routing mit dem Raspberry Pi Zero HAT-Design, da die Standardgröße im Wesentlichen eine größere Version von Zero ist. Nach Abschluss des Routing kopierte ich das ganze PCB-Design und fügte es in die Leiterplatte der Standardgröße ein (PiHat – Full.PcbDoc). Es waren einige geringfügige Anpassungen erforderlich (z. B. Ausschnitte, Polygonflächen, Leiterplattenumrisslinien usw.), aber die Bauteile und Leiterbahnen blieben gleich.

In meinem Schaltplan habe ich alle Bauteile, die in beiden Designs vorhanden sind, mit einbezogen (gleich, ob sie bestückt waren oder nicht):

Abbildung 2: Schaltplan ohne Varianten
Figure 2: Schematic with no variants

Mir wurde klar, dass ich eine Menge zusätzlichen Platz in meinem Raspberry PiHat der Standardgröße hatte. Deshalb beschloss ich, den AC-DC-Wandler in die Leiterplatte einzubauen. Das Problem ist natürlich, dass durch das Hinzufügen des Wandlers zum Schaltplan er in das PCB für die kleinere PiHat-Leiterplatte importiert wird. Dies möchten wir nicht tun und deshalb habe ich ihn absichtlich von meinem PcbDoc ausgeschlossen:

Abbildung 3: Nicht bestückte Teile werden explizit nicht importiert
Figure 3: Explicitly not importing the unstuffed parts

Da die Bauteile nicht im Design enthalten sind, werden sie keine „unrouted“ DRC-Fehler erzeugen. Wir möchten auch DNI (do not install)-Optionen zu unseren Varianten hinzufügen, und zwar wie folgt:

Abbildung 4: DNI für die Leiterplatte der normalen Größe
Figure 4: DNI for the full-size board
Abbildung 5: DNI für die Pi Zero Leiterplatte
Figure 5: DNI for the Pi Zero board

Um Verwirrung zu vermeiden, habe ich den DC-Steckverbinder für die Standardgröße vollständig entfernt (da wir einen AC-Eingang verwenden) und umgekehrt auch für die Pi-Zero-Version.

Output Job-Dateien

Jetzt, da wir unseren Schaltplan entwickelt, die Leiterplatten geroutet und die Bestückungsoptionen konfiguriert haben, müssen wir die Output Job-Dateien einrichten. Diese Output Job-Dateien generieren die erforderlichen Fertigungs- und Baugruppenpakete für den Bau aller Leiterplatten mit ihren entsprechenden Bestückungsoptionen. Dies ist ein entscheidender Schritt, der oft übersehen wird, was bei der späteren Erstellung eines Pakets für den Anbieter enorme Probleme verursachen kann.

In diesem Beispiel haben wir für jede Leiterplatte eine separate Output Job-Datei. Der Einfachheit halber gibt es eine einzige Output Job-Datei für die Fertigung als auch für die Montage (was normalerweise in zwei getrennte .output-Dateien in den Beispielprojekten von Altium Designer aufgeteilt wird). Wie Sie in den Abbildungen 6 und 7 sehen können, sind die .outjob-Dateien identisch mit Ausnahme der Variantenauswahl und der PcbDoc-Auswahl. Für mehrere Bestückungsoptionen verwenden wir die im oberen Teil des Fensters angegebenen Variantenoptionen. Wir generieren ein Paket allein für die Leiterplatte, an der wir für die Bestückung der angegebenen Leiterplatten interessiert sind. Beispiel: Für die „Pi“-Variante (für die Bestückung einer Raspberry PiHat der Standardgröße) wollen wir die PCB-Datei „PiHat – Full“ (d. h. in normaler Größe) auswählen. Wir sind nicht daran interessiert, Fertigungs- und Montagepakete für die Raspberry Pi Zero HAT zu generieren. Das Gleiche gilt für die kleinere Raspberry Pi (Zero) HAT. Wir erstellen die Dateien, die für die Fertigung und die Montage nur für die Leiterplatte, an der wir interessiert sind, erforderlich sind. 

Abbildung 6: Outjob-Datei mit Projektvariante der normalen Größe und ausgewähltem PCB
Abbildung 7: Outjob-Datei mit Projektvariante der Pi-Zero-Größe und ausgewähltem PCB
Figure 7: Outjob file with Pi Zero size project variant and PCB selected

Um eine Wiederverwendung zu ermöglichen, setzen wir schließlich spezielle Strings in Folder Structure Settings ein und zwar wie folgt:

Abbildung 8: Verwendung von programmierbaren speziellen Strings zur Benennung von Output-Ordnern
Figure 8: Using Special Strings to name output folders programmatically

Dies ermöglicht uns, Unterordner automatisch basierend auf dem Namen der Variante zu erstellen. Wenn sich der Name der Variante ändert, so ändern sich auch die Namen der Ordner.

Es gibt noch weitere Möglichkeiten, diese Output-Job-Dateien mithilfe von Skripts und auf andere Weise zu verkürzen. Dies liegt jedoch außerhalb des Umfangs dieses Artikels. Der Zweck dieses Artikels ist es, zu verdeutlichen, wie dies möglich ist und den Lesern eine der vielen Möglichkeiten zu zeigen, wie sie dies einrichten können.

Zusammenfassung

Dieser Artikel beschreibt die Herausforderungen, mit denen Designer bei der Verwaltung mehrerer PCBs auf der Basis einer zentralen Informationsquelle, konfrontiert sind. Anstatt mehrere Kopien eines Projekts zu erstellen und zu bewältigen, verwalten wir ein einziges PCB-Projekt und führen das Design unter Verwendung von Output-Job-Konfigurationen für mehrere PCBs durch. Mithilfe dieser Konfigurationen können wir mehrere PcbDoc-Dateien innerhalb des Projekts behalten, jedoch Pakete speziell für diese Leiterplatten generieren. Diese Methode ermöglicht es Entwicklern, bei der Aktualisierung eines einzelnen Projekts, das mehrere PCBs beliefert, Zeit und Geld zu sparen.

Würden Sie gerne mehr darüber erfahren, wie Altium Sie bei Ihrem nächsten PCB-Design unterstützen kann? Sprechen Sie mit einem Experten von Altium und erfahren Sie mehr darüber, wie Sie Designentscheidungen einfach und sicher treffen können.

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Ari is an engineer with broad experience in designing, manufacturing, testing, and integrating electrical, mechanical, and software systems. He is passionate about bringing design, verification, and test engineers together to work as a cohesive unit.

neueste Artikel

Zur Startseite