feat: implement parts of the ideas

main
dev 4 weeks ago
parent b5f97f9799
commit 8f42470feb
  1. 238
      presentation.typ

@ -1,5 +1,5 @@
// ============================================================================ // ============================================================================
// presentation.typ — KiCad: vom Schaltplan zum Gerber (2- und 4-Layer) // presentation.typ — KiCad: vom Schaltplan zum Gerber (4 Layer als Standard)
// //
// Bauen: make presentation.pdf bzw. typst compile presentation.typ // Bauen: make presentation.pdf bzw. typst compile presentation.typ
// //
@ -77,25 +77,6 @@
align(horizon, text(size: 8.5pt)[#note]), align(horizon, text(size: 8.5pt)[#note]),
) )
// Querschnitt 2-Layer: Stack links, Legende rechts.
#let stack-2() = grid(
columns: (1.15fr, 1fr),
gutter: 1.8em,
_stack(
_layer(mask.lighten(40%), 8pt, round: (top-left: 2pt, top-right: 2pt)),
_layer(cu, 12pt),
_layer(fr4, 22pt),
_layer(cu, 12pt),
_layer(mask.lighten(40%), 8pt, round: (bottom-left: 2pt, bottom-right: 2pt)),
),
grid(
row-gutter: 3pt,
_sw(mask.lighten(40%), [Lötstopp + Bestückungsdruck]),
_sw(cu, [Kupfer 35 µm — Top: Signale, Bottom: GND-Fläche]),
_sw(fr4, [FR4-Kern ≈ 1,5 mm]),
),
)
// Querschnitt 4-Layer: Stack links, Legende rechts. // Querschnitt 4-Layer: Stack links, Legende rechts.
#let stack-4() = grid( #let stack-4() = grid(
columns: (1.15fr, 1fr), columns: (1.15fr, 1fr),
@ -165,16 +146,17 @@
#show: presentation.with( #show: presentation.with(
title: "KiCad", title: "KiCad",
subtitle: "Platinen-Design in der Praxis: 2-Layer und 4-Layer — vom Schaltplan zum Gerber-Export", subtitle: "Platinen-Design in der Praxis: vom Schaltplan zum Gerber-Export — 4 Layer als Standard",
author: "Your Name", author: "Your Name",
) )
#slide(title: "Ablauf")[ #slide(title: "Ablauf")[
- *KiCad-Überblick*: Suite, Projektmodell, Werkzeugkette - *KiCad-Überblick*: Suite, Projektmodell, Werkzeugkette, Bauteileauswahl
- *2-Layer in der Praxis*: Schaltplan → Layout → Fertigungsdaten - *Layout-Workflow*: Schaltplan → Layout → Fertigungsdaten (lagenunabhängig)
- *4-Layer*: Stackup, Masse, Versorgung, Rückstrompfade - *4-Layer*: 2 oder 4 Lagen? Stackup, Masse, Versorgung, Rückstrompfade
- *Prüfung & Fertigung*: DRC, 3D, Gerber, Bohrdaten - *Praxis-Fragen*: Einstieg, USB-C & 5 V, EMV, Flexibilität, 0-Ω-Retter
- *Screenshot-Checkliste* für die Aufnahmen in dieser Folienvorlage - *Bestückung & Equipment*: Löten, Werkzeug, Factory-Bestückung
- *Prüfung & Fertigung*: DRC, Gerber, Kosten, China vs. EU
#v(0.6em) #v(0.6em)
Danach: Worauf besteht besonderes Interesse? Danach: Worauf besteht besonderes Interesse?
] ]
@ -236,6 +218,18 @@
) )
] ]
#slide(title: "Bauteile & Lieferbarkeit")[
- *Direkt beim Schaltplan auswählen*: jedes Symbol bekommt ein konkretes, \
bestellbares Bauteil — nicht „irgendein 100 nF“
- Lieferbarkeit & Preis prüfen (LCSC, Mouser, DigiKey): Lagerstand, Preis \
bei 1 / 10 / 100 Stück, Gehäuse (0805 statt 0603 fürs Handlöten)
- *Der schönste Schaltplan nützt nichts*, wenn es die Teile nicht gibt — \
oder es 35 € kostet, weil 5 Stück halt so viel kosten (Mindestmengen, Versand)
- Nur Lagerware etablierter Distributoren — keine Restposten oder Broker-Teile
#v(0.5em)
#src[LCSC-Nummer direkt als Feld ans Symbol hängen — dann ist die BOM später fertig]
]
#slide(title: "ERC — Schaltung prüfen")[ #slide(title: "ERC — Schaltung prüfen")[
- `Prüfen → Elektrische Regeln prüfen` (ERC): offene Pins, unverbundene \ - `Prüfen → Elektrische Regeln prüfen` (ERC): offene Pins, unverbundene \
Drähte, fehlende Spannungs-Flags (`PWR_FLAG` an Versorgung & GND) Drähte, fehlende Spannungs-Flags (`PWR_FLAG` an Versorgung & GND)
@ -246,18 +240,9 @@
] ]
// =================================================================== // ===================================================================
#section("2-Layer-Layout", note: "Der Standard-Workflow") #section("Layout-Workflow", note: "Der Standard-Workflow")
// =================================================================== // ===================================================================
#slide(title: "Aufbau: 2 Lagen im Querschnitt")[
#stack-2()
#v(0.6em)
- Zwei Kupferlagen (Top/Bottom) auf einem FR4-Kern; außen Lötstopp + Bestückungsdruck
- Bewährte Rollenverteilung: *Top = Signale, Bottom = durchgehende GND-Fläche* \
(Rückstrompfade, Entstörung)
- Günstigste Fertigungsvariante — Grenzen bei hoher Packungsdichte und EMV-Anforderungen
]
#slide(title: "Footprints zuweisen & importieren")[ #slide(title: "Footprints zuweisen & importieren")[
- `Werkzeuge → Footprints zuweisen`: Symbol → Gehäuse; nach Abmessungen, \ - `Werkzeuge → Footprints zuweisen`: Symbol → Gehäuse; nach Abmessungen, \
Pins, Bohrbild filtern; mechanische Maße vorher im Datenblatt prüfen Pins, Bohrbild filtern; mechanische Maße vorher im Datenblatt prüfen
@ -280,20 +265,24 @@
- *Board-Setup* (Datei → Board-Setup): Netz-Klassen (Signal 0,25 mm, PWR 0,5–0,8 mm), Via-Klasse 0,6/0,3 mm, Abstandsregeln - *Board-Setup* (Datei → Board-Setup): Netz-Klassen (Signal 0,25 mm, PWR 0,5–0,8 mm), Via-Klasse 0,6/0,3 mm, Abstandsregeln
- Platinenumriss auf *Edge.Cuts* zeichnen (z. B. 80 × 50 mm, Ecken runden) - Platinenumriss auf *Edge.Cuts* zeichnen (z. B. 80 × 50 mm, Ecken runden)
- Platzieren nach *Signalfluss*: Connectoren & Befestigungen zuerst fixieren (sperren), dann ICs, dann Entkopplungs-Cs an die Versorgungspins - Platzieren nach *Signalfluss*: Connectoren & Befestigungen zuerst fixieren (sperren), dann ICs, dann Entkopplungs-Cs an die Versorgungspins
- *Zoom-Faktor nicht überschätzen*: auf dem Bildschirm sieht alles SO GROSS aus — \
in echt bekommst du es kaum noch gelötet. Luft & Abstände einplanen
], ],
shot("06-floorplan", [Pcbnew: Platinenumriss + platzierte Footprints mit sichtbarem Ratsnest (dünne weiße Verbindungen)]), shot("06-floorplan", [Pcbnew: Platinenumriss + platzierte Footprints mit sichtbarem Ratsnest (dünne weiße Verbindungen)]),
) )
] ]
#slide(title: "Routen (2 Layer)")[ #slide(title: "Routen")[
#grid( #grid(
columns: (1.05fr, 1fr), columns: (1.05fr, 1fr),
gutter: 1.4em, gutter: 1.4em,
[ [
- `X` routen — *kritische Signale zuerst*: Takt, PWM, Analog; kurze Wege, \ - `X` routen — *kritische Signale zuerst*: Takt, PWM, Analog; kurze Wege, \
wenige Vias wenige Vias
- `V` während des Routens: Via platzieren + Lagewechsel Top ↔ Bottom - `V` während des Routens: Via platzieren + Lagewechsel (Top ↔ Bottom, \
- PWR-Leitungen breiter routen (Netz-Klasse); GND läuft fast nur über die Fläche bei 4 Layern auch zu In1/In2)
- PWR-Leitungen breiter routen (Netz-Klasse); GND läuft über die \
Massefläche, nicht als Leiterbahn
- Raster: 1,27 / 0,635 mm (THT) bzw. 0,25 mm (SMD-Pitch) - Raster: 1,27 / 0,635 mm (THT) bzw. 0,25 mm (SMD-Pitch)
], ],
shot("07-routing", [Aktive Leiterbahn beim Routen; Lagen-Auswahl-Widget unten links auf „F.Cu“], tip: [Am besten live demo-fähig halten: gleiche Ansicht später auf dem Beamer]), shot("07-routing", [Aktive Leiterbahn beim Routen; Lagen-Auswahl-Widget unten links auf „F.Cu“], tip: [Am besten live demo-fähig halten: gleiche Ansicht später auf dem Beamer]),
@ -302,7 +291,8 @@
#slide(title: "Zonen — GND-Fläche")[ #slide(title: "Zonen — GND-Fläche")[
- Zeichnen-Werkzeug *Kupferfläche* wählen; in den Zone-Eigenschaften: - Zeichnen-Werkzeug *Kupferfläche* wählen; in den Zone-Eigenschaften:
*Netz GND, Lage B.Cu, thermische Reliefs* für Pads *Netz GND, GND-Lage wählen* (4 Layer: In1.GND · 2 Layer: B.Cu), \
thermische Reliefs für Pads
- *Stitch-Vias*: GND-Verbindungen Top ↔ Bottom nahe kritischen Bauteilen \ - *Stitch-Vias*: GND-Verbindungen Top ↔ Bottom nahe kritischen Bauteilen \
(Entkopplung, Quarze, Spannungsregler) (Entkopplung, Quarze, Spannungsregler)
- Nach jeder Änderung Zonen auffüllen (`B`) — erst danach DRC - Nach jeder Änderung Zonen auffüllen (`B`) — erst danach DRC
@ -310,9 +300,10 @@
#shot("08-zone", [Zonen-Eigenschaften-Dialog: Netz GND, Lage B.Cu, Vorrang, Füllparameter], tip: [Rechtsklick auf die Fläche → „Flächen…“]) #shot("08-zone", [Zonen-Eigenschaften-Dialog: Netz GND, Lage B.Cu, Vorrang, Füllparameter], tip: [Rechtsklick auf die Fläche → „Flächen…“])
] ]
#slide(title: "Prüfen & Exportieren (2L fertig)")[ #slide(title: "Prüfen & Exportieren")[
- *DRC* (`Prüfen → Designdefinitionen prüfen`): Abstände, offene Verbindungen \ - *DRC — nie nie nie vergessen*: nach dem Layout und *noch einmal direkt \
(Ratsnest leer), Masken- & Bohrabstände vor dem Export* (`Prüfen → Designdefinitionen prüfen`): Abstände, offene \
Verbindungen (Ratsnest leer), Masken- & Bohrabstände
- *3D-Viewer* (`Ansicht → 3D-Betrachter`): Gehäuse- & Montage-Kollisionen sichtbar - *3D-Viewer* (`Ansicht → 3D-Betrachter`): Gehäuse- & Montage-Kollisionen sichtbar
- Export: Gerber X2 + Excellon-Bohrdaten → ZIP an die Fertigung - Export: Gerber X2 + Excellon-Bohrdaten → ZIP an die Fertigung
#v(0.5em) #v(0.5em)
@ -320,24 +311,27 @@
columns: (1fr, 1fr), columns: (1fr, 1fr),
gutter: 1.2em, gutter: 1.2em,
shot("09-drc", [DRC-Dialog mit Constraints links und Ergebnisliste „0 Verstöße“]), shot("09-drc", [DRC-Dialog mit Constraints links und Ergebnisliste „0 Verstöße“]),
shot("10-3d-viewer", [3D-Betrachter: fertige 2-Layer-Platine, leicht gedreht, mit Bauteilen]), shot("10-3d-viewer", [3D-Betrachter: fertige Platine, leicht gedreht, mit Bauteilen]),
) )
] ]
// =================================================================== // ===================================================================
#section("4-Layer-Layout", note: "Stackup, Masse & Versorgung") #section("4-Layer", note: "Stackup, Masse & Versorgung")
// =================================================================== // ===================================================================
#slide(title: "Warum 4 Layer?")[ #slide(title: "2 oder 4 Lagen?")[
#grid( #grid(
columns: (1.3fr, 1fr), columns: (1.3fr, 1fr),
gutter: 1.4em, gutter: 1.4em,
[ [
- *„Lohnen sich 2 Lagen heute noch?“ — eher nein*: der 4-Layer-Aufpreis \
ist überschaubar, meist geringer als der Ärger mit einem dicht \
gepackten 2-Layer
- *Referenzebene unter jedem Signal* → geschlossene Rückstromschleifen, \ - *Referenzebene unter jedem Signal* → geschlossene Rückstromschleifen, \
weniger Abstrahlung weniger Abstrahlung
- *Impedanzkontrolle* (USB, Ethernet, RF) über Kupferdicke & Dielektrikum - *Impedanzkontrolle* (USB, Ethernet, RF) über Kupferdicke & Dielektrikum
- *Versorgung als eigene Lage*: niedrige Impedanz, Signal-Routen bleiben frei - *Versorgung als eigene Lage*: niedrige Impedanz, Signal-Routen bleiben frei
- Standard 1,6 mm, 4 Kupferlagen — Aufpreis meist geringer als ein dicht gepackter 2-Layer - 2 Lagen noch sinnvoll bei: Adapter-/Breakout-Boards und simpler Logik
], ],
stack-4(), stack-4(),
) )
@ -366,7 +360,7 @@
#slide(title: "Stackup in KiCad einrichten")[ #slide(title: "Stackup in KiCad einrichten")[
- Board-Setup → *Stapelaufbau*: Innenlagen *In1.Cu / In2.Cu* anlegen, Kupferdicken & Prepreg eintragen, Lagen benennen (In1.GND …) - Board-Setup → *Stapelaufbau*: Innenlagen *In1.Cu / In2.Cu* anlegen, Kupferdicken & Prepreg eintragen, Lagen benennen (In1.GND …)
- *Impedanz* im selben Dialog: Ziel (z. B. 50 Ω Single, 90 Ω diff) → empfohlene Bahnbreite je Lage - *Impedanz* im selben Dialog: Ziel (z. B. 50 Ω Single, 90 Ω diff) → empfohlene Bahnbreite je Lage
- Netzklassen & Abstände wie beim 2-Layer; Thermal-Reliefs für Plane-Anbindung - Netzklassen & Abstände wie gehabt über das Board-Setup; Thermal-Reliefs für Plane-Anbindung
#v(0.4em) #v(0.4em)
#grid( #grid(
columns: (1fr, 1fr), columns: (1fr, 1fr),
@ -393,7 +387,107 @@
] ]
// =================================================================== // ===================================================================
#section("Prüfung & Fertigung", note: "DRC, Gerber, Bohrdaten") #section("Praxis-Fragen", note: "Erfahrungswerte fürs erste Board")
// ===================================================================
#slide(title: "Wie fange ich an?")[
- *Klein anfangen*: eine Platine, ein Ziel — z. B. Spannungsversorgung + \
MCU-Modul (das Beispiel aus diesem Vortrag)
- *Bewährtes kopieren*: Referenzdesigns aus Datenblättern, Open-Source-Boards — \
nichts neu erfinden
- Reihenfolge einhalten: Schaltplan (+ Bauteileauswahl) → ERC → Layout → \
DRC → Gerber
- Erste Revision = Lernprojekt: rechne mit 2–3 Anläufen — das ist normal
]
#slide(title: "USB-C & 5 V — ein gutes Konzept?")[
- *Ja — fürs erste Board ein guter Standard*: robust, überall verfügbar, \
nur 5 V (kein Power-Delivery nötig)
- Common Pitfalls:
- *CC1 & CC2 je 5,1 kΩ nach GND* (Rd) — sonst liefert eine korrekte \
Quelle gar keinen Strom
- Pin-Reihen A/B sind *gespiegelt*, nicht gedreht — Footprint-Orientierung prüfen
- USB-2-Pins verbinden: A6↔B6 (D+) und A7↔B7 (D−)
- VBUS nicht zurückeinspeisen: kein zweites Board an denselben Stecker
#v(0.4em)
#src[Anforderungen an Rd (5,1 kΩ): USB-IF, USB Type-C Spec]
]
#slide(title: "EMV als Anfänger?")[
- *„Lohnt es sich, als Anfänger auf EMV zu achten?“ — joa, eher nicht.*
- Bewusste EMV-Optimierung (Filterdesign, Shields, Slots…) ist zu früh — \
das Grundset bringt schon den Großteil:
- durchgehende *GND-Referenzfläche* (deshalb 4 Layer)
- *Entkopplungskondensatoren* direkt an jeden Versorgungspin
- Realistisch planen: *2–3 Revisionen* — und für Revision 1 *Yellow-Wire* \
(Lötdrähte) einpreisen
]
#slide(title: "Wie flexibel designen?")[
- Frage: Jumper, Bestückoptionen, „entweder/oder“-Footprints einplanen?
- *Eher gar nicht* — wird eine Stelle „falsch“, machst du einfach die \
nächste Platine (schnell & günstig)
- Flexibilität kostet Platz, Zeit und macht Layout & Bestückung komplexer
- *Ausnahme: ab ca. 100+ Stück* lohnt es sich, Varianten vorzusehen \
(Bestückvarianten, Strapping-Optionen)
]
#slide(title: "Retter in der Not: 0 Ω & 1 R")[
- *Schutzwiderstände mit 0 Ω retten alles*: in Serie zu Versorgungs- und \
heiklen Signalleitungen einplanen — im Notfall austauschen, überbrücken \
oder per Yellow-Wire ersetzen
- Gehäusegröße: *0805 oder 0603 — nicht kleiner* (du willst es auch noch \
von Hand löten können)
- *1-R-Widerstände in 0805 als Sicherungen*: in Versorgungszweige — gehen \
im Fehlerfall durch, statt alles abzufackeln
]
// ===================================================================
#section("Bestückung & Equipment", note: "Löten, Werkzeug & PCBA")
// ===================================================================
#slide(title: "Bestückung: klein nach groß")[
- *Klein nach groß* — sonst kommst du mit dem Lötkolben nicht mehr dran
- *Erst SMD, dann THT* — Stecker & große THT-Teile blockieren sonst \
die SMD-Plätze
- SMD in einem Rutsch: Lötpaste, Bauteile setzen, Hotplate bzw. Heißluft — \
danach THT mit dem Kolben
- „*Lohnt sich Bestückungsdruck?*“ — nein, außer ab ca. 10.000 Stück und \
mit AOI (die automatische Inspektion braucht die Referenz)
]
#slide(title: "Equipment — was lohnt sich?")[
#grid(
columns: (1fr, 1fr),
gutter: 1.2em,
panel(c: accent)[
*Kaufen (ja)*
- *Lötkolben* — temperaturgeregelt, feine Spitzen
- *Hotplate* — SMD-Lötpaste im kleinen Reflow
- *Heißluftfön* — Rework, QFN/DFN, Schrumpfschlauch
- *Lötpaste & Lötzinn* (kein Sn63Cu36)
],
panel(c: ember)[
*Eher nicht / später*
- Reflow-Ofen — die Hotplate reicht fürs Prototyping
- Automatischer Bauteil-Picker — Pinzette tut's
- Großes Mikroskop — ein USB-Mikroskop reicht am Anfang
],
)
]
#slide(title: "Factory-Bestückung (PCBA)")[
- *„Lohnt sich das?“ — ja, öfter als man denkt*: der Dienstleister beschafft \
und bestückt SMD ab Werk (z. B. JLCPCB, AISLER)
- Besonders bei *feinen Gehäusen* (0402, QFN, BGA) — spart Frust und \
Nachbestellungen
- Aus KiCad: *Stückliste (BOM)* + *Pick-and-Place-Datei* exportieren \
(`Datei → Fertigungsoutputs`)
- Sinnvoller Split: *SMD ab Werk, THT & Mechanik selbst* löten
]
// ===================================================================
#section("Prüfung & Fertigung", note: "DRC, Gerber, Bohrdaten & Kosten")
// =================================================================== // ===================================================================
#slide(title: "Endkontrolle")[ #slide(title: "Endkontrolle")[
@ -419,6 +513,46 @@
) )
] ]
#slide(title: "Was kostet eine Platine?")[
#table(
columns: (auto, 1fr),
stroke: (bottom: 0.5pt + luma(210)),
inset: (x: 4pt, y: 2.5pt),
[*Stückzahl*], [*Richtwert (kleine 4-Layer-Platine, China)*],
[1–5], [ca. 10–25 € — fast nur Grundgebühr, Panel & Versand],
[10], [kaum teurer als 5 — das Setup ist einmal bezahlt],
[100], [ca. 1–2 € pro Stück],
[1000], [ca. 0,3–0,8 € pro Stück],
)
#v(0.4em)
- *Kleinmengen = Fixkosten*: Setup, Werkzeuge, Panel, Versand dominieren den Preis
- Preis-Treiber: *Fläche, Lagenzahl, Mindestabstände/Bohrungen* (HDI = teuer) & Menge
#v(0.3em)
#src[Größenordnungen zur Orientierung — aktuell immer im Preisrechner prüfen (jlcpcb.com/pricing, aisler.net)]
]
#slide(title: "China oder EU?")[
#grid(
columns: (1fr, 1fr),
gutter: 1.2em,
panel(c: ember)[
*China — JLCPCB, PCBWay, SEEED*
- sehr günstig, riesige Optionsvielfalt (Farben, Oberflächen, HDI)
- Versand meist 1–2 Wochen (Flugfracht)
- lange Transportwege → mehr Emissionen
],
panel(c: accent)[
*EU — AISLER, Beta layout, Würth*
- Faktor 2–5 teurer, dafür schnell & unkompliziert
- deutschsprachiger Support, Rechnung & Gewährleistung
- kurze Wege → besser für *Umwelt & Local Buying*
],
)
#v(0.5em)
- Praktisch: China fürs günstige Prototyping & Lernen — EU, wenn Zeit, \
Service oder CO₂-Bilanz zählen
]
#slide(title: "Screenshot-Checkliste")[ #slide(title: "Screenshot-Checkliste")[
#set text(size: 11.5pt) #set text(size: 11.5pt)
Alle Platzhalter in dieser Folienvorlage — Aufnahme machen, als \ Alle Platzhalter in dieser Folienvorlage — Aufnahme machen, als \
@ -438,7 +572,7 @@
[07], [routing], [Routing aktiv, Lagen-Widget unten links], [07], [routing], [Routing aktiv, Lagen-Widget unten links],
[08], [zone], [Zonen-Eigenschaften (GND, B.Cu)], [08], [zone], [Zonen-Eigenschaften (GND, B.Cu)],
[09], [drc], [DRC-Dialog mit Ergebnis], [09], [drc], [DRC-Dialog mit Ergebnis],
[10], [3d-viewer], [3D-Ansicht der 2-Layer-Platine], [10], [3d-viewer], [3D-Ansicht der fertigen Platine],
[11], [stackup-4l], [Board-Setup → Stapelaufbau mit 4 Kupferlagen], [11], [stackup-4l], [Board-Setup → Stapelaufbau mit 4 Kupferlagen],
[12], [impedanz], [Impedanzwerte im Stapelaufbau-Dialog], [12], [impedanz], [Impedanzwerte im Stapelaufbau-Dialog],
[13], [4l-fertig], [4-Layer-Board, nur In1.GND sichtbar], [13], [4l-fertig], [4-Layer-Board, nur In1.GND sichtbar],
@ -473,8 +607,8 @@
] ]
#slide(title: "Diskussion")[ #slide(title: "Diskussion")[
- Was zeigen wir *live*? (2-Layer-Demo in ~15 min realistisch) - Was zeigen wir *live*? (Layout-Demo in ca. 15 min realistisch)
- Worauf besteht besonderes Interesse? EMV, Impedanz, Gehäuse, Fertigung? - Worauf besteht besonderes Interesse? Kosten, PCBA, EMV, Impedanz, Gehäuse?
#v(1em) #v(1em)
#align(center, text(size: 1.3em, weight: "bold")[Danke — Fragen?]) #align(center, text(size: 1.3em, weight: "bold")[Danke — Fragen?])
] ]

Loading…
Cancel
Save