agentee

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-node

Wybierz 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-7628

Predefinicje 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 ENIG

Zamó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 slot

Obrys 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.Cu

class edytuje klasę o tej nazwie w miejscu albo ją dodaje. Co robią cele:

  • current jest sprawdzane zgodnie z IPC-2221 na każdej warstwie, której klasa może używać, przy max_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)
  • impedance jest sprawdzane na każdej warstwie w layers. Pomiń track_width, a sprawdzanie rozwiąże je na pierwszej warstwie; podaj widths na warstwę, gdy jedna szerokość nie pasuje do każdej warstwy.
  • diff_gap czyni klasę parą różnicową, a jej impedancję impedancją różnicową.
  • coplanar_gap czyni 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-node

show 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 fab i predefinicję preset stackupu, 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 check czysty, zanim schemat zacznie nadawać nazwy klasom.

Popraw ten przewodnik · Markdown dla agentów