agentee

Bauteile

Symbole

Die *.sym.toml-Datei: Pins, Grafiken, generierte Boxkörper, Mehrfach-Symbole und Logikpegel für die Signalprüfung.

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 = true

side gibt an, von welcher Kante des Körpers der Pin herausragt. Ein left-Pin verläuft von at nach rechts zum Körper. Halte Verbindungspunkte auf dem 1,27-mm-Raster (2,54 mm ist besser).

Pin-Typen: input, output, bidirectional, tri_state, passive, free, unspecified, power_in, power_out, open_collector, open_emitter, no_connect.

Namen nehmen ~{...} für einen Überstrich: ~{RESET}.

Generierte Körper

Für ein Box-Symbol liste Pins pro Seite auf und lass agentee sie auf dem Raster platzieren und den Körper dimensionieren. Jeder Eintrag ist ein Pin oder { gap = N }, um N leere Slots zu lassen.

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" } ]

Körper und manuell platzierte [[pins]] / [[graphics]] können gemischt werden.

Mehrfach-Symbole: gib Pinen und Grafiken eine unit. Dasselbe Pin-Nummer darf in mehr als einer Einheit nur vorkommen, wenn sie denselben Namen hat (ein geteilter Pin).

Logikpegel

Ein Symbol kann die Eingangsschwellen seiner Pins angeben, für die Signalpegelprüfung des Schaltplans. [levels] gilt für jeden input- und bidirectional-Pin; die eigene levels-Tabelle eines Pins überschreibt sie feldweise und unterwirft jeden Pin-Typ der Prüfung.

[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" }

Nur Pins mit Levels werden geprüft; für ein Symbol ohne solche wird nichts angenommen.

docs/format.md · Markdown für Agenten