Schemat i projekt PCB
Schematy
Plik *.sch.toml: rozmieszczone elementy, sieci jako listy pinów, klasy sieci, szyny i sprawdzanie poziomu sygnału oraz arkusze dla dużych projektów.
Elementy to umieszczone symbole; sieci wymieniają piny, które łączą. Przewody są rysowane za ciebie na siatce 1,27 mm, chyba że je podasz.
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 pinSzyny i wejścia analogowe, dla sprawdzania poziomu sygnału, umieszczaj na górze pliku (lub na górnym schemacie zestawu arkuszy):
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 applyGdy ustawiono rails, sprawdzanie wyznacza napięcie, jakie widzi każdy wejściowy pin z levels: rezystory (elementy R, 1%, chyba że element ma pole tolerance), przełączniki (elementy SW, każdy stan otwarty i zamknięty), wyjścia open collector (wyłączone i niskie), wewnętrzne podciąganie i upływ wejścia, każdy w swoim najgorszym rogu w zakresie szyn i rezystorów. Jest to błąd, gdy wejście może znajdować się między VIL a VIH, gdy pływając nie jest niczym spięte z szyną, gdy upływ przez słabe podciąganie wyprowadza je poza poprawny poziom, oraz gdy może przekroczyć jego min lub max. W odległości 100 mV od progu jest to ostrzeżenie. Sieć z czymkolwiek innym (wyjściem, złączem, diodą, pinem zasilania sieci nieobecnej w rails) jest sterowana przez coś, czego nie można zamodelować, i jest pomijana. Kondensatory i punkty pomiarowe są ignorowane. Pin dwukierunkowy może być sterujący: chyba że przełącznik lub open collector na sieci pokaże, że jest pociągany, pozostałe wejścia na jego sieci są pomijane i nie są zgłaszane jako pływające.
Arkusze
Podziel duży projekt na jeden schemat na sekcję i połącz je w górnym schemacie, który je wymienia. Projekt PCB (layout) umieszcza górny.
name = "sdr" # sdr.sch.toml
board = "sdr"
sheets = ["power", "fpga", "rf", "usb"]Każdy arkusz to zwykły plik schematu z własnymi elementami i sieciami. Sieci łączą się między arkuszami po nazwie, więc 3V3 na każdym arkuszu to jedna sieć, a sygnał opuszcza jeden arkusz i dociera na inny pod tą samą nazwą. Piny sieci muszą być elementami na tym samym arkuszu; sieć rozciągająca się na arkusze wymaga tej samej class wszędzie, gdzie ją nazwie, i jest rysowana za pomocą etykiet. Odniesienia są unikalne w całym projekcie. Arkusz samodzielnie pomija ostrzeżenia o pojedynczym pinie i klasie Default (reszta sieci i jej klasa mogą być na innym arkuszu); schemat główny wykonuje każde sprawdzanie na połączonym projekcie i rysuje arkusze jeden pod drugim. Plik główny może zawierać również własne elementy i sieci.
Sprawdzanie zgłasza piny w dwóch sieciach, piny w żadnej sieci, sieci z pojedynczym pinem, wiele wyjść na jednej sieci, ręczne przewody, które omijają pin lub dotykają pinu innej sieci, nakładające się elementy, footprity, których pady nie pokrywają pinów symbolu, oraz poziomy sygnałów, gdy ustawiono rails. Każda sieć w klasie sieci Default jest ostrzeżeniem, niezależnie od tego, czy nie nazwie klasy, czy nazwie Default: klasa ustawia szerokość, odstęp, przelotki i kolejność routingu sieci, więc każda sieć powinna powiedzieć, czym jest. Ostrzeżenie wymaga płytki i projektu PCB schematu; schemat tylko symulowany (jak examples/logic) pomija je. Nadaj płytce klasę dla każdego rodzaju sieci (Signal, Data, Clock, Analog, Ground, Power, RF, pary) i zachowaj Default jako zapas, którego projekt PCB używa dla reguł nieobjętych żadną klasą. agentee show sch:lna wypisuje pozycję każdego pinu.