Design
Especificações da placa, stackups e classes de rede
Escolher um fabricante e um stackup real, definir uma classe de rede por tipo de rede, e colocar neles alvos de impedância e corrente para que a verificação resolva as larguras.
A especificação da placa é o primeiro ficheiro de um projeto e aquele contra o qual tudo o resto é verificado. Nomeia o fabricante, o stackup, o contorno, os tipos de via e as classes de rede. Fazer bem primeiro: um layout roteado contra o stackup errado tem a impedância errada em todas as linhas controladas.
agentee new board sensor-nodeEscolher um fabricante
name = "sensor-node"
fab = "jlcpcb"fab escolhe um preset de regras: generic, jlcpcb ou hdi. O preset é uma tabela indexada pelo número de camadas de cobre, o peso do cobre externo e o acabamento, pelo que uma placa de quatro camadas de 1 oz tem regras de pista mais apertadas do que uma de duas camadas de 2 oz. Os valores jlcpcb seguem a página de capacidades da JLCPCB linha a linha; a referência de regras dá cada valor com a linha de onde vem, e os poucos lugares onde o agentee é mais estrito de propósito.
Substituir qualquer regra em [rules]:
[rules]
min_track_width = "0.15mm"
min_clearance = "0.15mm"Escolher um stackup real
Não digitar espessuras de camadas. Escolher a construção própria do fabricante:
agentee stackups --fab jlcpcb --layers 4
agentee stackups --fab jlcpcb --layers 6 --thickness 1.6
agentee stackups JLC04161H-7628Os presets cobrem todas as construções de impedância da JLCPCB, de 4 a 20 camadas e de 0,4 a 3,0 mm, as construções padrão da PCBWay, de 4 a 18 camadas, e duas construções HDI genéricas. Os presets da JLCPCB usam o próprio código do fabricante, JLC04161H-7628: camadas, espessura, cobre externo e interno, prepreg. O último comando imprime as camadas de um preset com a respetiva espessura e permissividade.
agentee edit board sensor-node stackup --preset JLC04161H-7628 --finish ENIGEncomende a placa com a mesma construção: se a JLCPCB usar outro stackup, todas as impedâncias resolvidas ficam erradas.
Contorno, recortes e furos
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 slotUm contorno é um retângulo com size, origin e corner_radius, ou um polígono de points. Um recorte é uma janela, fenda ou furo grande roteado através da placa, e tudo o que depende da borda (cobre até à borda, pads, áreas de cobre, o roteador, as simulações) trata a borda de um recorte como borda da placa. Um recorte no ficheiro de layout é diferente: apenas mantém as áreas de cobre afastadas de uma área em certas camadas.
Tipos de via
[[vias]]
name = "std"
drill = "0.3mm"
diameter = "0.6mm"Uma placa pode listar vários tipos de via. Uma via atravessada não precisa de mais nada; vias cegas, enterradas e microvias precisam de um fabricante HDI e estão cobertas em HDI: microvias e laminação.
Classes de rede
Uma classe de rede define o que uma rede é: a largura da pista, o afastamento, as vias e os objetivos que a verificação exige. Dê a cada tipo de rede a sua própria classe. Uma rede deixada em Default gera um aviso, porque a classe decide como é roteada.
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 a classe com esse nome no local ou adiciona-a. O que os objetivos fazem:
currenté verificado contra o IPC-2221 em todas as camadas que a classe pode usar, amax_temp_rise(10 C por omissão). As camadas internas suportam menos corrente do que as externas, e a verificação indica a largura que a suporta em cada uma:
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é verificado em todas as camadas delayers. Omitatrack_widthe a verificação resolve-o na primeira camada; indiquewidthspor camada quando uma única largura não serve todas as camadas.diff_gaptorna a classe um par diferencial, e a sua impedância passa a ser a impedância diferencial.coplanar_gaptorna-a coplanar aterrada: a área de cobre mantém esse afastamento de cada lado, com o plano abaixo.solver = "field"verifica a classe com o solver de campo da GPU, que inclui a máscara de solda e a espessura do cobre, em vez de fórmulas fechadas.
Ver o que o stackup fornece
agentee check
agentee show board:sensor-nodeshow imprime a placa resolvida em JSON: para cada classe e camada, a geometria da pista (microstrip nas camadas externas, stripline nas internas), a impedância, a largura que atinge o objetivo e a corrente que transporta. Quando uma classe está fora do objetivo, a verificação indica em quanto e o que 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)Cole a largura e execute novamente a verificação. Impedância controlada e pares vai mais longe.
Definições de regras de design
As verificações de layout vêm de um registo de regras, cada uma com um id, uma categoria e uma severidade por omissão. A placa pode desativá-las ou alterar a respetiva severidade:
[drc]
disable = ["silk-width"]
severity = { "starved-thermal" = "error", "via-in-pad" = "warning" }agentee drc NAME --list imprime todas as regras com indicação de se aplicam a esta placa e porquê. A referência das verificações de regras de design lista-as todas.
Lista de verificação
fabdefinido, e umpresetde stackup que o fabricante realmente constrói.- Uma classe por tipo de rede: sinal, alimentação, massa, cada impedância, cada par.
- Objetivos de impedância e corrente nas classes, em vez de larguras calculadas à mão.
solver = "field"em todas as classes onde alguns ohms importam.agentee checklimpo antes de o esquema começar a nomear classes.