agentee

Компоненты

УГО

Файл *.sym.toml: выводы, графика, генерируемые корпуса, многовыводные УГО и уровни логических сигналов для проверки сигналов.

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 указывает, из какого края корпуса выступает вывод. Вывод left идёт от at вправо к корпусу. Держите точки соединения на сетке 1,27 мм (2,54 мм лучше).

Типы выводов: input, output, bidirectional, tri_state, passive, free, unspecified, power_in, power_out, open_collector, open_emitter, no_connect.

Имена принимают ~{...} для верхней черты: ~{RESET}.

Сгенерированные корпуса

Для символов в виде прямоугольника перечислите выводы по сторонам, и agentee разместит их на сетке и задаст размер корпуса. Каждая запись это вывод или { gap = N }, чтобы оставить N пустых мест.

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

Корпуса и вручную размещённые [[pins]] / [[graphics]] можно смешивать.

Символы с несколькими единицами: задайте выводам и графическим элементам unit. Один и тот же номер вывода может встречаться в нескольких единицах только при одинаковом имени (общий вывод).

Логические уровни

Символ может указывать пороги входных сигналов своих выводов для проверки уровней сигналов на схеме. [levels] применяется ко всем выводам input и bidirectional; собственная таблица levels вывода переопределяет её поле за полем и подчиняет проверке вывод любого типа.

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

Проверяются только выводы с уровнями; для символа без них ничего не предполагается.

docs/format.md · Markdown для агентов