agentee

Diseño

Especificaciones de placa, apilamientos y clases de red

Elige un fabricante y un apilamiento real, define una clase de red por tipo de red y pon objetivos de impedancia y corriente en ellas para que la verificación resuelva los anchos.

La especificación de la placa es el primer archivo de un diseño y el contra el que se comprueba todo lo demás. Nombra al fabricante, el apilamiento, el contorno, los tipos de vía y las clases de red. Hazlo bien primero: un diseño de PCB enrutado contra el apilamiento equivocado tiene la impedancia equivocada en cada línea controlada.

agentee new board sensor-node

Elige un fabricante

name = "sensor-node"
fab = "jlcpcb"

fab elige un preset de reglas: generic, jlcpcb o hdi. El preset es una tabla indexada por el número de capas de cobre, el peso del cobre exterior y el acabado, por lo que una placa de cuatro capas de 1 oz recibe reglas de pista más estrictas que una de dos capas de 2 oz. Los valores de jlcpcb siguen línea por línea la página de capacidades de JLCPCB; la referencia de reglas da cada valor con la línea de la que proviene, y los pocos lugares donde agentee es más estricto a propósito.

Anula cualquier regla en [rules]:

[rules]
min_track_width = "0.15mm"
min_clearance = "0.15mm"

Elige un apilamiento real

No escribas grosores de capa. Elige la propia construcción del fabricante:

agentee stackups --fab jlcpcb --layers 4
agentee stackups --fab jlcpcb --layers 6 --thickness 1.6
agentee stackups JLC04161H-7628

Los presets cubren todas las construcciones de impedancia de JLCPCB, de 4 a 20 capas y de 0,4 a 3,0 mm, las construcciones estándar de PCBWay, de 4 a 18 capas, y dos construcciones HDI genéricas. Los presets de JLCPCB usan el propio código del fabricante, JLC04161H-7628: capas, grosor, cobre exterior e interior, prepreg. El último comando imprime las capas de un preset con su grosor y permitividad.

agentee edit board sensor-node stackup --preset JLC04161H-7628 --finish ENIG

Pide la placa con la misma construcción: si JLCPCB usa otro apilamiento, todas las impedancias que resolviste están fuera de rango.

Contorno, recortes y agujeros

agentee edit board sensor-node outline --size 50,30 --corner-radius 1mm
[[outline.cutouts]]
origin = [20, 12]
size = [6, 2]
corner_radius = 1              # half the width makes a slot

Un contorno es un rectángulo con size, origin y corner_radius, o un polígono de points. Un recorte es una ventana, ranura o gran orificio que atraviesa la placa, y todo lo que depende del borde (cobre al borde, pads, zonas de cobre, el enrutador, las simulaciones) trata el borde de un recorte como borde de la placa. Un recorte en el archivo de layout es diferente: solo mantiene las zonas de cobre fuera de un área en algunas capas.

Tipos de vía

[[vias]]
name = "std"
drill = "0.3mm"
diameter = "0.6mm"

Una placa puede listar varios tipos de vía. Una vía a través no necesita nada más; las vías ciegas, enterradas y microvías requieren un fabricante HDI y se tratan en HDI: microvías y laminación.

Clases de red

Una clase de red es lo que es una red: su ancho de pista, despeje, vías y los objetivos a los que la verificación la somete. Da a cada tipo de red su propia clase. Una red dejada en Default es una advertencia, porque la clase decide cómo se enruta.

agentee edit board sensor-node class Signal --track-width 0.2mm --clearance 0.2mm --via std
agentee edit board sensor-node class Power --current 2A --max-temp-rise 10C
agentee edit board sensor-node class USB --impedance 90ohm --diff-gap 0.15mm --layers F.Cu
agentee edit board sensor-node class RF --impedance 50ohm --coplanar-gap 0.2mm --solver field --layers F.Cu

class edita la clase de ese nombre in situ o la añade. Lo que hacen los objetivos:

  • current se verifica contra IPC-2221 en cada capa que la clase puede usar, a max_temp_rise (10 C por defecto). Las capas internas llevan menos que las externas, y la verificación nombra el ancho que lo lleva en cada una:
error: blinky.board.toml: blinky netclass Power on In2.Cu: 0.6mm carries only 0.451A for a 10C rise, 1A needs 1.7994mm (IPC-2221)
  • impedance se verifica en cada capa de layers. Deja track_width fuera y la verificación lo resuelve en la primera capa; da widths por capa cuando un ancho no sirve para todas las capas.
  • diff_gap convierte la clase en un par diferencial, y su impedancia en la impedancia diferencial.
  • coplanar_gap la convierte en coplanar con tierra: la zona de cobre mantiene esa separación a cada lado, con el plano debajo.
  • solver = "field" comprueba la clase con el solver de campo de la GPU, que incluye la máscara de soldadura y el grosor del cobre, en lugar de fórmulas cerradas.

Ver lo que da el apilamiento

agentee check
agentee show board:sensor-node

show imprime la placa resuelta como JSON: para cada clase y capa la geometría de la pista (microstrip en las capas externas, stripline en las internas), la impedancia, el ancho que cumple el objetivo y la corriente que lleva. Cuando una clase no está en el objetivo, la verificación dice cuánto se desvía y qué usar:

error: lna.board.toml: lna netclass RF on F.Cu: field solver gives 59.4 ohm with solder mask, outside 50ohm +/- 5%, use track_width = "0.2985mm" (50.2 ohm)

Pega el ancho, vuelve a ejecutar la verificación. Impedancia controlada y parejas va más lejos.

Configuración de reglas de diseño

Los checks de layout provienen de un registro de reglas, cada una con un id, una categoría y una severidad predeterminada. La placa puede desactivarlas o cambiar su severidad:

[drc]
disable = ["silk-width"]
severity = { "starved-thermal" = "error", "via-in-pad" = "warning" }

agentee drc NAME --list imprime cada regla con si se aplica a esta placa y por qué. La referencia de comprobaciones de reglas de diseño las lista todas.

Lista de comprobación

  • fab establecido, y un apilamiento preset que el fabricante construye realmente.
  • Una clase por tipo de red: señal, alimentación, tierra, cada impedancia, cada par.
  • Objetivos de impedancia y corriente en las clases, no anchos calculados a mano.
  • solver = "field" en cada clase donde unos pocos ohmios importan.
  • agentee check limpio antes de que el esquemático empiece a nombrar clases.

Mejorar esta guía · Markdown para agentes