Onderdelen
Symbolen
Het *.sym.toml-bestand: pinnen, grafiek, gegenereerde bloklichamen, meervoudige symboolen en logische niveaus voor de signaalcontrole.
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 geeft aan aan welke kant van het lichaam de pin uitsteekt. Een left-pin loopt van at naar rechts naar het lichaam. Houd aansluitpunten op het raster van 1,27 mm (2,54 mm is beter).
Pintypes: input, output, bidirectional, tri_state, passive, free, unspecified, power_in, power_out, open_collector, open_emitter, no_connect.
Namen gebruiken ~{...} voor een overstreeping: ~{RESET}.
Gegenereerde lichamen
Voor een blok-symbool, geef per kant de pins op en laat agentee ze op het raster plaatsen en het lichaam afmeten. Elke entry is een pin, of { gap = N } om N lege plekken te laten.
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" } ]Lichamen en handmatig geplaatste [[pins]] / [[graphics]] kunnen gemengd worden.
Meer-eenheidssymbolen: geef pins en graphics een unit. Hetzelfde pinnummer mag in meer dan één eenheid voorkomen, alleen als het dezelfde naam heeft (een gedeelde pin).
Logicaniveaus
Een symbool kan de ingangsdrempels van zijn pinnen opgeven, voor de signaalniveaucontrole van het schema. [levels] geldt voor elke input- en bidirectional-pin; de eigen levels-tabel van een pin overschrijft dit veld voor veld en onderwerpt elk pintoype aan de controle.
[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" }Alleen pins met levels worden gecheckt; voor een symbool zonder levels wordt niets aangenomen.