agentee

Componentes

Símbolos

El archivo *.sym.toml: pines, gráficos, cuerpos de caja generados, símbolos de múltiples unidades y niveles lógicos para la verificación de señal.

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 indica de qué borde del cuerpo sale el pin. Un pin left va desde at hacia la derecha hasta el cuerpo. Mantén los puntos de conexión en la cuadrícula de 1,27 mm (2,54 mm es mejor).

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

Los nombres admiten ~{...} para una barra superior: ~{RESET}.

Cuerpos generados

Para un símbolo de caja, lista los pins por lado y deja que agentee los coloque en la cuadrícula y dimensione el cuerpo. Cada entrada es un pin, o { gap = N } para dejar N huecos vacíos.

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

Se pueden mezclar cuerpos y [[pins]] / [[graphics]] colocados a mano.

Símbolos de varias unidades: da a los pins y a la gráfica un unit. El mismo número de pin puede aparecer en más de una unidad solo si tiene el mismo nombre (un pin compartido).

Niveles lógicos

Un símbolo puede declarar los umbrales de entrada de sus pins, para la comprobación de nivel de señal del esquemático. [levels] se aplica a cada pin input y bidirectional; la tabla levels propia de un pin la anula campo a campo, y somete cualquier tipo de pin a la comprobación.

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

Solo se comprueban los pins con niveles; no se asume nada para un símbolo sin ellos.

docs/format.md · Markdown para agentes