Para uma placa frente e verso simples, comece criando um polígono à terra em toda a camada inferior. O truque é fazer com que o Eagle direcione a maioria das conexões na camada superior. Para fazer isso, torne o custo do roteamento dentro de um polígono alto e o custo via baixo. Na verdade, você deseja começar com parâmetros com maior probabilidade de encontrar uma solução e reforçar os requisitos com várias passagens de otimização.
Antes do roteamento automático, direcione os traços críticos manualmente e conecte todos os motivos que você puder diretamente no bloco à camada de solo. Isso fará com que não perca espaço de roteamento conectando os motivos.
É claro que tudo isso deve começar com um bom layout, que tenta colocar as coisas conectadas umas nas outras e orientadas para ter o menor número possível de crossovers.
Após o roteamento automático, você precisa fazer uma limpeza manual. A medida de um plano de terra é quão pequena é a dimensão máxima de qualquer ilha. Muitas pequenas ilhas são melhores do que algumas grandes. Isso significa que você deseja que o plano de terra flua a cada via, se possível. Infelizmente, Eagle tende a agrupar vias, mesmo com o parâmetro de abraço definido como 0. Você não pode configurá-lo como negativo, tentei. Isso significa que você precisa ver o que o roteador automático fez e mover um pouco as coisas para tentar quebrar grupos de vias.
Trata-se principalmente de usar o roteador automático corretamente e perceber que é uma ferramenta, não um substituto para o seu próprio cérebro. Se você está esperando fogo e se esqueça, não terá boas pranchas.
Enfim, aqui está um arquivo de controle de roteador automático de uma das minhas placas de 2 camadas com a camada inferior de um plano de terra:
[Padrão]
RoutingGrid = 4mil
; Parâmetros de rastreamento:
tpViaShape = Round
; Direções preferidas:
PrefDir.1 = *
PrefDir.2 = 0
PrefDir.3 = 0
PrefDir.4 = 0
PrefDir.5 = 0
PrefDir.6 = 0
PrefDir.7 = 0
PrefDir.8 = 0
PrefDir.9 = 0
PrefDir.10 = 0
PrefDir.11 = 0
PrefDir.12 = 0
PrefDir.13 = 0
PrefDir.14 = 0
PrefDir.15 = 0
PrefDir.16 = *
Ativo = 1
; Fatores de custo:
cfVia = 50
cfNonPref = 5
cfChangeDir = 2
cfOrthStep = 2
cfDiagStep = 3
cfExtdStep = 0
cfBonusStep = 1
cfMalusStep = 1
cfPadImpact = 4
cfSmdImpact = 4
cfBusImpact = 0
cfHugging = 3
cfAvoid = 4
cfPolygon = 10
cfBase.1 = 0
cfBase.2 = 1
cfBase.3 = 1
cfBase.4 = 1
cfBase.5 = 1
cfBase.6 = 1
cfBase.7 = 1
cfBase.8 = 1
cfBase.9 = 1
cfBase.10 = 1
cfBase.11 = 1
cfBase.12 = 1
cfBase.13 = 1
cfBase.14 = 1
cfBase.15 = 1
cfBase.16 = 5
; Número máximo de ...:
mnVias = 20
mnSegments = 9999
mnExtdSteps = 9999
mnRipupLevel = 50
mnRipupSteps = 300
mnRipupTotal = 500
[Me siga]
@Rota
Ativo = 1
cfVia = 8
cfBase.16 = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Ônibus]
@Rota
Ativo = 1
cfVia = 10
cfChangeDir = 5
cfBusImpact = 4
cfPolygon = 25
cfBase.16 = 10
mnVias = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Rota]
@Padrão
Ativo = 1
[Otimizar1]
@Rota
Ativo = 1
cfVia = 99
cfNonPref = 4
cfChangeDir = 4
cfExtdStep = 1
cfHugging = 1
cfPolygon = 30
cfBase.16 = 10
mnExtdSteps = 20
mnRipupLevel = 0
mnRipupSteps = 100
mnRipupTotal = 100
[Optimize2]
@ Optimize1
Ativo = 1
cfNonPref = 3
cfChangeDir = 3
cfBonusStep = 2
cfMalusStep = 2
cfPadImpact = 2
cfSmdImpact = 2
cfHugging = 0
cfPolygon = 40
mnExtdSteps = 15
[Optimize3]
@ Optimize2
Ativo = 1
cfVia = 80
cfNonPref = 2
cfChangeDir = 2
cfPadImpact = 0
cfSmdImpact = 0
cfPolygon = 50
mnExtdSteps = 10
[Optimize4]
@ Optimize3
Ativo = 1
cfVia = 60
cfNonPref = 1
cfPolygon = 60
cfBase.16 = 12
[Otimizar5]
@ Optimize4
Ativo = 1
cfVia = 40
cfNonPref = 0
cfPolygon = 70
cfBase.16 = 14
mnExtdSteps = 5
[Otimizar6]
@ Optimize5
Ativo = 1
cfVia = 20
cfBase.16 = 16
[Optimize7]
@ Optimize6
Ativo = 1
cfBase.16 = 18
[Otimizar8]
@ Optimize7
Ativo = 1
cfBase.16 = 20