Design
Schaltpläne schreiben
Bauteile, Netze und Klassen mit agentee edit, Befehlsbatches, Blätter für große Designs und die Signalpegel-Prüfung, die Teiler zwischen VIL und VIH erkennt.
Ein Schaltplan in agentee ist eine Liste von Bauteilen und eine Liste von Netzen. Ein Netz ist ein Name, eine Klasse und die Pins, die es verbindet. Leiterbahnen werden beim Rendern des Schaltplans für dich gezeichnet, sodass nichts am Schaltkreis davon abhängt, wo eine Linie gezogen wurde.
name = "lna"
board = "lna"
[[parts]]
ref = "U1"
symbol = "SPF5189Z"
value = "SPF5189Z"
at = [66.04, 50.8]
rotation = 90
fields = { mpn = "Qorvo SPF5189Z" }
[[nets]]
name = "RF_OUT"
class = "RF"
pins = ["C2.2", "J2.1", "L3.1"]board benennt die Platinenspezifikation, von der die Netzklassen stammen. Setze sie zuerst.
Mit Befehlen bearbeiten
agentee edit sch schreibt die Datei für dich, behält Kommentare und Layout bei und prüft, was es geändert hat. Es lehnt einen Pin, ein Symbol oder eine Klasse ab, die nicht existieren, bevor es etwas schreibt, damit ein Tippfehler nie zu einem neuen Netz wird.
agentee edit sch NAME add R1 R 10k --footprint R_0402_1005Metric --at 25.4,25.4
agentee edit sch NAME net VBUS C1.1 U1.7 --class Power
agentee edit sch NAME connect R1.2 FB
agentee edit sch NAME nc U2.3
agentee edit sch NAME note "FB divider sets 3.3 V"
agentee edit sch NAME --list
agentee edit sch helpDie Befehle sind add, remove, move, set, net, connect, disconnect, nc, unnc und note. Ein Pin ist REF.PIN, nach Nummer (U1.3) oder nach einem eindeutigen Pin-Namen (U1.VCC). Ein Name, den mehrere Pins teilen, wie GND an einem Regler mit zwei Masse-Pins, ist ein Fehler, der die Nummern auflistet. Einem Pin ein Netz zu geben, auf dem er bereits ist, verschiebt ihn in das neue Netz.
add platziert ein Bauteil rechts von allem, was dort ist, auf dem 1,27-mm-Raster. --at X,Y setzt es woanders hin und rückt es ans Raster. --list gibt die Bauteile und Netze als JSON aus, und --json bei jedem Befehl liefert die aufgelösten Pins und Koordinaten.
Batches
Mehr als ein Bauteil oder ein Netz auf einmal: Schreibe die Befehle als Liste. Ein Laden, eine Prüfung am Ende, damit die halbfertigen Zustände dazwischen nie gemeldet werden:
agentee edit sch - <<'EOF'
add U1 AP2112K-3.3 AP2112K-3.3 --footprint SOT-23-5
add C1 C 1u --footprint C_0402_1005Metric
add C2 C 1u --footprint C_0402_1005Metric
net VBUS U1.VIN U1.EN C1.1 --class Power
net 3V3 U1.VOUT C2.1 --class Power
net GND U1.GND C1.2 C2.2 --class Ground --style power
note "LDO, 600 mA"
EOFadded U1 (AP2112K-3.3)
added C1 (C)
added C2 (C)
VBUS now joins U1.1, U1.3, C1.1
3V3 now joins U1.5, C2.1
GND now joins U1.2, C1.2, C2.2
noted: LDO, 600 mA
warning: ./power.sch.toml: power part U1: body overlaps C1 (parts[1])
0 errors, 1 warnings in the files this touchedDie Pin-Namen aufgelöst zu Nummern, und die Ausgabe sagt, welche. Das dritte Argument von add ist der Wert; ein Symbol ohne Standardwert braucht einen.
agentee edit sch build.txt macht dasselbe aus einer Datei. Batches arbeiten auf dem einen Schaltplan, den das Projekt hat. Bei mehreren, führe jeden Befehl einzeln aus und benenne den Schaltplan: agentee edit sch power add U1 AP2112K-3.3 AP2112K-3.3 --footprint SOT-23-5.
Klassen auf jedem Netz
Jedes Netz bekommt eine class von der Platine. Ein Netz in Default ist eine Warnung, ob es keine Klasse benennt oder Default, weil die Klasse seine Breite, Abstände, Vias und Routing-Reihenfolge auf der Platine bestimmt. Habe eine Klasse pro Netzart: Signal, Power, Ground, Clock, RF, jedes Paar.
--style power zeichnet ein Netz mit Masse- oder Versorgungssymbolen statt mit Leitern, und --style label mit Netz-Labels.
Offene Pins
Ein Pin, der in keinem Netz vorkommt, wird gemeldet. Pins, die absichtlich offen sind, kommen in no_connect:
agentee edit sch NAME nc U2.7 U2.8Schiene und die Signalpegel-Prüfung
Gib Logik- und MCU-Symbolen eine [levels]-Tabelle aus dem Datenblatt (siehe Bauteile) und dem Schaltplan eine rails-Tabelle:
rails = { GND = 0, "3V3" = [3.25, 3.35], VBUS = [4.75, 5.25] }
analog = ["U1.13"]Die Prüfung berechnet dann die Spannung, die jeder Eingang mit Pegeln sieht, am schlechtesten Eckpunkt seiner Schienen und Widerstandstoleranzen (1 %, außer das Bauteil hat ein tolerance-Feld), durch Schalter in jedem Zustand, offene Kollektor-Ausgänge aus und niedrig, interne Pulls und Eingangslage. Es ist ein Fehler, wenn ein Eingang:
- zwischen VIL und VIH liegen kann, wie ein Spannungsteiler, der in der Mitte landet,
- schwebt, ohne dass ihn etwas an eine Schiene bindet,
- durch Leckage durch einen zu schwachen Pull aus einem gültigen Pegel herausbewegt wird,
- über sein
minodermaxhinausgehen kann.
Innerhalb von 100 mV eines Schwellwerts ist eine Warnung. Eingänge, die in analog aufgelistet sind, werden von einem ADC gelesen, daher gelten nur ihre Grenzen. Ein Netz, auf dem etwas ist, das die Prüfung nicht modellieren kann, wie ein Ausgang oder ein Stecker, wird übersprungen statt geraten.
Blätter
Nach ein paar Dutzend Bauteilen, gib jedem Abschnitt seinen eigenen Schaltplan und liste sie in einem oberen auf. Das Layout platziert den oberen.
name = "sdr"
board = "sdr"
sheets = ["power", "fpga", "rf", "usb"]Jedes Blatt ist eine gewöhnliche Schaltplandatei. Netze verbinden sich über Blätter hinweg per Name, also ist 3V3 auf jedem Blatt ein Netz. Die Pins eines Netzes müssen auf dem Blatt sein, das sie auflistet, Referenzen sind eindeutig im gesamten Design, und ein Netz, das über Blätter hinweg geht, braucht dieselbe Klasse, wo immer es eine benennt. Ein Blatt für sich überspringt die Ein-Pin- und Default-Klassen-Warnungen, da der Rest des Netzes woanders sein kann; der obere Schaltplan führt jede Prüfung auf dem verbundenen Design aus.
Handgezeichnete Leiter
Lass wires aus und agentee routet sie. Wenn du eine bestimmte Zeichnung willst, gib dem Netz seine eigenen wires = [[[x, y], [x, y]], ...], und die Prüfung verifiziert, dass sie jeden Pin erreichen und kein anderes Netz berühren.
Darüber schauen
agentee render sch:NAME -o sch.png
agentee show sch:NAMEshow gibt die Position jedes Pins aus, was ein Agent braucht, um ein Bauteil neben ein anderes zu platzieren.
Was die Prüfung meldet
Pins in zwei Netzen, Pins in keinem Netz, Ein-Pin-Netze, mehrere Ausgänge auf einem Netz, Hand-Leiter, die einen Pin verfehlen oder ein anderes Netz berühren, überlappende Bauteile, Footprints, deren Pads die Pins des Symbols nicht abdecken, Netze in Default, und die Signalpegel, wenn rails gesetzt ist.