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-nodeElige 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-7628Los 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 ENIGPide 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 slotUn 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.Cuclass edita la clase de ese nombre in situ o la añade. Lo que hacen los objetivos:
currentse verifica contra IPC-2221 en cada capa que la clase puede usar, amax_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)impedancese verifica en cada capa delayers. Dejatrack_widthfuera y la verificación lo resuelve en la primera capa; dawidthspor capa cuando un ancho no sirve para todas las capas.diff_gapconvierte la clase en un par diferencial, y su impedancia en la impedancia diferencial.coplanar_gapla 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-nodeshow 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
fabestablecido, y un apilamientopresetque 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 checklimpio antes de que el esquemático empiece a nombrar clases.