Pour une planche simple à deux faces, commencez par créer un polygone au sol sur toute la couche inférieure. L'astuce consiste alors à amener Eagle à acheminer la plupart des connexions sur la couche supérieure. Pour ce faire, réduisez le coût du routage dans un polygone et le coût via. En fait, vous voulez commencer avec des paramètres plus susceptibles de trouver une solution, puis resserrer les exigences sur plusieurs passes d'optimisation.
Avant le routage automatique, acheminez manuellement les traces critiques et connectez toutes les terres que vous pouvez directement au niveau du pad à la couche de sol. Cela l'empêchera de gaspiller l'espace de routage reliant les motifs.
Bien sûr, tout cela doit commencer par une bonne mise en page qui essaie de mettre les choses connectées les unes à côté des autres et orientées pour avoir le moins de croisements possible.
Après le routage automatique, vous devez effectuer un nettoyage manuel. La mesure d'un plan de masse est la petite dimension maximale d'une île. Beaucoup de petites îles valent mieux que quelques grandes. Cela signifie que vous souhaitez que le plan de sol circule dans chaque via si possible. Malheureusement, Eagle a tendance à regrouper les vias, même avec le paramètre hugging réglé sur 0. Vous ne pouvez pas le définir négatif, j'ai essayé. Cela signifie que vous devez voir ce que l'auto-routeur a fait et déplacer un peu les choses pour essayer de briser les blocs de vias.
Il s'agit principalement d'utiliser correctement le routeur automatique et de réaliser que c'est un outil, pas un substitut pour votre propre cerveau. Si vous vous attendez à un incendie et oubliez, vous n'obtiendrez pas de bonnes planches.
Quoi qu'il en soit, voici un fichier de contrôle du routeur automatique de l'une de mes cartes à 2 couches avec la couche inférieure un plan de masse:
[Défaut]
RoutingGrid = 4mil
; Paramètres de trace:
tpViaShape = Round
; Directions préférées:
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 = *
Actif = 1
; Facteurs de coût:
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
; Nombre maximum de ...:
mnVias = 20
mnSegments = 9999
mnExtdSteps = 9999
mnRipupLevel = 50
mnRipupSteps = 300
mnRipupTotal = 500
[Suivez-moi]
@Route
Actif = 1
cfVia = 8
cfBase.16 = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Bus]
@Route
Actif = 1
cfVia = 10
cfChangeDir = 5
cfBusImpact = 4
cfPolygon = 25
cfBase.16 = 10
mnVias = 0
mnRipupLevel = 10
mnRipupSteps = 100
mnRipupTotal = 100
[Route]
@Défaut
Actif = 1
[Optimiser1]
@Route
Actif = 1
cfVia = 99
cfNonPref = 4
cfChangeDir = 4
cfExtdStep = 1
cfHugging = 1
cfPolygon = 30
cfBase.16 = 10
mnExtdSteps = 20
mnRipupLevel = 0
mnRipupSteps = 100
mnRipupTotal = 100
[Optimiser2]
@ Optimize1
Actif = 1
cfNonPref = 3
cfChangeDir = 3
cfBonusStep = 2
cfMalusStep = 2
cfPadImpact = 2
cfSmdImpact = 2
cfHugging = 0
cfPolygon = 40
mnExtdSteps = 15
[Optimiser3]
@ Optimize2
Actif = 1
cfVia = 80
cfNonPref = 2
cfChangeDir = 2
cfPadImpact = 0
cfSmdImpact = 0
cfPolygon = 50
mnExtdSteps = 10
[Optimiser4]
@ Optimize3
Actif = 1
cfVia = 60
cfNonPref = 1
cfPolygon = 60
cfBase.16 = 12
[Optimiser5]
@ Optimize4
Actif = 1
cfVia = 40
cfNonPref = 0
cfPolygon = 70
cfBase.16 = 14
mnExtdSteps = 5
[Optimiser6]
@ Optimize5
Actif = 1
cfVia = 20
cfBase.16 = 16
[Optimiser7]
@ Optimize6
Actif = 1
cfBase.16 = 18
[Optimiser8]
@ Optimize7
Actif = 1
cfBase.16 = 20