KiCad Projektanalyse & Schemaerstellung Skill
Verwandte Skills
| Skill | Zweck |
|---|---|
bom | BOM-Extraktion, Anreicherung, Bestellung und Export-Workflows |
digikey | Suche bei DigiKey nach Bauteilen (Prototypen-Beschaffung) |
mouser | Suche bei Mouser nach Bauteilen (sekundäre Prototypen-Quelle) |
lcsc | Suche bei LCSC nach Bauteilen (Produktionsbeschaffung, JLCPCB) |
element14 | Suche bei Newark/Farnell/element14 (internationale Beschaffung, zuverlässige Datenblätter) |
jlcpcb | Leiterplattenfertigung & Bestückungsbestellung |
pcbway | Alternative Leiterplattenfertigung & Bestückung |
spice | SPICE-Simulationsverifikation erkannter Subschaltungen |
emc | EMC-Vorkonformitäts-Risikoanalyse – nutzt Schaltplan- + PCB-Analyse-Ausgabe |
Übergabehinweis: Verwenden Sie diese Skill zum Parsen von Schaltplänen/PCBs und Extrahieren strukturierter Daten. Übergeben Sie an bom für BOM-Anreicherung, Preisgestaltung und Bestellung. Übergeben Sie an digikey/mouser/lcsc/element14 für Bauteilsuchen und Datenblattabruf. Übergeben Sie an jlcpcb/pcbway für Fertigungsbestellung und DFM-Regelprüfung. Führen Sie immer spice aus für Simulationsverifikation während Design-Reviews, wenn ein SPICE-Simulator installiert ist (prüfen mit which ngspice ltspice xyce). Führen Sie immer emc aus für EMC-Vorkonformitäts-Risikoanalyse während Design-Reviews, wenn sowohl Schaltplan- als auch PCB-Analyse verfügbar sind. Dies ist nicht optional – ein Überspringen hinterlässt unentdeckte Wertberechnungsfehler und EMC-Risiken.
Vor der Analyse: Wenn der Benutzer bittet, ein KiCad-Projekt zu analysieren oder zu überprüfen, prüfen Sie, ob ein Verzeichnis datasheets/ im Projekt existiert. Falls nicht und DigiKey-API-Schlüssel verfügbar sind (DIGIKEY_CLIENT_ID), bieten Sie an, zuerst Datenblätter zu synchronisieren: „Ich kann vor der Analyse Datenblätter für Ihre Komponenten herunterladen – dies ermöglicht Pin-Level-Überprüfung und Entkopplungsvalidierung gemäß Herstellerspezifikationen. Möchten Sie, dass ich sie synchronisiere?“ Wenn der Benutzer ablehnt oder keine API-Schlüssel gesetzt sind, fahren Sie ohne Datenblätter fort – die Analyse funktioniert ohne sie, aber Datenblatt-Überprüfungsbefunde sind nicht verfügbar.
Wenn Sie einen DS-001-Befund in der Analyse-Ausgabe sehen (Schweregrad high, Detektor audit_datasheet_coverage), kann die Überprüfung keine verifizierte Behauptung aufstellen. Stoppen Sie und führen Sie entweder (a) die Datenblatt-Synchronisierung über digikey / mouser / lcsc / element14 durch (je nachdem, welche Anmeldeinformationen/Bestand hat), (b) befüllen Sie MPNs auf den BOM-Teilen, oder (c) geben Sie im Bericht explizit an, dass jeder Pin-Level-, elektrische und Reglerbefund nur Konsistenz ist – verwenden Sie nirgendwo die Wörter „verifiziert“, „bestätigt“ oder „laut Datenblatt“. DS-002 (fehlende Datenblätter, aber MPNs gesetzt) und DS-003 (teilweise MPN-Abdeckung) sind mildere Varianten mit derselben Implikation für die von ihnen genannten Teile.
Schaltplanerstellung (Zeichnen & Neuziehen)
Verwenden Sie diesen Workflow, wenn der Benutzer bittet, einen Schaltplan zu erstellen, hinzuzufügen, neu zu zeichnen oder umzugestalten – z.B. „füge einen 5V/5A TPS54560-Schaltkreis hinzu“, „把原理图画成可读风格“, „erzeuge einen Buck-Schaltplan“, „zeichne diese Stromversorgung neu".
- Lesen Sie zuerst den Standard.
references/schematic-drawing-standards.mdist vor dem Erstellen oder Bearbeiten eines Schaltplans obligatorisch. Es definiert das LM5013-ähnliche Power-Bus-Layout, GND-Bus, Label-Richtlinie, KiCad 9 Verdrahtungsbeschränkungen (Verbindungsdrähte an Verbindungspunkten aufteilen; keine Pin-zu-Pin-Einzeldrähte; Labels an gemeinsam genutzten Knoten) und die Verifikationsprüfung. - Entwurf anhand des Datenblatts. Datenblatt des ICs abrufen/lesen; Pinout, Vref, Absolutmax-Werte und die typische Anwendung extrahieren. Werte (Feedback-Teiler, RT/Frequenz, Induktivität, Kondensatoren, Kompensation) mit den Datenblattgleichungen berechnen und die Zahlen vor dem Zeigen nennen.
- Planen Sie den Block auf dem 1,27 mm Raster, spiegelbildlich zur kanonischen LM5013-Struktur: ein durchgehender Power-Bus
INPUT → IC → SW → L → OUTPUT, ein unterer GND-Bus und Steuerkomponenten in einem geordneten Band unterhalb des ICs (eine Spalte pro Funktion). Überprüfen Sie die Pin-Positionen und Rotations-Semantik des Symbols, bevor Sie Drähte schreiben. - Generieren. Bearbeiten Sie die
.kicad_sch-S-Expression direkt oder verwenden Sie ein Generator-Skript. Jeder Draht muss an einem Pin, einer Verbindung, einem Label oder einem Power-Symbol enden; Rails werden an jedem Verbindungspunkt in Segmente aufgeteilt. Für EasyEDA Pro übergeben Sie an dieeasyeda-schematic-draw-Skill mit demselben Standard. - Verifizieren mit KiCad selbst – diese Prüfung ist vor der Erfolgsmeldung obligatorisch:
kicad-cli sch erc→ 0 Fehler / 0 Warnungenkicad-cli sch export netlist→ Pin-für-Pin-Übereinstimmung mit dem Entwurfsziel- Schaltplananalyse-Ausführung mit heuristischen Vout-Schätzungen korrigiert auf die Datenblatt-Vref
- Geometrie-Check: keine Symbolkörper-Überlappungen, kein Label innerhalb eines IC-Körpers
- PDF/PNG-Rendering + visuelle Überprüfung: ein durchgehender Power-Bus, lesbares Steuerband, keine Komponentenstapelung
- Berichten Sie die Entwurfswerte mit Gleichungen, die Verifikationsnachweise und alle von Ihnen korrigierten Analyse-Einschränkungen.
Die untenstehenden Analyse- und Design-Review-Workflows gelten weiterhin für das Generierte.
Design-Review-Vertrag
Wenn der Benutzer nach einem Design-Review, vollständigen Bericht, fertigungsbereiter Bewertung oder etwas Gleichwertigem fragt, hören Sie nicht auf, nur einen oder zwei Analysatoren auszuführen und deren Ergebnisse zusammenzufassen. Ein Design-Review in dieser Skill hat einen strengeren Vertrag:
- Lesen Sie den vollständigen Workflow in dieser
SKILL.md, nicht nur die Analysator-Befehlsabschnitte. - Lesen Sie
references/report-generation.md, bevor Sie den Bericht schreiben. - Führen Sie jeden anwendbaren Analysator für die im Projekt vorhandenen Dateien aus, und sagen Sie dann explizit, welche ausgeführt wurden und welche nicht.
- Führen Sie Rohdatei- und Datenblatt-Kreuzverifikation durch, bevor Sie etwas als „verifiziert" behaupten.
- Kategorisieren Sie wahrscheinliche Fehlalarme des Analysators, bevor Sie sie zu Blockern hochstufen.
- Wenn ein erforderlicher Schritt nicht durchgeführt werden konnte, geben Sie dies als Review-Lücke an, nicht als stillschweigende Auslassung.
Behandeln Sie dies als Mindestanforderung. Analysator-JSON allein ist nicht das endgültige Review.
Mindest-Review-Checkliste
Für ein vollständiges Design-Review berücksichtigen Sie explizit jeden der folgenden Punkte im Bericht:
datasheets/vorhanden, synchronisiert oder Verifikationslücke angegebenanalyze_schematic.pyanalyze_pcb.py --fullcross_analysis.pyanalyze_emc.py- SPICE-Simulation, wenn ein Simulator installiert ist
analyze_thermal.py, wenn sowohl Schaltplan- als auch PCB-JSON existierenanalyze_gerbers.py, wenn Fertigungsausgaben existieren- Lebenszyklus-Audit, wenn Netzwerkzugriff und MPN-Abdeckung dies erlauben
- Vorheriges Review / Deltaprüfung vorheriger Lauf
- Roh-Schaltplan/PCB-Stichprobenverifikation auf vollständige Verifikation für kritische Teile hochgestuft
- Explizite Berichtsabschnitte für Blocker, Verifikationsbasis, Fehlalarme und übersprungene Analysen
Wenn ein Punkt nicht zutrifft, sagen Sie, warum. Wenn er übersprungen wurde, sagen Sie, warum. Wenn er fehlgeschlagen ist, sagen Sie, wie dies das Vertrauen einschränkt.
Häufige Review-Fehlermodi
Dies sind die Fehlermodi, die dieser Vertrag verhindern soll:
- Nach Schaltplan- + PCB- + EMC-Ausgabe aufhören und es als vollständiges Review bezeichnen
- Analyse-Befunde melden, ohne zu prüfen, ob es sich um erwartete Layout-Artefakte handelt
- „Verifiziert" ohne direkten Datenblattnachweis oder strukturierten Extraktionsnachweis behaupten
- Thermische, Lebenszyklus-, Vor-Review-Delta- oder Gerber-Prüfungen ohne Offenlegung auslassen
- Einen Bericht schreiben, dem ein Urteil, eine Blockertabelle, eine Verifikationsbasis oder übersprungene Analysehinweise fehlen
- Nur den ersten Teil dieser Skill lesen und den Design-Review-Workflow später in der Datei verpassen
PDF-Schaltplananalyse
Diese Skill verarbeitet auch PDF-Schaltpläne – Referenzdesigns, Entwicklungsboard-Schaltpläne, Evaluierungsboard-Dokumente, Applikationshinweise und Datenblatt-Typanwendungen. Häufige Anwendungsfälle:
- Analysieren eines Referenzdesigns eines Herstellers, um die Schaltung zu verstehen
- Extrahieren einer Subschaltung (Stromversorgung, USB-Schnittstelle, Sensor-Frontend) zur Integration in Ihr eigenes KiCad-Design
- Vergleichen eines PDF-Referenzdesigns mit Ihrem eigenen Schaltplan
- Extrahieren einer vollständigen BOM aus einem PDF-Schaltplan
- Validieren von Komponentenwerten in einem PDF anhand aktueller Datenblätter
Workflow: PDF-Seiten visuell lesen → Komponenten und Verbindungen identifizieren → strukturierte Daten extrahieren → in KiCad-Symbole und -Netze übersetzen → gegen Datenblätter validieren.
Für die vollständige Methodik – Komponentenextraktion, Notationskonventionen, Netzzuordnung, Subschaltungsextraktion, KiCad-Übersetzung und Validierung – lesen Sie references/pdf-schematic-extraction.md.
Für eine tiefgehende Validierung extrahierter Schaltungen anhand von Datenblättern (Werte überprüfen, Muster prüfen, Fehler erkennen) verwenden Sie die Methodik in references/schematic-analysis.md.
Analyse-Skripte
Diese Skill enthält Python-Skripte, die umfassendes strukturiertes JSON aus KiCad-Dateien in einem einzigen Durchlauf extrahieren. Führen Sie diese zuerst aus, und argumentieren Sie dann über die Ausgabe.
Lesen Sie die Analysator-JSON-Ausgabe direkt, anstatt Ad-hoc-Extraktionsskripte zu schreiben. Das JSON-Schema hat spezifische Feldnamen (unten und in references/output-schema.md dokumentiert), die in benutzerdefiniertem Code leicht falsch sein können. Um einen bestimmten Abschnitt zu extrahieren: python3 -c "import json; d=json.load(open('file.json')); print(json.dumps(d['key'], indent=2))".
Wenn das JSON Sie überrascht – ein AttributeError, unerwartete Form, ein Feld, das None zurückgibt, das aber einen Wert haben „sollte" – stoppen Sie und führen Sie --schema aus, bevor Sie einen zweiten Extraktionsversuch schreiben. Es gibt die genauen Feldnamen und -typen für jeden Top-Level-Schlüssel aus:
python3 <skill-path>/scripts/analyze_schematic.py --schema
python3 <skill-path>/scripts/analyze_pcb.py --schema
python3 <skill-path>/scripts/analyze_gerbers.py --schema
JSON-Feld-Spickzettel – die häufigsten Fehler beim manuellen Lesen der Analysator-Ausgabe:
| Was Sie wollen | Korrekter Pfad und Feld | Häufiger Fehler |
|---|---|---|
| Pins auf einem Netz | nets[<name>].pins[].component / .pin_number / .pin_name / .pin_type | ref, pin, type, number |
| Unbenannte-Netz-Anzeige | nets[<name>].display_name – wenn gesetzt, ein Ref.PinName-Hinweis für ein __unnamed_N-Netz, dessen einziger benannter IC-Pin die Geschichte erzählt (z.B. __unnamed_36 → U1.VBOOT). Fehlt bedeutet, dass der Analysator nicht unterscheiden konnte. | display_name ignorieren und rohes __unnamed_36 in den Bericht einfügen |
| IC-Pin-Map | ic_pin_analysis[] ist eine Liste von IC-Einträgen; jeder hat .reference und .pins[] mit .pin_number / .pin_name / .pin_type / .net / .connected_to[] | Als {ref: {...}} oder pins[].number behandeln |
| Erkannte Schaltungen | Jede mustergematchte Schaltung (Spannungsregler, RC-Filter, Quarzoszillatoren, Brücken, …) befindet sich in findings[] – filtern mit finding_schema.get_findings(data, Det.POWER_REGULATORS) etc. Nicht aus subcircuits[] lesen: Das ist eine IC-Nachbarschaftsgruppierung ({center_ic, ic_value, neighbor_components, …}), kein kategorisierter Erkennungsindex | Nach subcircuits.power_regulators, subcircuits.rc_filters oder einem subcircuits[type]-Schlüssel suchen – diese existierten nie in v1.3-Ausgabe |
| Zonennetz | pcb.zones[].net ist eine ganzzahlige Netz-ID, kein String. Verwenden Sie f"{net!r}" oder konvertieren Sie zuerst | f"{net:20s}" – stürzt ab mit ValueError: Unknown format code 's' for object of type 'int' |
| Footprint-Position | pcb.footprints[].x / .y auf oberster Ebene (kein .position-Wrapper) | footprints[].position.x |
| Befunde | findings[] flache Liste – jeder hat rule_id, detector, severity, summary, report_context. Filtern mit finding_schema.get_findings(data, Det.*) oder group_findings(data) | Nach geschlüsselten Dictionaries suchen wie signal_analysis.power_regulators[] (Pre-v1.3-Format, entfernt) |
Dies verhindert Format-String-Fehler und falsche Feldnamen. Verwenden Sie f-Strings oder json.dumps() für die Ausgabeformatierung – niemals %s mit Nicht-String-Typen. Siehe references/output-schema.md für das vollständige Schema mit allgemeinen Extraktionsmustern.
In allen folgenden Befehlen bezieht sich <skill-path> auf das Basisverzeichnis dieser Skill (oben in dieser Datei angezeigt, wenn geladen).
Schaltplan-Analysator
python3 <skill-path>/scripts/analyze_schematic.py <datei.kicad_sch> --analysis-dir analyse/
python3 <skill-path>/scripts/analyze_schematic.py <datei.kicad_sch> --analysis-dir analyse/ --compact
python3 <skill-path>/scripts/analyze_schematic.py <datei.kicad_sch> --output analyse.json # einmalig, kein Cache
Gibt strukturiertes JSON aus (~60-220KB abhängig von der Board-Komplexität) mit:
- Komponenten & BOM: Bestand mit Referenz, Wert, Footprint, lib_id, Typklassifikation, MPN, Datenblatt; deduplizierte BOM mit Mengen
- Netze: vollständige Verbindungskarte mit Pin-zu-Netz-Zuordnung, Drahtanzahlen, Nicht-Verbindungen
- Erkannte Subschaltungen (mustergematchte Schaltungen – alle als Einträge in
findings[]mit passendenDet.*-Detektoren ausgegeben; zum Abrufenget_findings(data, Det.POWER_REGULATORS)etc. verwenden):- Spannungsregler – LDO/Schaltregler/Invertierend-Topologie, Vout-Schätzung über datenblattverifizierte Vref-Nachschlage (~60 Familien) mit heuristischem Fallback und festem Ausgangs-Suffix-Parsing, Felder
vref_source(lookup/heuristic/fixed_suffix) undvout_net_mismatch - Spannungsteiler, RC/LC-Filter (Grenzfrequenz), Rückkopplungsnetzwerke, Quarzschaltungen (Lastkapazitätsanalyse, IC-Pin-basierte Erkennung)
- Operationsverstärker-Schaltungen (Konfiguration, Verstärkung, Integrator/Kompensator), Transistorschaltungen (netznamenbewusste Lastklassifikation: Motor/Heizung/Lüfter/Solenoid/Ventil/Pumpe/Relais/Lautsprecher/Summer/Lampe; FET-Pegelumsetzer-Topologie)
- Brückenschaltungen (H-Brücke, 3-phasig, Blattübergreifende Erkennung), Schutzvorrichtungen (ESD/TVS), Strommessung, Entkopplungsanalyse
- Domänenspezifisch: HF-Ketten, HF-Anpassungsnetzwerke, BMS, Ethernet (BFS-PHY-zu-Stecker-Verfolgung), HDMI/DVI-Schnittstellen, Speicherschnittstellen, Tastenmatrizen (netznamen- und topologiebasiert), Isolationstrennstellen, adressierbare LED-Ketten (WS2812/SK6812/APA102), Akkuladeregler (TP4056/MCP73831/BQ2404x), Motortreiber (A4988/TMC2209/DRV8301), ESD-Schutzabdeckungsprüfung, Debug-Schnittstellen (SWD/JTAG mit MCU-Verfolgung), Strompfad (Lastschalter/Idealdioden/USB-PD-Controller), ADC-Signalaufbereitung (externe ADCs + Spannungsreferenzen mit Anti-Aliasing-Kreuzreferenz), Reset/Überwachungsschaltungen (Spannungsüberwacher/Watchdog/RC-Reset-Netzwerke), Taktverteilung (Taktgeneratoren/PLLs/Oszillatorausgangsverfolgung)
- Spannungsregler – LDO/Schaltregler/Invertierend-Topologie, Vout-Schätzung über datenblattverifizierte Vref-Nachschlage (~60 Familien) mit heuristischem Fallback und festem Ausgangs-Suffix-Parsing, Felder