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-nodeScegli 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-7628I 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 ENIGOrdina 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 slotUn 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.Cuclass modifica la classe di quel nome in loco o la aggiunge. Cosa fanno i target:
currentviene verificato contro IPC-2221 su ogni strato che la classe può usare, amax_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)impedanceviene verificato su ogni strato inlayers. Lascia fuoritrack_widthe la verifica lo risolve sul primo strato; daiwidthsper strato dove una larghezza non va bene per tutti gli strati.diff_gaprende la classe una coppia differenziale, e la sua impedenza l'impedenza differenziale.coplanar_gapla 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-nodeshow 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
fabimpostato, e uno stackuppresetche 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 checkpulito prima che lo schema inizi a nominare le classi.