Schaltplan und Layout
Schaltpläne
Die *.sch.toml-Datei: platzierte Bauteile, Netze als Listen von Pins, Netzklassen, Schienen und die Signalpegelprüfung sowie Blätter für große Designs.
Bauteile sind platzierte Symbole; Netze listen die Pins, die sie verbinden. Drähte werden für dich auf einem 1,27 mm-Raster gezeichnet, es sei denn, du gibst sie an.
name = "lna"
board = "lna" # net classes come from this board
no_connect = ["U2.7"] # pins left open on purpose
[[parts]]
ref = "U1"
symbol = "SPF5189Z"
value = "SPF5189Z"
at = [66.04, 50.8] # keep on the 1.27 mm grid
rotation = 90 # 0, 90, 180, 270, counter-clockwise
mirror = true # flip left to right before rotating
# unit = 2 # one [[parts]] per unit of a multi-unit symbol, same ref
# footprint = "SOT-89-3" # default: the symbol's footprint
# dnp = true
fields = { mpn = "Qorvo SPF5189Z" }
[[nets]]
name = "RF_OUT"
class = "RF" # a netclass of the board; without one the net is in "Default"
pins = ["C2.2", "J2.1", "L3.1"] # REF.PIN, by number or by a unique pin name
# style = "power" # wire (default) | label | power (ground and supply symbols)
# wires = [[[x, y], [x, y]], ...] # draw it yourself; check verifies it reaches every pinStromschienen und analoge Eingänge, für die Signalpegelprüfung, stehen oben in der Datei (oder oben im Schaltplan eines Blatt-Satzes):
rails = { GND = 0, "3V3" = [3.25, 3.35], VBUS = [4.75, 5.25] } # volts, or [min, max]
analog = ["U1.13"] # inputs read by an ADC: only min and max applyWenn rails gesetzt ist, ermittelt die Prüfung die Spannung, die jeder Eingang mit levels sieht: Widerstände (R-Bauteile, 1 %, es sei denn, das Bauteil hat ein tolerance-Feld), Schalter (SW-Bauteile, jeder offene und geschlossene Zustand), Open-Collector-Ausgänge (aus und niedrig), interne Zieh Widerstände und Eingangsleckstrom, jeweils an ihrem schlechtesten Eckpunkt über den Bereichen von Schiene und Widerstand. Es ist ein Fehler, wenn der Eingang zwischen VIL und VIH liegen kann, wenn er ohne etwas, das ihn an eine Schiene zieht, schwebt, wenn Leckstrom durch einen schwachen Zieh Widerstand ihn aus einem gültigen Pegel bewegt, und wenn er über sein min oder max hinausgehen kann. Innerhalb von 100 mV eines Schwellwerts ist eine Warnung. Ein Netz mit irgendetwas anderem darauf (ein Ausgang, ein Stecker, eine Diode, ein Versorgungspins eines Netzes, das nicht in rails steht) wird von etwas angetrieben, das es nicht modellieren kann, und wird übersprungen. Kondensatoren und Testpunkte werden ignoriert. Ein bidirektionaler Pin kann antreiben: es sei denn, ein Schalter oder Open-Collector auf dem Netz zeigt, dass er gezogen wird, werden die anderen Eingänge auf seinem Netz übersprungen und er wird nicht als schwebend gemeldet.
Blätter
Teile ein großes Design in einen Schaltplan pro Abschnitt auf und verbinde sie in einem oberen Schaltplan, der sie auflistet. Das Layout platziert den oberen.
name = "sdr" # sdr.sch.toml
board = "sdr"
sheets = ["power", "fpga", "rf", "usb"]Jedes Blatt ist eine gewöhnliche Schaltplandatei mit eigenen Bauteilen und Netzen. Netze verbinden sich über Blätter hinweg per Name, sodass 3V3 auf jedem Blatt ein Netz ist und ein Signal ein Blatt verlässt und unter demselben Namen auf einem anderen ankommt. Die Pins eines Netzes müssen Bauteile auf demselben Blatt sein; ein Netz, das Blätter überspannt, braucht dieselbe class, wo immer es eine nennt, und wird mit Beschriftungen gezeichnet. Referenzen sind über das gesamte Design eindeutig. Ein Blatt für sich überspringt die Ein-Pin- und Default-Klassen-Warnungen (der Rest des Netzes und seine Klasse können auf einem anderen Blatt sein); der obere Schaltplan führt jede Prüfung auf dem verbundenen Design aus und zeichnet die Blätter von oben nach unten gestapelt. Die obere Datei kann auch eigene Bauteile und Netze enthalten.
Die Prüfung meldet Pins in zwei Netzen, Pins in keinem Netz, Ein-Pin-Netze, mehrere Ausgänge auf einem Netz, Handdrähte, die einen Pin verfehlen oder einen Pin eines anderen Netzes berühren, überlappende Bauteile, Footprints, deren Pads die Pins des Symbols nicht abdecken, und Signalpegel, wenn rails gesetzt ist. Jedes Netz in der Default-Netzklasse ist eine Warnung, ob es keine Klasse nennt oder Default: die Klasse setzt die Breite, den Abstand, die Vias und die Routing-Reihenfolge des Netzes, daher sollte jedes Netz sagen, was es ist. Die Warnung braucht eine Platine und ein Layout des Schaltplans; ein nur simulierter Schaltplan (wie examples/logic) überspringt sie. Gib der Platine eine Klasse pro Art von Netz (Signal, Data, Clock, Analog, Ground, Power, RF, Paare) und behalte Default als Fallback, den das Layout für Regeln verwendet, die keine Klasse abdeckt. agentee show sch:lna gibt die Position jedes Pins aus.