Componenti
Simboli
Il file *.sym.toml: pin, grafica, corpi di scatola generati, simboli multi-unità e livelli logici per la verifica dei segnali.
name = "LM358"
reference = "U" # designator prefix
value = "LM358" # default: name
description = "Dual op amp"
datasheet = "https://..."
keywords = ["opamp", "dual"]
footprint = "SOIC-8_3.9x4.9mm_P1.27mm"
footprint_filters = ["SOIC*3.9x4.9mm*"]
pin_names = "inside" # inside | outside | hidden
# pin_name_offset = 0.508
# hide_pin_numbers = true
# power = true # a power flag symbol like GND
[[graphics]]
kind = "polygon"
points = [[-5.08, -5.08], [5.08, 0], [-5.08, 5.08]]
fill = "background" # none | solid | background
unit = 1 # 0 or absent: drawn in every unit
[[pins]]
number = "3"
name = "+"
type = "input"
at = [-7.62, -2.54] # the connection point, where wires land
side = "left" # left | right | top | bottom of the body
length = 2.54 # default 2.54
unit = 1
# shape = "inverted" # line | inverted | clock | inverted_clock | input_low | clock_low | output_low | edge_clock_high | non_logic
# hidden = trueside indica da quale bordo del corpo sporge il pin. Un pin left va da at verso destra fino al corpo. Mantieni i punti di connessione sulla griglia di 1,27 mm (2,54 mm è meglio).
Tipi di pin: input, output, bidirectional, tri_state, passive, free, unspecified, power_in, power_out, open_collector, open_emitter, no_connect.
I nomi accettano ~{...} per una barra superiore: ~{RESET}.
Corpi generati
Per un simbolo a scatola, elenca i pin per lato e lascia che agentee li posizioni sulla griglia e dimensiona il corpo. Ogni voce è un pin, oppure { gap = N } per lasciare N slot vuoti.
name = "STM32F103C8"
reference = "U"
[[bodies]]
unit = 1 # optional, one [[bodies]] per unit
# width = 20.32 # minimum body width
# pin_length = 2.54
left = [
{ number = "7", name = "NRST", type = "input" },
{ gap = 1 },
{ number = "10", name = "PA0", type = "bidirectional" },
]
right = [ { number = "30", name = "PA9", type = "bidirectional" } ]
top = [ { number = "1", name = "VBAT", type = "power_in" } ]
bottom = [ { number = "8", name = "VSS", type = "power_in" } ]Corpi e [[pins]] / [[graphics]] posizionati a mano possono essere mescolati.
Simboli multi-unità: dai a pin e grafica un unit. Lo stesso numero di pin può comparire in più di un'unità solo se ha lo stesso nome (un pin condiviso).
Livelli logici
Un simbolo può dichiarare le soglie di ingresso dei suoi pin, per il controllo del livello di segnale dello schema. [levels] si applica a ogni pin input e bidirectional; la tabella levels del pin stesso la sovrascrive campo per campo, e sottopone al controllo qualsiasi tipo di pin.
[levels]
supply = "VDD" # pin name or number whose rail the % levels scale with
vih = "75%" # of the supply; or volts, "2.0V"
vil = "25%"
min = "-0.3V" # absolute limits, sums allowed: "100%+0.3V"
max = "100%+0.3V"
leakage = "50nA" # input leakage, either way
# pull_up = "45k" # a fixed internal pull to the supply
# pull_down = "45k"
[[pins]]
number = "12"
name = "NRST"
type = "input"
at = [-7.62, 0.0]
side = "left"
levels = { vih = "70%", pull_up = "45k" }Vengono controllati solo i pin con livelli; per un simbolo senza livelli non si assume nulla.