agentee

Composants

Symboles

Le fichier *.sym.toml : broches, graphismes, corps de boîtes générés, symboles multi-unités et niveaux logiques pour la vérification des signaux.

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 indique de quel bord du corps la broche sort. Une broche left va de at vers la droite jusqu'au corps. Gardez les points de connexion sur la grille de 1,27 mm (2,54 mm est préférable).

Types de broches : input, output, bidirectional, tri_state, passive, free, unspecified, power_in, power_out, open_collector, open_emitter, no_connect.

Les noms prennent ~{...} pour un trait supérieur : ~{RESET}.

Corps générés

Pour un symbole en boîte, listez les broches par côté et laissez agentee les placer sur la grille et dimensionner le corps. Chaque entrée est une broche, ou { gap = N } pour laisser N emplacements vides.

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

Les corps et les [[pins]] / [[graphics]] placés manuellement peuvent être mélangés.

Symboles multi-unités : donnez aux broches et aux graphiques un unit. Le même numéro de broche peut apparaître dans plus d'une unité seulement s'il a le même nom (broche partagée).

Niveaux logiques

Un symbole peut indiquer les seuils d'entrée de ses broches, pour la vérification du niveau de signal du schéma. [levels] s'applique à chaque broche input et bidirectional ; la table levels propre à une broche l'écrase champ par champ, et soumet tout type de broche à la vérification.

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

Seules les broches avec des niveaux sont vérifiées ; rien n'est supposé pour un symbole sans niveaux.

docs/format.md · Markdown pour agents