manual edits+usb

main
dev 3 weeks ago
parent 5c23df573c
commit 3fcc0285b3
  1. BIN
      assets/USB-C-Breakout_Schematic-_PD5V.png
  2. BIN
      assets/usb_2.png
  3. 150
      presentation.typ

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

@ -86,29 +86,32 @@
align(horizon, text(size: 8.5pt)[#note]), align(horizon, text(size: 8.5pt)[#note]),
) )
#let cu2 = rgb("#d5501795")
#let cu3 = rgb("#eb6228")
// 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: (0.5fr, 1fr),
gutter: 1.8em, gutter: .5em,
_stack( _stack(
_layer(mask.lighten(40%), 8pt, round: (top-left: 2pt, top-right: 2pt)), _layer(mask.lighten(40%), 8pt, round: (top-left: 2pt, top-right: 2pt)),
_layer(cu, 11pt), _layer(cu, 11pt),
_layer(prepreg, 7pt), _layer(prepreg, 7pt),
_layer(accent, 11pt), _layer(cu2, 11pt),
_layer(fr4, 18pt), _layer(fr4, 18pt),
_layer(accent-soft, 11pt), _layer(cu3, 11pt),
_layer(prepreg, 7pt), _layer(prepreg, 7pt),
_layer(cu, 11pt), _layer(cu, 11pt),
_layer(mask.lighten(40%), 8pt, round: (bottom-left: 2pt, bottom-right: 2pt)), _layer(mask.lighten(40%), 8pt, round: (bottom-left: 2pt, bottom-right: 2pt)),
), ),
grid( grid(
row-gutter: 3pt, row-gutter: 4pt,
_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(cu2, [In1.GND - Masse]),
_sw(fr4, [FR4-Kern ≈ 1,0 mm]), _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?")[ #slide(title: "Was ist KiCad?")[
#grid( #grid(
columns: (1fr, 1.35fr), columns: (4fr, 1.35fr),
gutter: 1.6em, gutter: 1.6em,
[ [
- Leiterplattendesignsoftware - Leiterplattendesignsoftware
@ -217,16 +220,18 @@
- git support - Projektdateien sind Text - git support - Projektdateien sind Text
- Windows / Linux / Mac - Windows / Linux / Mac
- vom CERN, open source - vom CERN, open source
], - Eigentlich eine Sammlung von Programmen
img("assets/01_projectmanager.png", width: 100%), - Python-Api für Automation
]
) )
#img("assets/01_projectmanager.png", width: 120%)
] ]
#slide(title: "Werkzeugkette")[ #slide(title: "Werkzeugkette")[
#workflow-pipeline() #workflow-pipeline()
#v(0.5em) #v(0.5em)
- Später etwas geändert? Ein Klick: Schaltplan → Platine aktualisieren - 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")[ #slide(title: "Projekt & Schaltplan")[
@ -239,7 +244,7 @@
] ]
#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: 16em))
#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.])
] ]
@ -253,6 +258,7 @@
- "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
- LCSC gibts als Plugin
- Schönster Schaltplan nützt nichts *ohne Bauteile* - 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]), 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")[ #slide(title: "Setup, Umriss & Platzieren")[
#grid( #grid(
columns: (1.5fr, 1fr), columns: (3.5fr, 0fr),
gutter: 1.4em, 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) - 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*: - Platzieren nach *Signalfluss*:
- Stecker & Befestigung zuerst - festpinnen - Stecker & Befestigung zuerst - als fix markieren
- ICs hin → Entkopplungs-Cs direkt an die Versorgungspins - 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) (Entkopplung · Quarze · Spannungsregler)
- Nach jeder Änderung: `B` (Zonen auffüllen) → erst dann DRC - Nach jeder Änderung: `B` (Zonen auffüllen) → erst dann DRC
#v(0.5em) #v(0.5em)
#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?
- Hilft aber auch nur wenn die 3D-Modelle korrekt sind
- Export: Gerber X2 + Bohrdaten → ZIP → Fertigung - Export: Gerber X2 + Bohrdaten → ZIP → Fertigung
#v(0.5em) #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( #shot-slide(
"DRC", "DRC",
"assets/10_drc.png", "assets/10_drc.png",
height: 210pt, 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), columns: (1.6fr, 1fr),
gutter: 1.4em, 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 - Massefläche unter jedem Signal → weniger Abstrahlung
- Impedanzkontrolle (USB · Ethernet · Funk) - Impedanzkontrolle (USB · Ethernet · Funk)
- Tools in Kicad!
- Versorgung als eigene Lage - Versorgung als eigene Lage
- 2 Lagen: nur Adapter- & Breakout-Boards - 2 Lagen: nur Adapter- & Breakout-Boards
- Billigvariante des Stackups reicht fast immer - Billigvariante des Stackups reicht fast immer
@ -372,19 +386,19 @@
) )
] ]
#shot-slide( // #shot-slide(
"Preis: 2 Lagen", // "Preis: 2 Lagen",
"assets/13_2layer_jlc.png", // "assets/13_2layer_jlc.png",
height: 165pt, // 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], // 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( // #shot-slide(
"Preis: 4 Lagen", // "Preis: 4 Lagen",
"assets/13_4layer_jlc.png", // "assets/13_4layer_jlc.png",
height: 165pt, // height: 165pt,
caption: [Gleiche Größe: 8,00 \$ (Aktion) - vier Lagen sind hier billiger als zwei], // 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
@ -393,24 +407,24 @@
#img("assets/12_stackup.png", width: 80%, caption: [Physical Stackup: hier über "Copper layers" auf 4 Kupferlagen erhöhen]) #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")[ // #slide(title: "Layout-Aufgaben bei 4 Layern")[
#grid( // #grid(
columns: (1.1fr, 1fr), // columns: (2.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
- Versorgung: Via-Paare an In2 // - Versorgung: Via-Paare an In2
], // ],
shot( // // shot(
"14_4l_fertig", // // "14_4l_fertig",
[4-Layer-Board, nur In1.GND sichtbar: durchgehende Massefläche mit Stitching-Vias], // // [4-Layer-Board, nur In1.GND sichtbar: durchgehende Massefläche mit Stitching-Vias],
tip: [Lagen-Liste links: nur In1.Cu + Vias einblenden], // // tip: [Lagen-Liste links: nur In1.Cu + Vias einblenden],
), // // ),
) // )
] // ]
// =================================================================== // ===================================================================
#section("Praxis-Fragen", note: "Erfahrungswerte fürs erste Board") #section("Praxis-Fragen", note: "Erfahrungswerte fürs erste Board")
@ -420,8 +434,12 @@
- *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
- Review von Bekannten anfragen
- z.B. Mitglieder im Chaos-Verein
- Revision 1 = Lernprojekt: *2-3 Anläufe* sind normal - Revision 1 = Lernprojekt: *2-3 Anläufe* sind normal
- Beispiel Busanzeiger: Versorgung · Mikrocontroller · Display-Anbindung - Beispiel Busanzeiger: Versorgung · Mikrocontroller · Display-Anbindung
] ]
#slide(title: "USB-C & 5 V - ein gutes Konzept?")[ #slide(title: "USB-C & 5 V - ein gutes Konzept?")[
@ -430,10 +448,18 @@
- 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: *NIE zurückeinspeisen*
- Schützen mit Verpoldiode + ESD-Netzwerk - Schützen mit Verpoldiode + ESD-Netzwerk
#v(0.4em) #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?")[ #slide(title: "EMV als Anfänger?")[
@ -467,7 +493,8 @@
- *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 ~1 000 Stück - Bestückungsdruck?
- Lohnt sich so wirklich - erst ab ~1 000 Stück
] ]
#slide(title: "Equipment - was lohnt sich?")[ #slide(title: "Equipment - was lohnt sich?")[
@ -496,6 +523,8 @@
- Aus KiCad: *BOM* + *Pick-and-Place* \ - Aus KiCad: *BOM* + *Pick-and-Place* \
(`Datei → Fertigungsoutputs`) (`Datei → Fertigungsoutputs`)
- Split: *SMD ab Werk · THT & Stecker selbst* - 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 - `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
- Tools:
- https://github.com/hulryung/kicad-lcsc-manager
- https://github.com/dsa-t/jlc-kicad-lib-loader
] ]
#slide(title: "Diskussion")[ #slide(title: "Diskussion")[

Loading…
Cancel
Save