|
|
|
@ -1,5 +1,5 @@ |
|
|
|
// ============================================================================ |
|
|
|
// ============================================================================ |
|
|
|
// presentation.typ — KiCad: vom Schaltplan zum Gerber (4 Layer als Standard) |
|
|
|
// 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 |
|
|
|
// |
|
|
|
// |
|
|
|
@ -11,14 +11,14 @@ |
|
|
|
// (Name steht im Platzhalter, z. B. assets/07-routing.png) |
|
|
|
// (Name steht im Platzhalter, z. B. assets/07-routing.png) |
|
|
|
// 3. Die `shot(...)`-Zeile durch ein Bild ersetzen, z. B. |
|
|
|
// 3. Die `shot(...)`-Zeile durch ein Bild ersetzen, z. B. |
|
|
|
// #img("assets/07-routing.png", width: 76%, caption: [Routing in Pcbnew]) |
|
|
|
// #img("assets/07-routing.png", width: 76%, caption: [Routing in Pcbnew]) |
|
|
|
// Die Folie „Screenshot-Checkliste“ am Ende listet die fehlenden Aufnahmen. |
|
|
|
// Die Folie "Screenshot-Checkliste" am Ende listet die fehlenden Aufnahmen. |
|
|
|
// ============================================================================ |
|
|
|
// ============================================================================ |
|
|
|
|
|
|
|
|
|
|
|
#import "template.typ": * |
|
|
|
#import "template.typ": * |
|
|
|
|
|
|
|
|
|
|
|
// ---- Palette-Erweiterung (nur für die Querschnitts-Diagramme) -------------- |
|
|
|
// ---- Palette-Erweiterung (nur für die Querschnitts-Diagramme) -------------- |
|
|
|
#let cu = ember // Kupfer -> Terrakotta aus der Deck-Palette |
|
|
|
#let cu = ember // Kupfer -> Terrakotta aus der Deck-Palette |
|
|
|
#let mask = accent // Lötstopp -> Petrol („blaue Platine“) |
|
|
|
#let mask = accent // Lötstopp -> Petrol ("blaue Platine") |
|
|
|
#let fr4 = luma(226) // FR4-Kern |
|
|
|
#let fr4 = luma(226) // FR4-Kern |
|
|
|
#let prepreg = luma(238) // Prepreg |
|
|
|
#let prepreg = luma(238) // Prepreg |
|
|
|
|
|
|
|
|
|
|
|
@ -58,6 +58,15 @@ |
|
|
|
}, |
|
|
|
}, |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Ganze Folie für einen Screenshot: großes Bild + kleine Bildunterschrift. |
|
|
|
|
|
|
|
#let shot-slide(title, path, height: 250pt, caption: none) = slide(title: title)[ |
|
|
|
|
|
|
|
#align(center, image(path, height: height)) |
|
|
|
|
|
|
|
#if caption != none [ |
|
|
|
|
|
|
|
#v(0.2em) |
|
|
|
|
|
|
|
#align(center, text(size: 0.75em, fill: luma(110))[#caption]) |
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
// Schichtband: lückenlos gestapelt (Grid mit row-gutter 0 = kein Par-Abstand). |
|
|
|
// Schichtband: lückenlos gestapelt (Grid mit row-gutter 0 = kein Par-Abstand). |
|
|
|
#let _layer(fill, h, round: none) = rect( |
|
|
|
#let _layer(fill, h, round: none) = rect( |
|
|
|
width: 100%, |
|
|
|
width: 100%, |
|
|
|
@ -95,11 +104,11 @@ |
|
|
|
grid( |
|
|
|
grid( |
|
|
|
row-gutter: 3pt, |
|
|
|
row-gutter: 3pt, |
|
|
|
_sw(mask.lighten(40%), [Lötstopp]), |
|
|
|
_sw(mask.lighten(40%), [Lötstopp]), |
|
|
|
_sw(cu, [Kupfer 35 µm — Signale]), |
|
|
|
_sw(cu, [Kupfer 35 µm - Signale]), |
|
|
|
_sw(prepreg, [Prepreg ≈ 0,2 mm]), |
|
|
|
_sw(prepreg, [Prepreg ≈ 0,2 mm]), |
|
|
|
_sw(accent, [In1.GND — Masse]), |
|
|
|
_sw(accent, [In1.GND - Masse]), |
|
|
|
_sw(fr4, [FR4-Kern ≈ 1,0 mm]), |
|
|
|
_sw(fr4, [FR4-Kern ≈ 1,0 mm]), |
|
|
|
_sw(accent-soft, [In2.PWR — Versorgung]), |
|
|
|
_sw(accent-soft, [In2.PWR - Versorgung]), |
|
|
|
), |
|
|
|
), |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
@ -153,14 +162,14 @@ |
|
|
|
|
|
|
|
|
|
|
|
#show: presentation.with( |
|
|
|
#show: presentation.with( |
|
|
|
title: "KiCad", |
|
|
|
title: "KiCad", |
|
|
|
subtitle: "Vom Schaltplan zur fertigen Platine — 4 Layer als Standard", |
|
|
|
subtitle: "Vom Schaltplan zur fertigen Platine - 4 Layer als Standard", |
|
|
|
author: "Your Name", |
|
|
|
author: "Your Name", |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Ablauf")[ |
|
|
|
#slide(title: "Ablauf")[ |
|
|
|
- *Was ist KiCad?* · Projekt & Schaltplan |
|
|
|
- *Was ist KiCad?* · Projekt & Schaltplan |
|
|
|
- *Layout*: Platzieren · Routen · Zonen · Prüfen |
|
|
|
- *Layout*: Platzieren · Routen · Zonen · Prüfen |
|
|
|
- *4 Layer* statt 2 — warum |
|
|
|
- *4 Layer* statt 2 - warum |
|
|
|
- *Praxis*: USB-C & 5 V · 0-Ω-Retter · Löten |
|
|
|
- *Praxis*: USB-C & 5 V · 0-Ω-Retter · Löten |
|
|
|
- *Fertigung*: Gerber · Kosten · China vs. EU |
|
|
|
- *Fertigung*: Gerber · Kosten · China vs. EU |
|
|
|
#v(0.6em) |
|
|
|
#v(0.6em) |
|
|
|
@ -191,7 +200,7 @@ |
|
|
|
_kbox("7 · Test", "läuft alles?"), |
|
|
|
_kbox("7 · Test", "läuft alles?"), |
|
|
|
) |
|
|
|
) |
|
|
|
#v(0.8em) |
|
|
|
#v(0.8em) |
|
|
|
Heute: Schritte 1–3 in KiCad — ab 4 übernimmt die Fertigung. |
|
|
|
Heute: Schritte 1-3 in KiCad - ab 4 übernimmt die Fertigung. |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
@ -205,7 +214,7 @@ |
|
|
|
[ |
|
|
|
[ |
|
|
|
- Leiterplattendesignsoftware |
|
|
|
- Leiterplattendesignsoftware |
|
|
|
- Schaltplan und Layout |
|
|
|
- Schaltplan und Layout |
|
|
|
- git support — Projektdateien sind Text |
|
|
|
- git support - Projektdateien sind Text |
|
|
|
- Windows / Linux / Mac |
|
|
|
- Windows / Linux / Mac |
|
|
|
- vom CERN, open source |
|
|
|
- vom CERN, open source |
|
|
|
], |
|
|
|
], |
|
|
|
@ -221,18 +230,18 @@ |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Projekt & Schaltplan")[ |
|
|
|
#slide(title: "Projekt & Schaltplan")[ |
|
|
|
- An Beispielschaltungen aus dem Datenblatt orientieren — platzieren, verdrahten |
|
|
|
- An Beispielschaltungen aus dem Datenblatt orientieren - platzieren, verdrahten |
|
|
|
- Sorgfalt und Zeit investieren — sauber gruppieren, nach Funktion: |
|
|
|
- Sorgfalt und Zeit investieren - sauber gruppieren, nach Funktion: |
|
|
|
- Stecker & Montage |
|
|
|
- Stecker & Montage |
|
|
|
- Stromversorgung — geht an alle anderen Gruppen |
|
|
|
- Stromversorgung - geht an alle anderen Gruppen |
|
|
|
- Zentraler Prozessor + Debug |
|
|
|
- Zentraler Prozessor + Debug |
|
|
|
- Funktionale Gruppen — z. B. Schaltergruppe 1: Schalter + Sensor + LED + … |
|
|
|
- Funktionale Gruppen - z. B. Schaltergruppe 1: Schalter + Sensor + LED + ... |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Beispiel: gruppierte Schaltung")[ |
|
|
|
#slide(title: "Beispiel: gruppierte Schaltung")[ |
|
|
|
#align(center, image("assets/02_schaltplan.png", height: 278pt)) |
|
|
|
#align(center, image("assets/02_schaltplan.png", height: 278pt)) |
|
|
|
#v(0.2em) |
|
|
|
#v(0.2em) |
|
|
|
#align(center, text(size: 0.75em, fill: luma(110))[Jede Funktionsgruppe bekommt ihren eigenen Kasten — so bleibt der Plan lesbar.]) |
|
|
|
#align(center, text(size: 0.75em, fill: luma(110))[Jede Funktionsgruppe bekommt ihren eigenen Kasten - so bleibt der Plan lesbar.]) |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Bauteile & Lieferbarkeit")[ |
|
|
|
#slide(title: "Bauteile & Lieferbarkeit")[ |
|
|
|
@ -240,9 +249,9 @@ |
|
|
|
columns: (1.15fr, 1fr), |
|
|
|
columns: (1.15fr, 1fr), |
|
|
|
gutter: 1.2em, |
|
|
|
gutter: 1.2em, |
|
|
|
[ |
|
|
|
[ |
|
|
|
- Direkt beim Zeichnen konkret aussuchen — was es gibt und was lieferbar ist |
|
|
|
- Direkt beim Zeichnen konkret aussuchen - was es gibt und was lieferbar ist |
|
|
|
- „irgendein 100 nF" ist okay — „der Schaltregler, aber in der 5-V-Variante" nicht |
|
|
|
- "irgendein 100 nF" ist okay - "der Schaltregler, aber in der 5-V-Variante" nicht |
|
|
|
- Check: LCSC · Mouser · DigiKey — Lagerstand, Preis bei 1 / 10 / 100 Stück |
|
|
|
- Check: LCSC · Mouser · DigiKey - Lagerstand, Preis bei 1 / 10 / 100 Stück |
|
|
|
- LCSC-Nummer als Feld ins Symbol → fertige Stückliste |
|
|
|
- LCSC-Nummer als Feld ins Symbol → fertige Stückliste |
|
|
|
- Schönster Schaltplan nützt nichts *ohne Bauteile* |
|
|
|
- Schönster Schaltplan nützt nichts *ohne Bauteile* |
|
|
|
], |
|
|
|
], |
|
|
|
@ -250,42 +259,48 @@ |
|
|
|
) |
|
|
|
) |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "ERC — Schaltung prüfen")[ |
|
|
|
#slide(title: "ERC - Schaltung prüfen")[ |
|
|
|
- `Prüfen → Elektrische Regeln prüfen` |
|
|
|
- `Prüfen → Elektrische Regeln prüfen` |
|
|
|
- Findet: offene Pins · vergessene Drähte · fehlende `PWR_FLAG` |
|
|
|
- Findet: offene Pins · vergessene Drähte · fehlende `PWR_FLAG` |
|
|
|
- Warnungen *beheben* — nicht wegklicken |
|
|
|
- Warnungen *beheben* - nicht wegklicken |
|
|
|
- ERC grün → weiter zum Layout |
|
|
|
- ERC grün → weiter zum Layout |
|
|
|
#v(0.4em) |
|
|
|
#v(0.4em) |
|
|
|
#img("assets/03_erc.png", width: 62%, caption: [ERC-Dialog: 10 Fehler — genau die müssen weg]) |
|
|
|
#img("assets/03_erc.png", width: 62%, caption: [ERC-Dialog: 10 Fehler - genau die müssen weg]) |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
#section("Layout-Workflow", note: "Der Standard-Workflow") |
|
|
|
#section("Layout-Workflow", note: "Der Standard-Workflow") |
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Footprints zuweisen & importieren")[ |
|
|
|
#slide(title: "Footprints zuweisen")[ |
|
|
|
- `Werkzeuge → Footprints zuweisen`: Symbol → Gehäuse |
|
|
|
- `Werkzeuge → Footprints zuweisen`: Symbol → Gehäuse |
|
|
|
- Mechanische Maße vorher im Datenblatt prüfen |
|
|
|
- Mechanische Maße vorher im Datenblatt prüfen |
|
|
|
- Pcbnew: `PCB aus Schaltplan aktualisieren` — Bauteile landen auf der Platine |
|
|
|
|
|
|
|
#v(0.5em) |
|
|
|
|
|
|
|
#grid( |
|
|
|
|
|
|
|
columns: (1fr, 1fr), |
|
|
|
|
|
|
|
gutter: 1.2em, |
|
|
|
|
|
|
|
shot("05_footprint_zuweisung", [Dialog „Footprints zuweisen“: Symbol / Footprint / Vorschau]), |
|
|
|
|
|
|
|
shot("06_update_pcb", [Dialog „PCB aus Schaltplan aktualisieren“ mit Änderungsliste]), |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#shot-slide( |
|
|
|
|
|
|
|
"Footprint Chooser", |
|
|
|
|
|
|
|
"assets/05_footprint_assign.png", |
|
|
|
|
|
|
|
height: 255pt, |
|
|
|
|
|
|
|
caption: [Filter + Vorschau: passt das Gehäuse zum Symbol?], |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#shot-slide( |
|
|
|
|
|
|
|
"PCB aus Schaltplan aktualisieren", |
|
|
|
|
|
|
|
"assets/06_update_pcb.png", |
|
|
|
|
|
|
|
height: 255pt, |
|
|
|
|
|
|
|
caption: [`Tools → Update PCB from Schematic` (F8) - Bauteile landen auf der Platine], |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Setup, Umriss & Platzieren")[ |
|
|
|
#slide(title: "Setup, Umriss & Platzieren")[ |
|
|
|
#grid( |
|
|
|
#grid( |
|
|
|
columns: (1.5fr, 1fr), |
|
|
|
columns: (1.5fr, 1fr), |
|
|
|
gutter: 1.4em, |
|
|
|
gutter: 1.4em, |
|
|
|
[ |
|
|
|
[ |
|
|
|
- *Board-Setup*: Netz-Klassen (Signal 0,25 mm · PWR 0,5–0,8 mm), \ |
|
|
|
- *Board-Setup*: Netz-Klassen (Signal 0,25 mm · PWR 0,5-0,8 mm), \ |
|
|
|
Via 0,6/0,3 mm |
|
|
|
Via 0,6/0,3 mm |
|
|
|
- Umriss auf *Edge.Cuts* (z. B. 80 × 50 mm) |
|
|
|
- Umriss auf *Edge.Cuts* (z. B. 80 × 50 mm) |
|
|
|
- Platzieren nach *Signalfluss*: |
|
|
|
- Platzieren nach *Signalfluss*: |
|
|
|
- Stecker & Befestigung zuerst — festpinnen |
|
|
|
- Stecker & Befestigung zuerst - festpinnen |
|
|
|
- ICs hin → Entkopplungs-Cs direkt an die Versorgungspins |
|
|
|
- ICs hin → Entkopplungs-Cs direkt an die Versorgungspins |
|
|
|
], |
|
|
|
], |
|
|
|
shot("07_floorplan", [Pcbnew: Umriss + platzierte Footprints mit Ratsnest]), |
|
|
|
shot("07_floorplan", [Pcbnew: Umriss + platzierte Footprints mit Ratsnest]), |
|
|
|
@ -293,25 +308,21 @@ |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Routen")[ |
|
|
|
#slide(title: "Routen")[ |
|
|
|
#grid( |
|
|
|
- `X` - *kritische Signale zuerst*: Takt · PWM · Analog |
|
|
|
columns: (1.3fr, 1fr), |
|
|
|
|
|
|
|
gutter: 1.4em, |
|
|
|
|
|
|
|
[ |
|
|
|
|
|
|
|
- `X` — *kritische Signale zuerst*: Takt · PWM · Analog |
|
|
|
|
|
|
|
- Kurze Wege, wenige Vias |
|
|
|
- Kurze Wege, wenige Vias |
|
|
|
- `V` beim Routen → Via, Lagewechsel |
|
|
|
- `V` beim Routen → Via, Lagewechsel |
|
|
|
- PWR breiter (Netz-Klasse) · GND → Massefläche |
|
|
|
- PWR breiter (Netz-Klasse) · GND → Massefläche |
|
|
|
- Raster: 1,27 / 0,635 mm (THT) · 0,25 mm (SMD) |
|
|
|
- Raster: 1,27 / 0,635 mm (THT) · 0,25 mm (SMD) |
|
|
|
], |
|
|
|
|
|
|
|
shot( |
|
|
|
|
|
|
|
"08_routing", |
|
|
|
|
|
|
|
[Leiterbahn beim Routen, Lagen-Widget auf „F.Cu“], |
|
|
|
|
|
|
|
tip: [Live-Demo-fähig halten: gleiche Ansicht später am Beamer], |
|
|
|
|
|
|
|
), |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Zonen — GND-Fläche")[ |
|
|
|
#shot-slide( |
|
|
|
|
|
|
|
"Routen in Pcbnew", |
|
|
|
|
|
|
|
"assets/07_routing.png", |
|
|
|
|
|
|
|
height: 250pt, |
|
|
|
|
|
|
|
caption: [F.Cu - die dünnen Linien (Ratsnest) zeigen, welche Verbindungen noch fehlen], |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Zonen - GND-Fläche")[ |
|
|
|
- Werkzeug *Kupferfläche*: Netz *GND* · Lage wählen \ |
|
|
|
- Werkzeug *Kupferfläche*: Netz *GND* · Lage wählen \ |
|
|
|
(4 Layer: In1.GND · 2 Layer: B.Cu) |
|
|
|
(4 Layer: In1.GND · 2 Layer: B.Cu) |
|
|
|
- Thermische Reliefs für Pads |
|
|
|
- Thermische Reliefs für Pads |
|
|
|
@ -322,23 +333,25 @@ |
|
|
|
#shot( |
|
|
|
#shot( |
|
|
|
"09_zone", |
|
|
|
"09_zone", |
|
|
|
[Zonen-Eigenschaften: Netz GND, Lage B.Cu, Füllparameter], |
|
|
|
[Zonen-Eigenschaften: Netz GND, Lage B.Cu, Füllparameter], |
|
|
|
tip: [Rechtsklick auf die Fläche → „Flächen…“], |
|
|
|
tip: [Rechtsklick auf die Fläche → "Flächen..."], |
|
|
|
) |
|
|
|
) |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Prüfen & Exportieren")[ |
|
|
|
#slide(title: "Prüfen & Exportieren")[ |
|
|
|
- *DRC — nie vergessen!* Nach dem Layout + *nochmal vor dem Export* |
|
|
|
- *DRC - nie vergessen!* Nach dem Layout + *nochmal vor dem Export* |
|
|
|
- *3D-Viewer*: kollidieren Gehäuse & Stecker? |
|
|
|
- *3D-Viewer*: kollidieren Gehäuse & Stecker? |
|
|
|
- Export: Gerber X2 + Bohrdaten → ZIP → Fertigung |
|
|
|
- Export: Gerber X2 + Bohrdaten → ZIP → Fertigung |
|
|
|
#v(0.5em) |
|
|
|
#v(0.5em) |
|
|
|
#grid( |
|
|
|
#shot("11_3d_viewer", [3D-Betrachter: fertige Platine mit Bauteilen]) |
|
|
|
columns: (1fr, 1fr), |
|
|
|
|
|
|
|
gutter: 1.2em, |
|
|
|
|
|
|
|
shot("10_drc", [DRC-Dialog, Ergebnisliste „0 Verstöße“]), |
|
|
|
|
|
|
|
shot("11_3d_viewer", [3D-Betrachter: fertige Platine mit Bauteilen]), |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#shot-slide( |
|
|
|
|
|
|
|
"DRC", |
|
|
|
|
|
|
|
"assets/10_drc.png", |
|
|
|
|
|
|
|
height: 195pt, |
|
|
|
|
|
|
|
caption: [16 Warnungen - jede anschauen und verstehen, nicht wegklicken], |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
#section("4-Layer", note: "Stackup, Masse & Versorgung") |
|
|
|
#section("4-Layer", note: "Stackup, Masse & Versorgung") |
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
@ -348,7 +361,7 @@ |
|
|
|
columns: (1.6fr, 1fr), |
|
|
|
columns: (1.6fr, 1fr), |
|
|
|
gutter: 1.4em, |
|
|
|
gutter: 1.4em, |
|
|
|
[ |
|
|
|
[ |
|
|
|
- *4 Lagen als Standard* — Aufpreis klein, Nutzen groß |
|
|
|
- *4 Lagen als Standard* - Aufpreis klein, Nutzen groß |
|
|
|
- Massefläche unter jedem Signal → weniger Abstrahlung |
|
|
|
- Massefläche unter jedem Signal → weniger Abstrahlung |
|
|
|
- Impedanzkontrolle (USB · Ethernet · Funk) |
|
|
|
- Impedanzkontrolle (USB · Ethernet · Funk) |
|
|
|
- Versorgung als eigene Lage |
|
|
|
- Versorgung als eigene Lage |
|
|
|
@ -359,17 +372,26 @@ |
|
|
|
) |
|
|
|
) |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#shot-slide( |
|
|
|
|
|
|
|
"Preis: 2 Lagen", |
|
|
|
|
|
|
|
"assets/13_2layer_jlc.png", |
|
|
|
|
|
|
|
height: 165pt, |
|
|
|
|
|
|
|
caption: [JLCPCB, 50 × 50 mm, 5 Stück: 20,56 \$ - davon 16,56 \$ für "Via Covering", eine Option, die man selten braucht], |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#shot-slide( |
|
|
|
|
|
|
|
"Preis: 4 Lagen", |
|
|
|
|
|
|
|
"assets/13_4layer_jlc.png", |
|
|
|
|
|
|
|
height: 165pt, |
|
|
|
|
|
|
|
caption: [Gleiche Größe: 8,00 \$ (Aktion) - vier Lagen sind hier billiger als zwei], |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Advanced: Stackup in KiCad einrichten")[ |
|
|
|
#slide(title: "Advanced: Stackup in KiCad einrichten")[ |
|
|
|
- Board-Setup → *Stapelaufbau*: Innenlagen anlegen, benennen, Dicken eintragen |
|
|
|
- Board-Setup → *Stapelaufbau*: Innenlagen anlegen, benennen, Dicken eintragen |
|
|
|
- *Impedanz* im selben Dialog: Ziel 50 Ω → empfohlene Bahnbreite |
|
|
|
- *Impedanz* im selben Dialog: Ziel 50 Ω → empfohlene Bahnbreite |
|
|
|
- Netzklassen & Abstände wie gehabt |
|
|
|
- Netzklassen & Abstände wie gehabt |
|
|
|
#v(0.4em) |
|
|
|
#v(0.4em) |
|
|
|
#grid( |
|
|
|
#img("assets/12_stackup.png", width: 92%, caption: [Physical Stackup: hier über "Copper layers" auf 4 Kupferlagen erhöhen]) |
|
|
|
columns: (1fr, 1fr), |
|
|
|
|
|
|
|
gutter: 1.2em, |
|
|
|
|
|
|
|
shot("12_stackup", [Board-Setup → Stapelaufbau: 4 Kupferlagen, Dicken, Dielektrika]), |
|
|
|
|
|
|
|
shot("13_stackup_shop", [4-Layer Setup from JLCPCB]), |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Layout-Aufgaben bei 4 Layern")[ |
|
|
|
#slide(title: "Layout-Aufgaben bei 4 Layern")[ |
|
|
|
@ -377,7 +399,7 @@ |
|
|
|
columns: (1.1fr, 1fr), |
|
|
|
columns: (1.1fr, 1fr), |
|
|
|
gutter: 1.4em, |
|
|
|
gutter: 1.4em, |
|
|
|
[ |
|
|
|
[ |
|
|
|
- *GND-Ebene durchgehend halten* — Schlitze = Rückstromfallen |
|
|
|
- *GND-Ebene durchgehend halten* - Schlitze = Rückstromfallen |
|
|
|
- *GND-Via direkt neben* dem Signal-Via |
|
|
|
- *GND-Via direkt neben* dem Signal-Via |
|
|
|
- *Stitching-Vias* regelmäßig verteilen |
|
|
|
- *Stitching-Vias* regelmäßig verteilen |
|
|
|
- Entkopplung: Pad → Via → Plane, so kurz wie möglich |
|
|
|
- Entkopplung: Pad → Via → Plane, so kurz wie möglich |
|
|
|
@ -395,20 +417,22 @@ |
|
|
|
#section("Praxis-Fragen", note: "Erfahrungswerte fürs erste Board") |
|
|
|
#section("Praxis-Fragen", note: "Erfahrungswerte fürs erste Board") |
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Wie fange ich an?")[ |
|
|
|
#slide(title: "Wie starte ich?")[ |
|
|
|
- *Klein anfangen*: eine Platine, ein Ziel \ |
|
|
|
- *Klein anfangen*: eine Platine, ein Ziel \ |
|
|
|
(z. B. Versorgung + MCU-Modul — das Vortrags-Beispiel) |
|
|
|
(z. B. Versorgung + MCU-Modul - das Vortrags-Beispiel) |
|
|
|
- *Bewährtes kopieren*: Referenzdesigns · Open-Source-Boards |
|
|
|
- *Bewährtes kopieren*: Referenzdesigns · Open-Source-Boards |
|
|
|
- Revision 1 = Lernprojekt: *2–3 Anläufe* sind normal |
|
|
|
- Revision 1 = Lernprojekt: *2-3 Anläufe* sind normal |
|
|
|
|
|
|
|
- Beispiel Busanzeiger: Versorgung · Mikrocontroller · Display-Anbindung |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "USB-C & 5 V — ein gutes Konzept?")[ |
|
|
|
#slide(title: "USB-C & 5 V - ein gutes Konzept?")[ |
|
|
|
- *Ja — guter Standard*: robust · überall verfügbar · nur 5 V |
|
|
|
- *Ja - guter Standard*: robust · überall verfügbar · nur 5 V |
|
|
|
- *CC1 & CC2: je 5,1 kΩ nach GND* \ |
|
|
|
- *CC1 & CC2: je 5,1 kΩ nach GND* \ |
|
|
|
— sonst liefert die Quelle keinen Strom |
|
|
|
- sonst liefert die Quelle keinen Strom |
|
|
|
- A/B-Pins *gespiegelt, nicht gedreht* — Footprint prüfen |
|
|
|
- A/B-Pins *gespiegelt, nicht gedreht* - Footprint prüfen |
|
|
|
- USB-2: A6↔B6 (D+) · A7↔B7 (D−) |
|
|
|
- USB-2: A6↔B6 (D+) · A7↔B7 (D-) |
|
|
|
- VBUS: *nicht zurückeinspeisen* |
|
|
|
- VBUS: *nicht zurückeinspeisen* |
|
|
|
|
|
|
|
- Schützen mit Verpoldiode + ESD-Netzwerk |
|
|
|
#v(0.4em) |
|
|
|
#v(0.4em) |
|
|
|
#src[Rd (5,1 kΩ): USB-IF, USB Type-C Spec] |
|
|
|
#src[Rd (5,1 kΩ): USB-IF, USB Type-C Spec] |
|
|
|
] |
|
|
|
] |
|
|
|
@ -418,7 +442,7 @@ |
|
|
|
- Grundset bringt schon den Großteil: |
|
|
|
- Grundset bringt schon den Großteil: |
|
|
|
- durchgehende *GND-Fläche* (deshalb 4 Layer) |
|
|
|
- durchgehende *GND-Fläche* (deshalb 4 Layer) |
|
|
|
- *Entkopplungs-Cs* an jeden Versorgungspin |
|
|
|
- *Entkopplungs-Cs* an jeden Versorgungspin |
|
|
|
- Einplanen: *2–3 Revisionen* + *Yellow-Wire* für Rev. 1 |
|
|
|
- Einplanen: *2-3 Revisionen* + *Yellow-Wire* für Rev. 1 |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Wie flexibel designen?")[ |
|
|
|
#slide(title: "Wie flexibel designen?")[ |
|
|
|
@ -430,9 +454,9 @@ |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Retter in der Not: 0 Ω & 1 R")[ |
|
|
|
#slide(title: "Retter in der Not: 0 Ω & 1 R")[ |
|
|
|
- *0 Ω in Serie* zu Strom- & heiklen Signalleitungen \ |
|
|
|
- *0 Ω in Serie* zu Strom- & heiklen Signalleitungen \ |
|
|
|
— im Notfall: austauschen · überbrücken |
|
|
|
- im Notfall: austauschen · überbrücken |
|
|
|
- Gehäuse: *0805 / 0603 — nicht kleiner* (handlötbar) |
|
|
|
- Gehäuse: *0805 / 0603 - nicht kleiner* (handlötbar) |
|
|
|
- *1 R in 0805 als Sicherung* — geht durch statt abzufackeln |
|
|
|
- *1 R in 0805 als Sicherung* - geht durch statt abzufackeln |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
@ -440,35 +464,35 @@ |
|
|
|
// =================================================================== |
|
|
|
// =================================================================== |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Bestückung: klein nach groß")[ |
|
|
|
#slide(title: "Bestückung: klein nach groß")[ |
|
|
|
- *Klein nach groß* — sonst kommt der Lötkolben nicht mehr dran |
|
|
|
- *Klein nach groß* - sonst kommt der Lötkolben nicht mehr dran |
|
|
|
- *Erst SMD, dann THT* — Stecker blockieren sonst SMD-Plätze |
|
|
|
- *Erst SMD, dann THT* - Stecker blockieren sonst SMD-Plätze |
|
|
|
- *Zoom nicht übertreiben*: Bildschirm ≠ Realität |
|
|
|
- *Zoom nicht übertreiben*: Bildschirm ≠ Realität |
|
|
|
- SMD in einem Rutsch: Lötpaste → setzen → Hotplate / Heißluft |
|
|
|
- SMD in einem Rutsch: Lötpaste → setzen → Hotplate / Heißluft |
|
|
|
- Bestückungsdruck? *Nein* — erst ab ~10 000 Stück |
|
|
|
- Bestückungsdruck? *Nein* - erst ab ~1 000 Stück |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Equipment — was lohnt sich?")[ |
|
|
|
#slide(title: "Equipment - was lohnt sich?")[ |
|
|
|
#grid( |
|
|
|
#grid( |
|
|
|
columns: (1fr, 1fr), |
|
|
|
columns: (1fr, 1fr), |
|
|
|
gutter: 1.2em, |
|
|
|
gutter: 1.2em, |
|
|
|
panel(c: accent)[ |
|
|
|
panel(c: accent)[ |
|
|
|
*Kaufen (ja)* |
|
|
|
*Kaufen (ja)* |
|
|
|
- *Lötkolben* — temperaturgeregelt, feine Spitzen |
|
|
|
- *Lötkolben* - temperaturgeregelt, feine Spitzen |
|
|
|
- *Hotplate* — SMD-Lötpaste im kleinen Reflow |
|
|
|
- *Hotplate* - SMD-Lötpaste im kleinen Reflow |
|
|
|
- *Heißluftfön* — Rework · QFN/DFN |
|
|
|
- *Heißluftfön* - Rework · QFN/DFN |
|
|
|
- *Lötpaste & Lötzinn* |
|
|
|
- *Lötpaste & Lötzinn* |
|
|
|
], |
|
|
|
], |
|
|
|
panel(c: ember)[ |
|
|
|
panel(c: ember)[ |
|
|
|
*Eher nicht / später* |
|
|
|
*Eher nicht / später* |
|
|
|
- Reflow-Ofen — Hotplate reicht |
|
|
|
- Reflow-Ofen - Hotplate reicht |
|
|
|
- Automatischer Picker — Pinzette tut's |
|
|
|
- Automatischer Picker - Pinzette tut's |
|
|
|
- Großes Mikroskop — USB-Mikroskop reicht |
|
|
|
- Großes Mikroskop - USB-Mikroskop reicht |
|
|
|
], |
|
|
|
], |
|
|
|
) |
|
|
|
) |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Factory-Bestückung (PCBA)")[ |
|
|
|
#slide(title: "Factory-Bestückung (PCBA)")[ |
|
|
|
- *Lohnt sich — öfter als gedacht* (JLCPCB · AISLER) |
|
|
|
- *Lohnt sich - öfter als gedacht* (JLCPCB · AISLER) |
|
|
|
- V. a. bei *feinen Gehäusen*: 0402 · QFN · BGA |
|
|
|
- V. a. bei *feinen Gehäusen*: 0402 · QFN · BGA |
|
|
|
- Aus KiCad: *BOM* + *Pick-and-Place* \ |
|
|
|
- Aus KiCad: *BOM* + *Pick-and-Place* \ |
|
|
|
(`Datei → Fertigungsoutputs`) |
|
|
|
(`Datei → Fertigungsoutputs`) |
|
|
|
@ -487,7 +511,7 @@ |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Gerber & Bohrdaten")[ |
|
|
|
#slide(title: "Gerber & Bohrdaten")[ |
|
|
|
- `Fertigungsoutputs → Plotten…`: *Gerber X2* |
|
|
|
- `Fertigungsoutputs → Plotten...`: *Gerber X2* |
|
|
|
- Kupfer · Lötstopp · Bestückungsdruck · Umriss |
|
|
|
- Kupfer · Lötstopp · Bestückungsdruck · Umriss |
|
|
|
- Bohrdaten (Excellon) separat → beides ins ZIP |
|
|
|
- Bohrdaten (Excellon) separat → beides ins ZIP |
|
|
|
- Kontrolle in *GerbView*: jede Lage durchschauen |
|
|
|
- Kontrolle in *GerbView*: jede Lage durchschauen |
|
|
|
@ -506,16 +530,16 @@ |
|
|
|
stroke: (bottom: 0.5pt + luma(210)), |
|
|
|
stroke: (bottom: 0.5pt + luma(210)), |
|
|
|
inset: (x: 4pt, y: 2.5pt), |
|
|
|
inset: (x: 4pt, y: 2.5pt), |
|
|
|
[*Stückzahl*], [*Richtwert (kleine 4-Layer-Platine, China)*], |
|
|
|
[*Stückzahl*], [*Richtwert (kleine 4-Layer-Platine, China)*], |
|
|
|
[1–5], [ca. 10–25 € — fast nur Grundgebühr, Panel & Versand], |
|
|
|
[1-5], [ca. 10-25 € - fast nur Grundgebühr, Panel & Versand], |
|
|
|
[10], [kaum teurer als 5 — Setup einmal bezahlt], |
|
|
|
[10], [kaum teurer als 5 - Setup einmal bezahlt], |
|
|
|
[100], [ca. 1–2 € pro Stück], |
|
|
|
[100], [ca. 1-2 € pro Stück], |
|
|
|
[1000], [ca. 0,3–0,8 € pro Stück], |
|
|
|
[1000], [ca. 0,3-0,8 € pro Stück], |
|
|
|
) |
|
|
|
) |
|
|
|
#v(0.4em) |
|
|
|
#v(0.4em) |
|
|
|
- *Kleinmengen = Fixkosten*: Setup · Panel · Versand |
|
|
|
- *Kleinmengen = Fixkosten*: Setup · Panel · Versand |
|
|
|
- Preis-Treiber: *Fläche · Lagenzahl · Mindestabstände* · Menge |
|
|
|
- Preis-Treiber: *Fläche · Lagenzahl · Mindestabstände* · Menge |
|
|
|
#v(0.3em) |
|
|
|
#v(0.3em) |
|
|
|
#src[Richtwerte — aktuell immer im Preisrechner prüfen (jlcpcb.com, aisler.net)] |
|
|
|
#src[Richtwerte - aktuell immer im Preisrechner prüfen (jlcpcb.com, aisler.net)] |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "China oder EU?")[ |
|
|
|
#slide(title: "China oder EU?")[ |
|
|
|
@ -523,14 +547,15 @@ |
|
|
|
columns: (1fr, 1fr), |
|
|
|
columns: (1fr, 1fr), |
|
|
|
gutter: 1.2em, |
|
|
|
gutter: 1.2em, |
|
|
|
panel(c: ember)[ |
|
|
|
panel(c: ember)[ |
|
|
|
*China — JLCPCB, PCBWay, SEEED* |
|
|
|
*China - JLCPCB, PCBWay, SEEED* |
|
|
|
- sehr günstig · riesige Auswahl |
|
|
|
- sehr günstig · riesige Auswahl |
|
|
|
- Versand 1–2 Wochen |
|
|
|
- Versand 1-2 Wochen |
|
|
|
- lange Transportwege |
|
|
|
- lange Transportwege |
|
|
|
], |
|
|
|
], |
|
|
|
panel(c: accent)[ |
|
|
|
panel(c: accent)[ |
|
|
|
*EU — AISLER, Beta layout, Würth* |
|
|
|
*EU - AISLER, Beta layout, Würth* |
|
|
|
- Faktor 2–5 teurer · schnell & unkompliziert |
|
|
|
- Direkt sichtbar? Faktor 2-5 teurer · schnell & unkompliziert |
|
|
|
|
|
|
|
- Eigentlich: Preisunterschied egal |
|
|
|
- deutschsprachiger Support · Gewährleistung |
|
|
|
- deutschsprachiger Support · Gewährleistung |
|
|
|
- kurze Wege → besser für Umwelt & Klima |
|
|
|
- kurze Wege → besser für Umwelt & Klima |
|
|
|
], |
|
|
|
], |
|
|
|
@ -541,40 +566,33 @@ |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Screenshot-Checkliste")[ |
|
|
|
#slide(title: "Screenshot-Checkliste")[ |
|
|
|
#set text(size: 11.5pt) |
|
|
|
#set text(size: 11.5pt) |
|
|
|
Noch fehlende Aufnahmen — machen, als `assets/<name>.png` speichern, \ |
|
|
|
Noch fehlende Aufnahmen - machen, als `assets/<name>.png` speichern, \ |
|
|
|
`shot(...)` durch `img(...)` ersetzen (01–04 sind drin): |
|
|
|
`shot(...)` durch `img(...)` ersetzen: |
|
|
|
#v(0.4em) |
|
|
|
#v(0.4em) |
|
|
|
#table( |
|
|
|
#table( |
|
|
|
columns: (auto, auto, 1fr), |
|
|
|
columns: (auto, auto, 1fr), |
|
|
|
stroke: (bottom: 0.5pt + luma(210)), |
|
|
|
stroke: (bottom: 0.5pt + luma(210)), |
|
|
|
inset: (x: 4pt, y: 2.5pt), |
|
|
|
inset: (x: 4pt, y: 2.5pt), |
|
|
|
[*Nr*], [*Datei*], [*Motiv*], |
|
|
|
[*Nr*], [*Datei*], [*Motiv*], |
|
|
|
[05], [footprint_zuweisung], [Dialog „Footprints zuweisen“], |
|
|
|
|
|
|
|
[06], [update_pcb], [Dialog „PCB aus Schaltplan aktualisieren“], |
|
|
|
|
|
|
|
[07], [floorplan], [Pcbnew: Umriss + platzierte Footprints + Ratsnest], |
|
|
|
[07], [floorplan], [Pcbnew: Umriss + platzierte Footprints + Ratsnest], |
|
|
|
[08], [routing], [Routing aktiv, Lagen-Widget unten links], |
|
|
|
|
|
|
|
[09], [zone], [Zonen-Eigenschaften (GND, B.Cu)], |
|
|
|
[09], [zone], [Zonen-Eigenschaften (GND, B.Cu)], |
|
|
|
[10], [drc], [DRC-Dialog mit Ergebnis], |
|
|
|
|
|
|
|
[11], [3d_viewer], [3D-Ansicht der fertigen Platine], |
|
|
|
[11], [3d_viewer], [3D-Ansicht der fertigen Platine], |
|
|
|
[12], [stackup], [Board-Setup → Stapelaufbau mit 4 Kupferlagen], |
|
|
|
|
|
|
|
[13], [impedanz], [Impedanzwerte im Stapelaufbau-Dialog], |
|
|
|
|
|
|
|
[14], [4l_fertig], [4-Layer-Board, nur In1.GND sichtbar], |
|
|
|
|
|
|
|
[15], [plot], [Plot-Dialog mit Gerber X2 und Layer-Liste], |
|
|
|
[15], [plot], [Plot-Dialog mit Gerber X2 und Layer-Liste], |
|
|
|
[16], [gerbview], [GerbView mit geladenen Lagen], |
|
|
|
[16], [gerbview], [GerbView mit geladenen Lagen], |
|
|
|
) |
|
|
|
) |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Quellen & Links")[ |
|
|
|
#slide(title: "Quellen & Links")[ |
|
|
|
- `docs.kicad.org` — Handbuch & Getting Started (de/en) |
|
|
|
- `docs.kicad.org` - Handbuch & Getting Started (de/en) |
|
|
|
- `kicad.org` — Downloads · Release Notes · Blog |
|
|
|
- `kicad.org` - Downloads · Release Notes · Blog |
|
|
|
- `forum.kicad.info` — Community-Forum |
|
|
|
- `forum.kicad.info` - Community-Forum |
|
|
|
- Design-Rules der Fertigung (JLCPCB · PCBWay · AISLER) \ |
|
|
|
- Design-Rules der Fertigung (JLCPCB · PCBWay · AISLER) \ |
|
|
|
— vor dem Layout ins Board-Setup |
|
|
|
- vor dem Layout ins Board-Setup |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
#slide(title: "Diskussion")[ |
|
|
|
#slide(title: "Diskussion")[ |
|
|
|
- Was zeigen wir *live*? (Layout-Demo ~15 min) |
|
|
|
- Was zeigen wir *live*? (Layout-Demo ~15 min) |
|
|
|
- Wovon wollt ihr mehr? Kosten · PCBA · EMV · Impedanz |
|
|
|
- Wovon wollt ihr mehr? Kosten · PCBA · EMV · Impedanz |
|
|
|
#v(1em) |
|
|
|
#v(1em) |
|
|
|
#align(center, text(size: 1.3em, weight: "bold")[Danke — Fragen?]) |
|
|
|
#align(center, text(size: 1.3em, weight: "bold")[Danke - Fragen?]) |
|
|
|
] |
|
|
|
] |
|
|
|
|