Projektowanie
Specyfikacje płytek, stackupy i klasy sieci
Wybierz producenta i rzeczywisty stackup, zdefiniuj klasę sieci dla każdego rodzaju sieci i ustaw na nich cele impedancji i prądu, aby sprawdzenie wyliczyło szerokości.
Specyfikacja płytki to pierwszy plik projektu i ten, z którym wszystko inne jest sprawdzane. Wymienia producenta, stackup, obrys, typy przelotek i klasy sieci. Zrób to dobrze na początku: projekt PCB rutowany względem złego stackupu ma złą impedancję na każdej kontrolowanej linii.
agentee new board sensor-nodeWybierz producenta
name = "sensor-node"
fab = "jlcpcb"fab wybiera preset reguł: generic, jlcpcb lub hdi. Preset to tabela kluczowana liczbą warstw miedzi, grubością miedzi zewnętrznej i wykończeniem, więc płytka czterowarstwowa 1 oz ma ściślejsze reguły ścieżek niż dwuwarstwowa 2 oz. Wartości jlcpcb odpowiadają wiersz po wierszu stronie możliwości JLCPCB; przewodnik po regułach podaje każdą wartość z wierszem, z którego pochodzi, oraz kilka miejsc, w których agentee jest celowo bardziej restrykcyjny.
Nadpisz dowolną regułę w [rules]:
[rules]
min_track_width = "0.15mm"
min_clearance = "0.15mm"Wybierz rzeczywisty stackup
Nie wpisuj grubości warstw. Wybierz własną budowę producenta:
agentee stackups --fab jlcpcb --layers 4
agentee stackups --fab jlcpcb --layers 6 --thickness 1.6
agentee stackups JLC04161H-7628Predefinicje obejmują wszystkie konstrukcje JLCPCB z kontrolowaną impedancją od 4 do 20 warstw i grubości od 0,4 do 3,0 mm, standardowe konstrukcje PCBWay od 4 do 18 warstw oraz dwa uniwersalne konstrukcje HDI. Predefinicje JLCPCB posługują się własnym kodem producenta, JLC04161H-7628: warstwy, grubość, miedź zewnętrzna i wewnętrzna, prepreg. Ostatnia komenda wypisuje warstwy jednej predefinicji wraz z ich grubością i przenikalnością elektryczną.
agentee edit board sensor-node stackup --preset JLC04161H-7628 --finish ENIGZamów płytkę w tej samej konstrukcji: jeśli JLCPCB użyje innego stackupu, każda impedancja, którą wyliczyłeś, będzie błędna.
Obrys, wycięcia i otwory
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 slotObrys to prostokąt z size, origin i corner_radius albo wielokąt z points. Wycięcie to okno, szczelina lub duży otwór wycięty przez całą płytkę, i wszystko, co zależy od krawędzi (miedź do krawędzi, pady, wylewki, router, symulacje), traktuje krawędź wycięcia jako krawędź płytki. Wycięcie w pliku projektu PCB jest inne: tylko trzyma wylewki z dala od obszaru na wybranych warstwach.
Typy przelotek
[[vias]]
name = "std"
drill = "0.3mm"
diameter = "0.6mm"Płytka może zawierać kilka typów przelotek. Przelotka przez wszystkie warstwy nie wymaga niczego więcej; przelotki ślepe, pogrzebane i mikroprelotki wymagają producenta HDI i są opisane w HDI: mikroprelotki i laminacja.
Klasy sieci
Klasa sieci to to, czym jest sieć: jej szerokość ścieżki, odstęp, przelotki i cele, do których sprawdzanie ją trzyma. Nadaj każdemu rodzajowi sieci własną klasę. Sieć pozostawiona w Default jest ostrzeżeniem, ponieważ klasa decyduje, jak jest routowana.
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 edytuje klasę o tej nazwie w miejscu albo ją dodaje. Co robią cele:
currentjest sprawdzane zgodnie z IPC-2221 na każdej warstwie, której klasa może używać, przymax_temp_rise(domyślnie 10 C). Warstwy wewnętrzne przenoszą mniej niż zewnętrzne, a sprawdzanie podaje szerokość, która je przenosi na każdej:
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)impedancejest sprawdzane na każdej warstwie wlayers. Pomińtrack_width, a sprawdzanie rozwiąże je na pierwszej warstwie; podajwidthsna warstwę, gdy jedna szerokość nie pasuje do każdej warstwy.diff_gapczyni klasę parą różnicową, a jej impedancję impedancją różnicową.coplanar_gapczyni ją współosiową z masą: wylewka zachowuje ten odstęp po obu stronach, z płaszczyzną poniżej.solver = "field"sprawdza klasę solverem pól na GPU, który uwzględnia soldermaskę i grubość miedzi, zamiast wzorów analitycznych.
Zobacz, co daje stackup
agentee check
agentee show board:sensor-nodeshow wypisuje rozwiązany projekt płytki jako JSON: dla każdej klasy i warstwy geometrię ścieżki (mikropaskowa na warstwach zewnętrznych, paskowa wewnątrz), impedancję, szerokość spełniającą cel i prąd, który przenosi. Gdy klasa jest poza celem, sprawdzanie mówi o ile i co użyć:
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)Wklej szerokość, uruchom ponownie sprawdzanie. Impedancja kontrolowana i pary idzie dalej.
Ustawienia reguł projektowych
Sprawdzenia projektu PCB pochodzą z rejestru reguł, każda ma identyfikator, kategorię i domyślną wagę. Płytka może je wyłączyć albo zmienić ich wagę:
[drc]
disable = ["silk-width"]
severity = { "starved-thermal" = "error", "via-in-pad" = "warning" }agentee drc NAME --list wypisuje każdą regułę wraz z informacją, czy dotyczy tej płytki i dlaczego. Referencja sprawdzeń reguł projektowych wymienia je wszystkie.
Checklista
- Ustawiono
fabi predefinicjępresetstackupu, którą producent faktycznie produkuje. - Jedna klasa na każdy rodzaj sieci: sygnał, zasilanie, masa, każda impedancja, każda para.
- Cele impedancji i prądu na klasach, a nie szerokości wyliczane ręcznie.
solver = "field"na każdej klasie, gdzie liczy się kilka omów.agentee checkczysty, zanim schemat zacznie nadawać nazwy klasom.