diff --git a/assets/USB-C-Breakout_Schematic-_PD5V.png b/assets/USB-C-Breakout_Schematic-_PD5V.png new file mode 100644 index 0000000..e52c775 Binary files /dev/null and b/assets/USB-C-Breakout_Schematic-_PD5V.png differ diff --git a/assets/usb_2.png b/assets/usb_2.png new file mode 100644 index 0000000..1e7a6ca Binary files /dev/null and b/assets/usb_2.png differ diff --git a/presentation.typ b/presentation.typ index 4257960..6eb7544 100644 --- a/presentation.typ +++ b/presentation.typ @@ -86,29 +86,32 @@ align(horizon, text(size: 8.5pt)[#note]), ) +#let cu2 = rgb("#d5501795") +#let cu3 = rgb("#eb6228") + // Querschnitt 4-Layer: Stack links, Legende rechts. #let stack-4() = grid( - columns: (1.15fr, 1fr), - gutter: 1.8em, + columns: (0.5fr, 1fr), + gutter: .5em, _stack( _layer(mask.lighten(40%), 8pt, round: (top-left: 2pt, top-right: 2pt)), _layer(cu, 11pt), _layer(prepreg, 7pt), - _layer(accent, 11pt), + _layer(cu2, 11pt), _layer(fr4, 18pt), - _layer(accent-soft, 11pt), + _layer(cu3, 11pt), _layer(prepreg, 7pt), _layer(cu, 11pt), _layer(mask.lighten(40%), 8pt, round: (bottom-left: 2pt, bottom-right: 2pt)), ), grid( - row-gutter: 3pt, + row-gutter: 4pt, _sw(mask.lighten(40%), [Lötstopp]), _sw(cu, [Kupfer 35 µm - Signale]), _sw(prepreg, [Prepreg ≈ 0,2 mm]), - _sw(accent, [In1.GND - Masse]), + _sw(cu2, [In1.GND - Masse]), _sw(fr4, [FR4-Kern ≈ 1,0 mm]), - _sw(accent-soft, [In2.PWR - Versorgung]), + _sw(cu3, [In2.PWR - Versorgung]), ), ) @@ -209,7 +212,7 @@ #slide(title: "Was ist KiCad?")[ #grid( - columns: (1fr, 1.35fr), + columns: (4fr, 1.35fr), gutter: 1.6em, [ - Leiterplattendesignsoftware @@ -217,16 +220,18 @@ - git support - Projektdateien sind Text - Windows / Linux / Mac - vom CERN, open source - ], - img("assets/01_projectmanager.png", width: 100%), + - Eigentlich eine Sammlung von Programmen + - Python-Api für Automation + ] ) + #img("assets/01_projectmanager.png", width: 120%) ] #slide(title: "Werkzeugkette")[ #workflow-pipeline() #v(0.5em) - Später etwas geändert? Ein Klick: Schaltplan → Platine aktualisieren - - Erst ERC sauber, dann Layout + - Erst Electrical Rule check sauber haben, dann Layouten ] #slide(title: "Projekt & Schaltplan")[ @@ -239,7 +244,7 @@ ] #slide(title: "Beispiel: gruppierte Schaltung")[ - #align(center, image("assets/02_schaltplan.png", height: 278pt)) + #align(center, image("assets/02_schaltplan.png", height: 16em)) #v(0.2em) #align(center, text(size: 0.75em, fill: luma(110))[Jede Funktionsgruppe bekommt ihren eigenen Kasten - so bleibt der Plan lesbar.]) ] @@ -253,6 +258,7 @@ - "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 - LCSC-Nummer als Feld ins Symbol → fertige Stückliste + - LCSC gibts als Plugin - Schönster Schaltplan nützt nichts *ohne Bauteile* ], img("assets/04_properties.png", width: 100%, caption: [Symbol-Eigenschaften: Felder, z. B. für die LCSC-Nummer]), @@ -293,17 +299,23 @@ #slide(title: "Setup, Umriss & Platzieren")[ #grid( - columns: (1.5fr, 1fr), + columns: (3.5fr, 0fr), gutter: 1.4em, [ - - *Board-Setup*: Netz-Klassen (Signal 0,25 mm · PWR 0,5-0,8 mm), \ - Via 0,6/0,3 mm - Umriss auf *Edge.Cuts* (z. B. 80 × 50 mm) + - *Board-Setup* (Standard): + - Signal 0,25 mm · PWR 0,5-0,8 mm + - Via 0,6/0,3 mm - Platzieren nach *Signalfluss*: - - Stecker & Befestigung zuerst - festpinnen - - ICs hin → Entkopplungs-Cs direkt an die Versorgungspins + - Stecker & Befestigung zuerst - als fix markieren + - Dann Bauteile grob zusammenschieben wie auf dem Schaltplan gruppiert + - Entkopplungs-Cs direkt an die Versorgungspins + - *Platinenbeschriftung*: auf wichtige Eckpunkte reduzieren + - z.B. Stecker-Polarität + - max Spannung + - Versionierung ], - shot("07_floorplan", [Pcbnew: Umriss + platzierte Footprints mit Ratsnest]), + // shot("07_floorplan", [Pcbnew: Umriss + platzierte Footprints mit Ratsnest]), ) ] @@ -330,26 +342,27 @@ (Entkopplung · Quarze · Spannungsregler) - Nach jeder Änderung: `B` (Zonen auffüllen) → erst dann DRC #v(0.5em) - #shot( - "09_zone", - [Zonen-Eigenschaften: Netz GND, Lage B.Cu, Füllparameter], - tip: [Rechtsklick auf die Fläche → "Flächen..."], - ) + // #shot( + // "09_zone", + // [Zonen-Eigenschaften: Netz GND, Lage B.Cu, Füllparameter], + // tip: [Rechtsklick auf die Fläche → "Flächen..."], + // ) ] #slide(title: "Prüfen & Exportieren")[ - *DRC - nie vergessen!* Nach dem Layout + *nochmal vor dem Export* - *3D-Viewer*: kollidieren Gehäuse & Stecker? + - Hilft aber auch nur wenn die 3D-Modelle korrekt sind - Export: Gerber X2 + Bohrdaten → ZIP → Fertigung #v(0.5em) - #shot("11_3d_viewer", [3D-Betrachter: fertige Platine mit Bauteilen]) + // #shot("11_3d_viewer", [3D-Betrachter: fertige Platine mit Bauteilen]) ] #shot-slide( "DRC", "assets/10_drc.png", height: 210pt, - caption: [16 Warnungen - jede anschauen und verstehen, nicht wegklicken], + caption: [16 Warnungen - jede anschauen und verstehen, nicht sofort wegklicken], ) // =================================================================== @@ -361,9 +374,10 @@ columns: (1.6fr, 1fr), gutter: 1.4em, [ - - *4 Lagen als Standard* - Aufpreis klein, Nutzen groß + - *4 Lagen als Standard* - Aufpreis klein (oder nicht vorhanden), Nutzen groß - Massefläche unter jedem Signal → weniger Abstrahlung - Impedanzkontrolle (USB · Ethernet · Funk) + - Tools in Kicad! - Versorgung als eigene Lage - 2 Lagen: nur Adapter- & Breakout-Boards - Billigvariante des Stackups reicht fast immer @@ -372,19 +386,19 @@ ) ] -#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: 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], -) +// #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")[ - Board-Setup → *Stapelaufbau*: Innenlagen anlegen, benennen, Dicken eintragen @@ -393,24 +407,24 @@ #img("assets/12_stackup.png", width: 80%, caption: [Physical Stackup: hier über "Copper layers" auf 4 Kupferlagen erhöhen]) ] -#slide(title: "Layout-Aufgaben bei 4 Layern")[ - #grid( - columns: (1.1fr, 1fr), - gutter: 1.4em, - [ - - *GND-Ebene durchgehend halten* - Schlitze = Rückstromfallen - - *GND-Via direkt neben* dem Signal-Via - - *Stitching-Vias* regelmäßig verteilen - - Entkopplung: Pad → Via → Plane, so kurz wie möglich - - Versorgung: Via-Paare an In2 - ], - shot( - "14_4l_fertig", - [4-Layer-Board, nur In1.GND sichtbar: durchgehende Massefläche mit Stitching-Vias], - tip: [Lagen-Liste links: nur In1.Cu + Vias einblenden], - ), - ) -] +// #slide(title: "Layout-Aufgaben bei 4 Layern")[ +// #grid( +// columns: (2.1fr, 1fr), +// gutter: 1.4em, +// [ +// - *GND-Ebene durchgehend halten* - Schlitze = Rückstromfallen +// - *GND-Via direkt neben* dem Signal-Via +// - *Stitching-Vias* regelmäßig verteilen +// - Entkopplung: Pad → Via → Plane, so kurz wie möglich +// - Versorgung: Via-Paare an In2 +// ], +// // shot( +// // "14_4l_fertig", +// // [4-Layer-Board, nur In1.GND sichtbar: durchgehende Massefläche mit Stitching-Vias], +// // tip: [Lagen-Liste links: nur In1.Cu + Vias einblenden], +// // ), +// ) +// ] // =================================================================== #section("Praxis-Fragen", note: "Erfahrungswerte fürs erste Board") @@ -420,8 +434,12 @@ - *Klein anfangen*: eine Platine, ein Ziel \ (z. B. Versorgung + MCU-Modul - das Vortrags-Beispiel) - *Bewährtes kopieren*: Referenzdesigns · Open-Source-Boards + - Review von Bekannten anfragen + - z.B. Mitglieder im Chaos-Verein + - Revision 1 = Lernprojekt: *2-3 Anläufe* sind normal - Beispiel Busanzeiger: Versorgung · Mikrocontroller · Display-Anbindung + ] #slide(title: "USB-C & 5 V - ein gutes Konzept?")[ @@ -430,10 +448,18 @@ - sonst liefert die Quelle keinen Strom - A/B-Pins *gespiegelt, nicht gedreht* - Footprint prüfen - USB-2: A6↔B6 (D+) · A7↔B7 (D-) - - VBUS: *nicht zurückeinspeisen* + - VBUS: *NIE zurückeinspeisen* - Schützen mit Verpoldiode + ESD-Netzwerk #v(0.4em) - #src[Rd (5,1 kΩ): USB-IF, USB Type-C Spec] + #grid( + columns: (1.6fr, 1fr), + gutter: 1.4em, + [ + img("assets/USB-C-Breakout_Schematic-_PD5V.png", width: 50%), + img("assets/usb_2.png", width: 50%) + ] + ) + // #src[Rd (5,1 kΩ): USB-IF, USB Type-C Spec] ] #slide(title: "EMV als Anfänger?")[ @@ -467,7 +493,8 @@ - *Erst SMD, dann THT* - Stecker blockieren sonst SMD-Plätze - *Zoom nicht übertreiben*: Bildschirm ≠ Realität - SMD in einem Rutsch: Lötpaste → setzen → Hotplate / Heißluft - - Bestückungsdruck? *Nein* - erst ab ~1 000 Stück + - Bestückungsdruck? + - Lohnt sich so wirklich - erst ab ~1 000 Stück ] #slide(title: "Equipment - was lohnt sich?")[ @@ -496,6 +523,8 @@ - Aus KiCad: *BOM* + *Pick-and-Place* \ (`Datei → Fertigungsoutputs`) - Split: *SMD ab Werk · THT & Stecker selbst* + - HTML-Bom-Viewer: Ein Traum-Werkzeug zum bestücken + - mit Abhakfunktion und Bauteilfinder ] // =================================================================== @@ -587,6 +616,9 @@ - `forum.kicad.info` - Community-Forum - Design-Rules der Fertigung (JLCPCB · PCBWay · AISLER) \ - vor dem Layout ins Board-Setup + - Tools: + - https://github.com/hulryung/kicad-lcsc-manager + - https://github.com/dsa-t/jlc-kicad-lib-loader ] #slide(title: "Diskussion")[