agentee

Progettazione

Specifiche della scheda, stackup e classi di net

Scegli un produttore e uno stackup reale, definisci una classe di net per ogni tipo di net e imposta su di esse i target di impedenza e corrente, così la verifica risolve le larghezze.

La specifica della scheda è il primo file di un progetto e quello contro cui tutto il resto viene controllato. Nominano il produttore, lo stackup, il contorno, i tipi di via e le classi di net. Mettila a punto prima di tutto: un layout instradato contro lo stackup sbagliato ha l'impedenza sbagliata su ogni linea controllata.

agentee new board sensor-node

Scegli un produttore

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

fab sceglie un preset di regole: generic, jlcpcb o hdi. Il preset è una tabella indicizzata dal numero di layer di rame, dal peso del rame esterno e dalla finitura, quindi una scheda a 4 layer da 1 oz ha regole di pista più strette di una a 2 layer da 2 oz. I valori di jlcpcb seguono la pagina delle capacità di JLCPCB riga per riga; il riferimento alle regole fornisce ogni valore con la riga da cui proviene, e i pochi punti in cui agentee è più severo di proposito.

Sovrascrivi qualsiasi regola in [rules]:

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

Scegli uno stackup reale

Non digitare gli spessori dei layer. Scegli la costruzione stessa del produttore:

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

I preset coprono ogni costruzione di impedenza JLCPCB da 4 a 20 layer e da 0,4 a 3,0 mm, le costruzioni standard PCBWay da 4 a 18 layer e due costruzioni HDI generiche. I preset JLCPCB usano il codice del produttore, JLC04161H-7628: layer, spessore, rame esterno e interno, prepreg. L'ultimo comando stampa i layer di un preset con il loro spessore e la loro permittività.

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

Ordina la scheda con la stessa costruzione: se JLCPCB usa uno stackup diverso, ogni impedenza risolta è sbagliata.

Contorno, finestre e fori

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 è un rettangolo con size, origin e corner_radius, o un poligono di points. Una finestra è un'apertura, una fessura o un foro grande praticato attraverso la scheda, e tutto ciò che riguarda il bordo (rame al bordo, piazzole, aree di rame, il router, le simulazioni) tratta il bordo di una finestra come bordo della scheda. Una finestra nel file di layout è diversa: tiene solo le aree di rame fuori da un'area su alcuni layer.

Tipi di via

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

Una scheda può elencare diversi tipi di via. Una via through non richiede altro; blind, buried e microvia richiedono un produttore HDI e sono trattate in HDI: microvia e laminazione.

Classi di net

Una classe di net definisce cosa è un net: la sua larghezza di pista, il clearance, le via e i target a cui la verifica lo tiene. Dà a ogni tipo di net la sua classe. Un net lasciato in Default è un avviso, perché la classe decide come viene sbrogliato.

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 modifica la classe di quel nome in loco o la aggiunge. Cosa fanno i target:

  • current viene verificato contro IPC-2221 su ogni strato che la classe può usare, a max_temp_rise (10 C di default). Gli strati interni portano meno corrente di quelli esterni, e la verifica indica la larghezza che la porta su ciascuno:
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 viene verificato su ogni strato in layers. Lascia fuori track_width e la verifica lo risolve sul primo strato; dai widths per strato dove una larghezza non va bene per tutti gli strati.
  • diff_gap rende la classe una coppia differenziale, e la sua impedenza l'impedenza differenziale.
  • coplanar_gap la rende coplanare a massa: l'area di rame mantiene quel gap su entrambi i lati, con il piano sotto.
  • solver = "field" verifica la classe con il solver di campo GPU, che include il solder mask e lo spessore del rame, invece di formule in forma chiusa.

Vedi cosa dà lo stackup

agentee check
agentee show board:sensor-node

show stampa la scheda risolta come JSON: per ogni classe e strato la geometria della traccia (microstrip sugli strati esterni, stripline all'interno), l'impedenza, la larghezza che soddisfa il target e la corrente che porta. Quando una classe è fuori target, la verifica dice di quanto e cosa usare:

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)

Incolla la larghezza, rilancia la verifica. Impedenza controllata e coppie va oltre.

Impostazioni delle regole di design

I controlli di layout vengono da un registro di regole, ognuna con un id, una categoria e una severità di default. La scheda può disattivarle o cambiarne la severità:

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

agentee drc NAME --list stampa ogni regola con se si applica a questa scheda e perché. Il riferimento dei controlli delle regole di design le elenca tutte.

Checklist

  • fab impostato, e uno stackup preset che il produttore costruisce davvero.
  • Una classe per ogni tipo di net: segnale, alimentazione, massa, ogni impedenza, ogni coppia.
  • Target di impedenza e corrente sulle classi, non larghezze calcolate a mano.
  • solver = "field" su ogni classe dove pochi ohm contano.
  • agentee check pulito prima che lo schema inizi a nominare le classi.

Migliora questa guida · Markdown per agenti