Formations:PCB:Routage

From Electrolab
Revision as of 10:18, 20 September 2018 by Flax (Talk | contribs)

Jump to: navigation, search

{Notes de l'auteur : cette page est un draft. Il est nécessaire de la compléter, Sur le fond avec ce que j'aurais omis (en particulier en CEM car je suis une b*te en CEM) Sur la forme en faisant de la mise en forme et en mettant des exemples visuels le cas échéant. }

Routage et conception de circuits imprimés

En présupposant une connaissance de base de l'électronique, de la saisie schématique, de l'utilisation d'un logiciel de CAO électronique (Kicad, Altium, Orcad ...) et de la fabrication de circuits imprimés, cette formation aborde:

  • La préparation d'un circuit avant de passer au routage
  • Les bonnes pratiques
  • Les méthodes "classiques" permettant de réaliser un routage de qualitay sans (trop) de douleur
  • Les attendus pour réaliser un dossier de fabrication qui ne sera pas rejeté par le fabricant de PCB / qui ne sera pas raté quand fabriqué en DIY

Glossaire

  • via
  • mcu
  • fpga
  • stackup
  • prepreg
  • substrat
  • couche
  • Refusion / vague
  • vernis épargne
  • Locating / mires
  • etc <A remplir !>

Préparation

Avant de se lancer dans le routage, il faut vérifier certains points dans le schéma pour se faciliter la tâche:

  • Vérifier les empreintes : il ne faut pas qu'il y ait d'erreur sur les dimensions, le nombre de pattes, le pinout (pinout = correspondance entre les patte fonctionnelles du symbole du schéma et les pattes physiques du boîtier du composant). S'il y a des erreurs à ce niveau:
  1. Il est fort probable que ça ne soit pas vu au routage, et donc on va fabriquer une carte qui ne marchera pas, vu que les signaux ne seront pas connectés correctement.
  2. Si une erreur est vue au niveau du routage, il est fort probable que ce soit très (trop) tard, ce qui va forcer à reprendre une partie potentiellement non-négligeable du routage, donc fatigue et perte de temps.

A vérifier : dimensions des pads, écartement des pads, diamètres des trous et des pastilles, isolations. Et tant qu'on y est, au-delà des pads et des pastilles, ça vaut le coup de prendre le temps de dessiner sur les couches mécaniques le contour de l'enveloppe physique complète du boîtier, pour que, une fois sur le routage, on sache combien de surface le composant va prendre, et éviter de trop le rapprocher d'un autre et de se rendre compte en soudant les composants que ça ne passe pas parce que les composants ramponnent.

A noter qu'il faut se méfier, pas uniquement des empreintes, mais aussi - et surtout - des symboles. Quand les empreintes sont attachées à la netlist, ce sont les numérotations des symboles du schéma qui sont prises pour faire le pinout. Se méfier car sur les symboles, chaque pin à un numéro ET un nom. Or, il peut arriver que les deux soient mélangés. Il faut bien vérifier que les numéros des pins sur le symboles soient bien les bons numéros des pins physiques sur les boîtiers.

Exemple typique (c'est du vécu) : les symboles de transistors dans les librairies fournies par Kicad. Je mets un BC850 sur le schéma, le symbole est dans la lib "transistors" de Kicad. J'y attache le boîter que je veux y attacher : SOT-23 (CMS). Pour info, les transistors bipolaires en boîter SOT-23 ont TOUJOURS le même pinout (c'est une exception rare). Une fois la carte fabriquée, le circuit ne marche pas, le pinout n'est pas bon. Je vérifie le pinout du symbole : ils ne correspondent pas à un transistor bipolaire en SOT-23, en effet les numéros des pins sur le symbole de la lib Kicad correspondent au pinout du BC850 en boîtier TO-8 (traversant), boîtier qui n'est pas normalisé, et dont le pinout peut changer d'un modèle de transistor à l'autre. CQFD.

  • Check la netlist : vérifier qu'il n'y a pas des nets reliés à un seul composant (sauf antenne, évidemment), vérifier qu'il n'y a pas de nets qui ont des noms proches, mais pas exactement les mêmes (fautes de frappe au niveau de labels, très courant). Pour cela le DRC peut faciliter (DRC = Design Rule Check, c'est un outil du logiciel de CAO qui fait des vérifications et rapporte les résultats. Un DRC doit être réglé pour détecter les erreurs pertinentes, c'est un peu pénible à faire mais ça peut valoir le coup d'y passer un peut de temps).
  • Identifier les nets d'alims et de puissance, savoir combien on doit passer de courant pour pouvoir calculer la largeur de psite requise. Si on même net a plusieurs branche dont certaines avec de la puissance et d'autres pas (exemple : alimentation d'une charge de puissance + lecture de la tension par un shunt), utiliser des net-tie pour séparer les "domaines" de courant. Idéalement il faut utiliser les fonctions de directives si elles sont disponibles dans le logiciel de CAO (Kicad n'en a pas nativement) et assigner des largeurs de pistes dans le schéma, pour que ça soit pris en compte au routage. Sinon au minimum noter le nom des nets pour savoir lesquels doivent avoir une largeur différente du standard.

<photo BAB>

Surface

Pour savoir quelle est la surface de PCB requise pour router, on utilise souvent un ratio entre la surface des empreintes et la surface routable, en excluant les connecteurs (ici par "surface des empreintes" j'entends la somme des enveloppes des empreintes de tous les composants de la carte). Sur du double face en FR4, un ratio 1.6, voire 1.5 est suffisant, ce qui signifie que le PCB doit avoir au moins 50% de surface routable en plus que la surface des empreintes des composants. Pour rester raisonnable il vaut mieux faire un ratio d'au moins 2 ou 3 (surtout si on est moins fin qu'en classe 4, ou avec des composants sur une seule face).

Exemple avec des composants CMS -> on prend la BOM en Excel, on met des valeurs arrondies, on fait la somme.

Router, en pratique, ça veut dire quoi ?

En pratique, le routage en lui-même sera effectué par l'utilisateur, le logiciel de CAO fournissant uniquement une aide pour ne pas faire de bêtise. L'utilisateur devra placer à la main chaque composants et dessiner à la main chaque piste. C'est long et fastidieux, parfois même compliqué, donc il faut l'aborder avec méthode. Les aides fournies par l'outil seront de différente nature:

  • Une grille "aimantée" pour placer les composants et dessiner les pistes avec plus de facilité (et faciliter la fabrication, voir j'en reparle plus bas)
  • Des pistes qui se dessinent en appliquant automatiquement les contraintes de largeur de piste et d'angle.
  • Empêcher de faire des court-circuits entre pistes qui ne sont pas sur le même net.
  • Empêcher de trop rapprocher des pistes ou des zones de cuivre, de façon à garantir l'isolation électrique.
  • Remplir automatiquement les polygones.
  • Dessiner automatiquement les jonctions particulières (freins thermiques).
  • Etc ...

En fonction des logiciels, on peut configurer très finement pour mettre des contraintes automatiques très pointues : contraintes sur le placement des composants interdisant de trop les approcher les uns des autres ou des bords de carte, largeurs de piste différentes en fonction du net auquel elles sont reliées (cf. net tie), isolations différentes en fonction des nets, priorités entre les polygones pour pouvoir les superposer et créer des formes complexes facilement, etc.

Quand je dis que le logiciel "interdit" ou "empêche" une action, c'est à prendre au sens littéral : si on essaye de faire l'action, le logiciel ne la fera pas. Par exemple, si on a tiré une piste, puis que l'on tire une autre piste, sur un autre net, et qu'on essaye de la faire croiser la piste précédente, le logiciel ne dessinera pas la piste. Le dessin de la piste ne suivra pas le curseur de la souris, et soit s'arrêtera au dernier endroit possible qui ne croise pas la piste, voire va prendre automatiquement un chemin qui contourne la première piste, de façon à ne pas la croiser. C'est pour cela que l'on parle de conception "assistée" par ordinateur : il faut faire le travail soit-même, mais le logiciel aide en empêchant de faire des choses interdites.

Autorouteur, routage automatique

C'est un paradoxe dans le monde de la CAO électronique : tout logiciel de CAO se doit de disposer d'un routeur automatique, mais aucun électronicien n'acceptera jamais de l'utiliser, sous peine d'être la risée de ses confrères. En général, le résultat d'un routage automatique est moins optimisé qu'un routage fait à la main, et est généralement "pas beau". Nous, les électroniciens, on aime pas le routage automatique. C'est comme ça.

Contraintes, configuration du routage

Comme dit précédemment, le logiciel va assister le routage de façon très active. Mais il le fait en suivant des contraintes qu'il faut lui indiquer explicitement. Les contraintes sont importantes, à la fois pour se simplifier la vie pendant le routage en lui-même, amis aussi pour garantir que le routage sera conforme aux spécifications données par le fabricant de PCB. En effet, aucun fabricant de PCB ne peut fabrisquer un PCB que ses machines ne sont pas capables de fabriquer. Cela peut sembler évident, mais ça fait du bien quand c'est dit. Pour mieux comprendre cela, il faut regarder ce qu'il se passe quand on fait fabriquer un PCB.

Faire fabriquer un PCB

Pour faire fabriquer un PCB, on envoie à une entreprise de fabrication de PCB un dossier de fabrication. Ce dossier va contenir les fichiers définissant le circuit imprimé que l'on veut, ce qui se traduit en pratique par une liste de fichiers vectoriels dessinant les différentes couches du PCB. En fonction de ce que l'on demande, il faut que les couches requises soient présentes dans le dossier. Par exemple, si on demande une sérigraphie, il faut que la couche sérigraphie soit présente dans le dossier. Sinon, au mieux vous n'aurez pas de sérigraphie sur le PCB, mais vous aurez quand-même payé le supplément, ce qui est balot.

Mais encore, un fabricant de PCB va utiliser des machines pour fabriquer des PCBs. Or, ces machines ont des limites, des tolérences maximales ... Les limites des machines définissent la qualité maximale que le fabricant peut obtenir. De ce fait, les fabricants annoncent ces limites, en se prenant une marge de façon à être surs de pouvoir fabriquer selon ces limites qu'ils se fixent. Ces limites sont les spécifications de fabrication.

Exemple de specs de fab' : <insérer une spec, genre PCBpool ou eurocircuits>

Quand un fabricant annonce ses spécifications de fabrication, il ne sert à rien d'envoyer un dossier dont les contraintes dépassent ces spécifications. Au mieux il refusera de fabriquer, au pire il fabriquera quand-même, il y aura des approximations et le résultat sera désastreux et ne marchera pas. Les fabricants sérieux utilisent des outils logiciels spécifiques pour tester les dossiers qu'ils reçoivent de leurs clients, et vérifient ainsi automatiquement si les dossiers dépassent leur qualité de production, avant même de fabriquer.

Donc, il faut garantir que le routage est conforme aux specs du fabricant, sinon ça va mal se passer.

En général, les specs des fabricants sont calibrées sur les normes JEDEC, de façon à ne pas perturber les clients. La plupart du temps ils annoncent quelle classe de routage ils peuvent atteindre. Plus la classe est élevée, plus les pistes sont fines et rapprochées. La plupart du temps, d'ailleurs, le tarif n'est pas le même en fonctino de la classe dont on a besoin, il peut donc être intéressant économiquement de ne pas être trop gourmand au niveau finesse de gravure.

Il est à noter qu'un dossier peut se voir refuser, même s'il est généré à priori avec les bonnes règles. En effet, els logiciels de vérification des fabricants sont souvent beaucoup plus précis et pointilleux que le logiciel de CAO utilisé par le client, et il peut y avoir des détails des couches qui enfreignent les specs du fabricant. Exemple vécu : un routage fait avec Altium, refusé car il y avait des isolations non respectées à certaines jonctions entre polygones et pads. En fait, il s'est avéré qu'Altium, dans certains cas, générait mal les angles sur les polygone, ce qui faisait qu'il y avait des coins de pads de composants qui se retrouvaient trop proches du cuivre généré dans le polygone, au niveau de la pointe de l'angle du pad. Altium ne voyait aucune erreur, le logiciel du fabricant si. Je n'ai pas de règle à donner pour éviter ce cas. Ça arrive rarement, et dans des cas particuliers. Honnêtement, il faut vraiment faire des routages biscornus pour rencontrer ce genre de problèmes.

Sachant quelles sont les contraintes de fabrication, on peut maintenant les ajouter dans le lgociel de CAO, de façon à ce qu'elles soient appliquées automatiquement.

<Sous Kicad : ajout des contraintes>

Format des fichiers

Dans le logiciel de CAO en lui-même, il n'y a pas de règle universelle. Certains utilisent une netlist pour les échanges entre la saisie schématique et le logiciel de routage, d'autres pas, et cette netlist peut être plus ou moins lisible (fichier .net en plain text, ou pas). Idem pour les fichiers internes de CAO. Par contre, en sortie, le format est imposé par les fabricants de PCB ou les outils de fabrication (plotteur laser ...). La majeure partie du temps, le format dans lequel il faut générer le dossier de fabrication est le format GERBER (https://en.wikipedia.org/wiki/Gerber_format). C'est un format vectoriel, historiquement utilisé pour les tables tables traçantes, qui est un standard de fait. Il n'y a jamais vraiment eu besoin de remplaçant et le GERBER est resté le standard par défaut. D'autres formats existent mais sont moins courants dans ce champ d'application : ODB++, GenCam, DXF ...

A noter que certains fabricants acceptenr les formats des logiciels de CAO. Par exemple, Seeed accepte qu'on fournisse le fichier .kicadpcb de Kicad, directement, sans faire d'export.

Architecture multi-cartes

On peut avoir, dans un seul et même circuit / produit, plusieurs cartes reliées par des connecteurs inter-cartes. Dans ce cas il faut faire l'architecture du circuit complet pour identifier où le découpage se fera entre les cartes, et donc où seront les connecteurs dans le circuit, et donc quelles fonctions seront sur quelle carte, et donc quels composants seront sur quelle carte.

Ce découpage est assez critique, car il doit être fait au niveau du schéma, il ne peut pas être fait à posteriori sur le routage. Sur le schéma, il faudra ajouter chaque contrepartie de connecteur sur chacun des cartes entre lesquelles chaque connecteur se trouve. Il ne faut pas se tromper dans les connections entre les signaux et les pattes des connecteurs, il faut bien faire attention que les numéros soient les mêmes sur chaque carte, et vérifier qu'on ne trompe pas de sens.

Une fois sur le routage, il faudra vérifier que les connecteurs sont bien alignés (surtout s'il y a plusieurs connecteurs intercartes sur une même carte) et bien dans le même sens.

D'un point de vue plus général, le découpage est critique, car il va déterminer la place occupée par les composants sur chaque carte, ainsi que la complexité des connexions. Plus il y a de signaux à faire passer sur une connexion intercartes, plus les connecteurs seront encombrants (et chers). De plus, une liaison à travers un connecteur est moins fiable qu'une liaison directe sur le PCB, et est limitée en puissance et en fréquence. Il faut donc éviter de faire transiter des signaux haute fréquence, des signaux d'alim, des signaux de puissance (fort courant, forte tension), des signaux sensible au bruit ou aux variations d'impédance (boucle de régulation de circuit d'alimentation, signaux à faibles niveaux et haute impédance ...).

Donc, si on fait une connexion inter-cartes, il faut se débrouiller pour y faire passer le moins de signaux possibles, et des signaux "non-critiques". Ca ne laisse pas beaucou de possibilités ...

PCB flex

Sans entrer dans le détail, c'est la solution luxueuse pour éviter d'avoir des connecteurs inter-cartes. A priori, utiliser un PCB flex permet de faire le découpage au routage, sans aucune modification sur le schéma. De plus, c'est beaucoup plus fiable qu'un connecteur soudé, et ça a quasiment les même performances que le reste du PCB "pas flex". Par contre, attention aux contraintes de routage (dépendent du fournisseur), aux contraintes mécaniques (angle de flexion), et au prix !

Penser aussi au montage : les PCB flex sont nettement plus fiables que les systèmes à multiples PCBs avec connecteurs inter-cartes ... si on respecte leur specs de contraintes mécaniques ! Si l'angle de flexion une fois monté dans le boîtier n'est pas bon, le flex peut casser à terme. Et s'il faut faire des manipulations tarabiscotées pour monter le PCB dans le boîtier, on risque de casser le flex au montage.

Connections isolées (opto-coupleurs, isolateurs électriques, transformateurs)

Sans entrer dans le détail, les contraintes de ce genre de liaisons sont très proches des liaisons inter-cartes. Les isolations électriques coûtent cher, donc il faut limiter le nombre de signaux qui y sont astreintes. Sur des problématiques d'isolation électrique (et pas uniquement galvanique), la mécanique va aussi entrer en jeu, car une zone sans cuivre devra être garantie entre les zones isolées, ce qui signifie que les composants di'solation ne pourront pas être situés n'importe-où.

Composants des deux côtés

D'une façon générale, il est préférable d'avoir des composants d'un seul côté du PCB, même sur un double face. Cela facilite le montage, et dans el cadre d'une carte fabriquée industriellement cela facilite le process, vu qu'il n'y a qu'une seule refusion. Si le manque de surface impose de mettre des composants des deux côtés, il aut essayer au maximum de mettre les composants "lourds" tous du même côté, et de n'avoir que des petits composants sur l'autre face (passifs, SOT-23, SO-8 ...). Si la carte doit être fabriquée industriellement, il y aura une double refusion, et à la deuxième refusion il ne faudra pas que les composants qui sont passés à la première refusion ne tombe par gravité. D'où l'intérêt de regrouper les plus lourds du même côté pour n'avoir que des composants légers sur l'autre face, que l'on fera passer en première refusion (les composants légers ne tomberont pas).

On peut malgré tout envisager de coller els gros composants avec une colle ad-hoc permettant qu'ils ne tombent pas à la deuxième refusion. Le process est plus compliqué et il faut une colle spécifique, donc c'est plus cher.

Contraintes de refusion

En plus des problèmes de poids cités plus haut, il faut faire attention que tous les composants passent à la refusion. Les composants "solid-state" sont comptibles en général. par contre, els composants électro-mécaniques peutvent poser problème, typiquement:

  • Les relais : ce sont des enceintes confinées remplies d'un gaz inerte, certains ne peuvent aps apsser en refusion sous peine de casser leur étanchéité.
  • Les connecteurs : certains plastqieus utilisés sur des connecteurs ne tiennent pas les température de refusion.
  • Les switches : les pièces plastiques peuvent gripper les mécanismes
  • etc.

Les composants qui ne passent pas en refusion devront être soudés à la main, ou à la vague.

Le routage

On y arrive enfin. Comme dit précédemment, pour router une carte il faut placer les composants puis tirer les pistes. Pour cela il vaut mieux au préalable savoir quelle est la forme qu'aura la carte. Il n'est pas interdit de faire le routage, puis dessiner le contour de la carte autour après, si on a pas de grosse contrainte mécanique. Si on a déjà un boîtier, ou des contraintes mécaniques, il vaut tout même mieux dessiner le contour du PCB en premier.

  1. Contour / edge cut / descente de composants
  2. Zones méca / fixation / zones interdites / zones isolées

Ordre conseillé pour le placement des composants

  1. Connecteurs
  2. Composants de puissance / radiateurs
  3. Composants qui font de la RF
  4. Gros composants (beaucoup de pattes)
  5. Reste

Ordre conseillé pour le routage après placement

  1. Puissance
  2. Signaux rapides / différentiels
  3. Le reste
  4. Alims faible courant
  5. Masses / plans de masse

Règles générales

  • Toujours afficher le chevelu général, ou au minimum local pour le placement, sinon on ne comprend pas ce qu'on fait.
  • Autant que possible, il faut regrouper les composants par fonction. Ca permet de les traiter comme des "macro composants" et c'est beaucoup plus facile à gérer !
  • Toujours utiliser la grille en "snap" ("aimantée"). Tout ce qui est dessiné sur le PCB par l'utilisateur doit être défini sur la grille, pas de placement libre, sinon c'est impossible à fabriquer. A la fin du routage, les fichiers de fabrication sont des fichiers vectoriels, qui donnent des coordonées permettant de dessiner des formes géométriques. Il faut que ces coordonnées soient définies sur une grille correcte, sinon les outils de fabrication vont faire des arrondis, et les arrondis c'est pas bon. A vérifier sur les specs fabricant mais à priori on peut utiliser systématiquement du SI. En général, sur de la classe 4, on prend un grille de 0.25mm pour le placement des composants, un grille de 0.1mm pour le routage.

1) Si la mécanique est connue (boîtier, contraintes sur la hauteur, sur l'arrivée des connections ...), alors il faut commencer par dessiner le contour PCB (Edge cut / Board edge). Pour ça il y a plein de méthodes. De base on peut toujours dessiner "à la main" dans le logiciel, en utilisant l'outil de cotes. La méthode la plus clean consiste à dessiner le contour sous un logiciel de CAO mécanique - le même que celui où l'on dessine l boîter, puis de l'importer dans le logiciel de CAO électronique. Par exemple, Kicad peut importer du DXF.

Il ne faut pas hésiter à utiliser les couches de "commentaires" pour mettre des indications qui aideront à router sans pour autant que ces indications se retrouvent sur le cuivre. Par exemple, sous Kicad on dispose de deux couches "user" et d'une couche de commentaires. personnellement j'utilise toujours la couche user 1 pour dessiner le contour du PCB (je mets les cotes et les traits de guidage), et la couche user 2 pour les éléments internes à la carte (cotes pour le placement des connecteurs, zones interdites, zones fonctionnelles ...). Une autre approche serait d'utiliser une des couches pour mettre toutes les cotes, et l'autre pour dessiner toutes les indications. Comme ça on peut désactiver l'affichage de la couche avec les cotes pour y voir plus clair.

2) Une fois le contour mécanique dessiné, mettre les contraintes liées aux systèmes d'attache : vis et cie, sur lesquelles onne peut pas mettre de composants ou de pistes (pour éviter des court-circuits).

Sur tous ce qui est attaches et "retours mécaniques" sur le PCB, il faut faire attention à prendre de la marge. En effet, rien ne garantit que quand on monte la carte dans le boîtier tout s'aligne au micron près. Et même, quand on va monter la carte on peut faire des fausses manips, et casser involontairement un composant qui est trop proche d'un bord, par exemple.

Lorsqu'on importe pour la première vois les composants sur le PCB, en général ils sont balancés n'importe comment. Sur Kica par exemple, ils sont tous empilés les uns sur les autres au même endroit, il faut donc les sélectionner un par un et les séparer. C'est chiant mais c'est comme ça. Tous les logiciels ne fonctionnenet pas comme ça. Altium par exemple permet de faire un pseudo-placement automatique, qui permet d'avoir les composants les uns à côtés des autres au lieu de les avoir empilés. Ca fait sauter une étape bien rébarbative. Mieux : on peut grouper les composants par fonction et définir des "rooms", qui sont des zones sur le PCB, et il va automatiquement "trier les patates" et placer les composants en vrac mais dans leurs "room" dédiée. Une fois qu'on a descendu et séparés les composants, il vaut mieux les regrouper par fonction. Ca permet de mieux s'y retrouver. Le découpage va donner:

  • Connecteurs
  • Fonctions de puissance
  • Alims
  • MCU / FPGA / SoC / ASIC (fonctions "intelligentes")
  • Toutes les autres fonctions (interfaces, modules, etc) qui seront séparées entre elles.

A partir de là on va commencer à y voir plus clair et commencer le placement.

Placement

Remarques générales

  • Il est préférable d'avoir tous les composants sur la même face. Ca simplifie la lisibilité pendant le routage et pendant le montage de la carte. Mettre des composants sur les deux faces peut faire gagner en surface, mais il y a moins de place pour les vias, donc le gain n'est pas doublé.
  • Si on a des composants traversants, on peut faire passer des pistes dessous. Pour pouvoir en tirer parti il vaut mieux aligner les composants, plutôt que de les mettre dans des sens différents. Par exemple, si on a beaucoup de résistances, il vaut mieux les mettre toutes parallèles les unes aux autres. Ca permet d'optimiser le placement, et ça facilite le routage en X-Y (voir plus bas).
  • Les capas bypass / tank des circuits intégrés doivent être placées au plus près des pins d'alim des composants en question.

1) Placer les connecteurs, généralement plutôt en bord de carte, et vers les faisceaux auxquels ils doivent se relier.

1b) Si il y a des zones isolées électriquement, c'est le moment de les définir. En effet, d'une part il faudra que ces zones soient monolithiques, mutuellement exculsives et le plus convexes possibles (pas de frontières biscornues entre les deux). D'autre part, si il y a isolation électrique, il faudra garantir une zone sans cuivre entre les zones, zone qui devra avoir une largeur minimum garantie tout au long de la frontière. Donc plus la frontière a une forme compliquée, plus il va être difficile de garantir cette isolation sans se prendre la tête, géométriquement parlant.

2) Composants de puissance : proches des connecteurs où sort la puissance, si possible dans une zone "proche du bord".

3) Les "gros composants", mais pas de puissance, ce sont ceux qui ont beaucoup de pattes (MCU, FPGA, SBC, modules ...). En général on cherche à placer ces composants proches le centre de la carte. D'autant plus s'il n'y en a qu'un seul (genre un MCU). Le mieux estd'excentrer dans le sens des connections : plus il y a de connections vers un connecteur, plus il faut le rapprocher de ce connecteur. Ca permet de faciliter le routage, et en plus ça permet de choisir comment placer plusieurs gros composants.

Un truc qui marche pas mal, c'est de placer les composants sur une sorte de barycentre entre les connections avec l'extérieur de la carte. <A compléter> En gros, il faut regrouper les composants par fonction, et rapprocher chaque fonction des connecteurs vers lesquelles elles vont. Approxiamtivement pour le moment, le but est juste de voir vers où vont les signaux connectés au gros composant. Ensuite, voir de quel côté il y a le plus de signaux qui vont vers le gros composants. C'est vers ce coin-là qu'il est préférable de poser le gros composant. Pas collé au connecteur vers lequel il a le plus de connexions, mais s'en rapprocher. Ca peut paraitre contre-intuitif, car on pourrait s'imaginer que ça créée de la congestion. En pratique ça facilite le routage, car il y aura moins de longues pistes à tirer.

4) S'il y a des signaux rapides / différentiels, placer les composants concernés le plus proche possible des connecteurs concernés, pour que les pistes soient le plus directes vers la sortie.

5) Placer le reste, normalement ça n'est pas trop dur, il n'y a plus que des petits composants.

Pour faire une analogie, l'idée c'est que quand on doit faire rentrer des gros cailloux et du sable dans un bocal, il vaut mieux d'abord mettre les cailloux, parce que le sable va pouvoir s'infiltrer facilement entre les cailloux. Par contre l'inverse marche moins bien. Les gros cailloux ce sont les gros composnts (connecteurs, composants de puissance, composants avec beaucoup de pattes), le sable c'est le reste.

Une fois que les composants sont placés, on peut commencer à tirer les pistes. Concernant le routage automatique : ce n'est pas conseillé. Même après un bon placement le routage automatique va donner des résultats aléatoires, et il est plus intéressant de passer un peu de temps à tirer des pistes que de se fier à un algo qui souvent n'est pas efficace.

Routage

Remarques générales

  • Virages sur les pistes : Toujours tourner à 45°. Idéalement faire des arcs de cercle.
  • La largeur de pistes définit le courant max qu'on peut passser dans une piste -> plus c'est large, plus ça passe de courant. Le mieux c'est de définir des classes de nets, avec les largeurs associées, pour que le logiciel adapter automatiquement la largeur quand on tire la piste.
  • On ne route pas les masses (voir les dernières étapes), sauf les masses de puissance s'il y en a, pour garantir qu'elles pourront faire passer le courant de puissance.
  • En double face, router de préférence en X-Y : choisir arbitrairement un sens (horizontal ou vertical) pour une face, tirer les pistes dans le sens choisi sur cett face, et passer sur l'autre face pour tirer les pistes dans l'autre sens. Et le faire systématiquement. Ca permet d'être sûr de ne jamais être bloqué.
  • En simple face + composants traversants, on peut faire du simili X-Y si les composants sont mis tous dans le même sens : router préférentiellement des pistes qui vont perpendiculairement aux composants traversants.
  • Quand on fait partir une piste d'un pad traversant, bien réfléchir au côté sur quelle face du PCB on pourra souder. Attention aux connecteus HE10 genre ceux des Arduino : on ne peut pas souder sur la face contre laquelle la carte est posée ! Il est facile de se faire avoir sur ce point car le logiciel de CAO considère que les vias et trous sont métallisés, et donc que la connection électrique sur les trous est automatique entre les deux faces. <photo>
  • Quand on fait partir une piste d'un pad CMS, sur un composant passif en petit boîtier genre 0603 et en-dessous, il est préférable que les piste sur chaque pad partent dans la même direction. <Photo> Cette règle est applicable surtout pour les cartes qui sont fabriquées à la refusion, car elle permet d'éviter l'effet "tombstone", ou "effet Manhattan", qui fait que ces petits composants se "lèvent" à la refusion du fait d'un refroidissement non-homogène de non-symmétrique de la patte à braser. Si vous soudez à la main -> inutile.
  • Si la carte est montée industriellement avec refusion + vague pour les pads traversants, prévoir un espace sans composants et sans vias sur le bottom (côté soudure) autour des pads traversants. Ceci pour permettre à la buse de soudure à la vague de passer sans "noyer" des composants.
  • Eviter les angles aigus. Ca se grave mal, quel que soit le process.
  • Si vous fabriquez vous-même, évitez de faire des pistes trop fines. 0.5mm ça reste vérifiable visuellement, en-dessous c'est chaud. S'il y a besoin de serrer des pistes, il vaut mieux n'avoir que les pistes concernées qui soient plus fines, et garder les autres à une largeur plus élevée, voir ne réduire la largeur de piste que localement.
  • Prévoyez de l'espace pour mettre du texte (nom de la carte, révision du routage), que cela soit dans le cuivre ou bien un espace vide pour coller une étiquette (à prendre en compte pour le calcul du ratio de surface).


Ordre de routage <A remettre d'équerre avec les autres parties !!>

  1. Lignes de puissance (pistes larges, polygones), faire au plus court, router les masses de puissance avec, et coller ces pistes les unes aux autres le plus possible (les coller à la masse de puissance surtout). Eviter de changer de couche, mais si vous y êtes forcé ne pas oublier de mettre suffisamment de vias pour passer le courant. ne pas oublier que le courant qui rentre par la piste d'alim doit sortir par la piste / plan de masse. Donc prévoir la bonne largeur pour l'alim ET la masse de puissance, et les équilibrer. Idem pour les vias : si on doit faire des vias sur une piste de puissance et la masse associée, mettre le même nombre de vias sur la piste d'alim et sur la piste de masse.
  2. Signaux rapides et différentiels, faire court et direct, éviter de changer de couche autant que possible.
  3. Le reste
  4. Alims sans courant (AOP, capteurs), partir de l'alim, aller aux capas bypass / tank, puis aux pins des composants.
  5. Optimiser les vias si routage en X-Y (supprimer les sauts de couche inutiles)
  6. Tracer les plans de masse et générer pour voir ce que ça donne
  7. Rapprocher les pistes pour agrandir les plans de masse : plus il y en a mieux c'est. S'il y a des signaux sensibles (haute fréquence, très basse impédence), ne pas les coller à d'autres signaux, mais plutôt laisser un peu de plan de masse autour pour les isoler. <photo>
  8. Reconnecter les plans de masses non reliés en ajoutant des pistes de masse et des vias
  9. Ajouter les mires / fiducials / textes

Points particuliers

Vias traversants On ne peut pas en mettre sous les composants, attention.

Vias Attention, ils ne peuvent pas passer un courant infini. Sur une piste de puissance, si on change de couche il faut mettre plusieurs vias pour passer le courant (ou un vias beaucoup plus gros). D'une façon générale il faut éviter de faire des sauts de face sur les signaux de puissance. Pareil sur les signaux haute-fréquence : limiter les sauts de face.

Oscillateurs / horloges MCU et cie Faire le plus court et le moins de surface possible, isoler la masse locale <photo>

DCDC / alims à découpage La boucle du découpage doit faire la plus petite surface possible <photos>

Capas bypass / découplage des circuits intégré Au plus près de la pin d'alim positive, sur le chemin de la piste <photo>

[[Circuits de protection ESD] Au plus près du connecteur, sur le chemin du courant <photo>

HT (haute tension) Isolation 4mm pour le 220V, l'air est plus conducteur que le substrat FR4 <voir refs url>

Capas céramique CMS sur une alim non limitée en courant En mettre 2 en série, placées à 90°. Pas de capa tantale sur une alim non limitée en courant (batterie). <photo>

D'une façon générale, les capas céramique sont des composants fragiles, sensibles à la flexion du PCB. Il faut faire attention à leur placement, et ne pas les mettre dans une zone qui risque de subir des déformations. Le plus souvent ça peut avoir lieu utour des trous de fixation par vis : quand on vis, on va contraindre le PCB qui va se déformer localement. Donc éviter de mettre des capas céramique proche des trous de fixation par vis. Idem si il y a des connecteurs montés à force (press-fit), il va y avoir des micro-vibrations locales au moment du montage du connecteur, et des capas montées proches pourraient casser. Les écarter.

Capas chimiques + composants qui chauffent Pas bueno ! ( Ecarter les capas électrolythiques des composants ou pièces mécaniques qui chauffent, pour améliorer leur durée de vie. Pour info, la durée de vie donnée par les constructeurs est données pour un fonctionnement à la température max nominale (ex.: 85°C / 1500h c'est garanti 1500h à 85°C permanent de température de la capa, ambiant + auto-échauffement). La durée de vie double tous les 10°C en-dessous de la température max du composant. Ce qui signifie qu'une capa spécifiée 85°C / 1500h dure 3000h à 75°C, 6000h à 65°C, 12000h à 55°C, etc. Donc ça vaut le coup de leur éviter un coup de chaud !

PCB avec plus que 2 couches Prévoir une couche dédiée au plan de masse et une couche dédiée aux plans d'alims. Aucune piste sur la couche de plan de masse. on peut passer quelques signaux sur la piste de plan d'alim (sans abuser). Mettre la couche de plan de masse en couche interne la plus proche de la face qui a des composants (si composants sur les deux faces -> plus proche de la face qui a les gros composants / composants de puissance, ou le plus de composants). Ce qui donnera:

Top (signaux)
Power in (masse, alims)
Signal in (signaux)
Bottom (signaux)

Au-delà, on ajoute des couches de signaux en interne. On peut avoir une couche dédiée alims et une couche dédiée masses, voire même plusieurs pour chaque ! <mettre des exemples de stackup en > 4 couches>

Mires Les mires ont pour but de permettre aux outils de fabrication de s'aligner correctement, ce sont des repères visuels. Dans l'industrie elles serent surtout pour les outils de test fin de chaîne et - surtout - au pick 'n' place. Elles doivent être présentes sur les couches cuivre, sur les deux faces, et dans la surface de la carte. Si le montage des composants se fait sur le panneau, on peut aussi mettre des mires sur les marges du panneau. Normalement deux suffisent à deux extrémités de la carte (le plus éloignées possible), mais il peut être préférable (voir requis par le câbleur) d'avoir des mires proches des composants avec un pitch un peu fin (VQFP, BGA ...).

Sur un process manuel elles permettent surtout d'aligner les couches pendant la fabrication du PCB (aligner les typons pour l'insolation). Dans ce cas pas obligé de les mettre dans la carte, on peut les mettre en dehors, tant qu'on imprime le typon plus large que la surface de la carte, pour pouvoir aligner manuellement.

<Exemples de mires>

Panneaux

Considérations pécuniaires

on dépasse un peu du strict cadre du routage, mais quelques infos pour économiser des $$$. Si vous faites fabriquer votre PCB, il y a certains points à prendre en compte pour en diminuer le coût. A noter que la plupart de ces préconisations sont valables pour de la grande série, et ne rentre peut-être pas en ligne de compte sur des petites quantités, la fabrication de PCBs "prototypes" en petite série ne permettant pas de bénéficier d'économies d'échelle.

D'une façon générale, chaque étape de fabrication c'est du temps machine + du temps d'opérateur + de l'usure machine + du consommable. Si vous en supprimez - parce que ce n'est pas strictement nécessaire pour avoir un PCB qui marche, ça coûte moins cher.

Géométrie Difficile de donner des règles générales, mais dans la grande majorité des cas la géométrie des formes dessinées pour les pistes ne fait pas varier le prix. Potentiellement, s'il y a beaucoup de vecteurs (exemple : une image bitmap traduite en GERBER sur le cuivre ou la sérigraphie) cela peut être facturé plus cher. Sur du prototypage je n'ai jamais vu de contraintes à ce sujet. En général c'est plus simple : si les machines n'arrivent pas à faire les typons, ce n'est pas plus cher, par contre le dossier est refusé.

Surface Plus yen a, plus c'est cher. Si vous voulez économiser, routez serré ! Et idéalement cherchez même à faire rentrer plusieurs PCBs dans un rectangle plus grand, qui sera inférieur ou égal à la taille de panneau du fabricant. Si celui-ci n'est pas un chacal (et ne vous les sépare pas de force) ça vous reviendra mécaniquement deux fois moins cher que de faire les cartes une par une. Et dans ce cas : Tetris Master is your friend.

Classe de routage Plus la classe est élevés, plus c'est cher, car il faut réquisitionner les machines les plus performantes de l'usine, et il faut faire plus de contrôles. La classe standard dans le domaine industriel aujourd'hui c'est la classe 4. Au-dessus, très probable - mais pas systématique - qu'il y ait un surcoût. D'une façon générale, pour s'éviter des problèmes, il ne faut pas router au-dela de la classe max requise par le composant limitant (souvent ce sont les BGA avec un pitch ultra-serré qui font chier). Idéalement, si il n'y a que quelques composants qui imposent une classe élevée, ne pas router toute la carte dans cette classe, rester dans une classe plus basse (viser classe 4), et ne router à la classe requise que localement autour du/des composants qui posent problème.

Épaisseur de cuivre Le standard c'est 35µm. On peut avoir d'autres épaisseurs, typiquement sur des circuits de puissance un peu velus on peut trouver du 70µm, mais ce n'est pas courant. Bien entendu, + de cuivre = + cher.

Substrat Évidemment le type de substrat fait varier le coût. FR1 < FR2 < FR3 < FR4 < les substrats spécifiques (CEM, SMA ...), en gros. Mais, franchement, la différence entre les FR est pas suffisamment énorme pour justifier de se faire chier avec du FR1 ou du FR2. Prenez du FR4.

Épaisseur du PCB Le classique c'est 1.6mm. On peut avoir d'autre épaisseurs, mais c'est moins courant. A voir en fonction du fabricant. Bien entendu, plus c'est fin, plus c'est flexible, mais aussi plus c'est fragile, et moins on peut mettre des couches de cuivre.

Flex Beaucoup plus fiable qu'un connecteur, mais mécaniquement contraignant et beaucoup plus cher. Et en prototypage c'est rare que ça soit proposé (à des prix raisonnables, s'entend). A noter qu'il faut définr le contour de la partie flex dans une couche spécifique. En pas se tromper entre l'intérieur et l'extérieur de la partie flex (à vérifier auprès du fabricant).

Perçage / vias Attention, c'est un peu compliqué. En général, les fabricants ne font pas payer de suppléments par rapport à la quantité de trous. Néanmoins, devant la tendance récente des concepteur de mettre des vias PARTOUT et de CRIBLER les plans de masse de vias, cette politique n'a plus la cote. Donc y aller mollo sur les vias dans les plans de masse. Ça veut dire moins de 500 trous / dm² (<à vérifier>).

Au-delà de ça, encore une fois il faut penser process. Les trous (pads traversants, vias) sont faits soit à la CNC (pour les gros diamètres > 0.3mm <à vérifier>) soit au laser (< 0.2mm <à vérifier>). Les trous à la CNC ça coûte du consommable (forets) et du temps machine (la CNC ne perce qu'un trou à la fois). Les trous au laser, c'est quasiment le même temps machine quel que soit le nombre de trous, et il n'y a pas de foret à remplacer (il y a l'usure du laser, mais la durée de vie est beaucoup plus élevée donc c'est moins critique). Donc, n'avoir que des trous (vias, parce que des pads < 0.3mm ça court pas les rues) de petit diamètre qui passent tous au laser est l'idéal, surtout si vous avez vraiment besoin de faire beaucoup de vias.

Autre paramètre à prendre en compte : le nombre de diamètres de trous différents sur une même carte. A la CNC (> 0.3mm), chaque changement de diamètre impose un changement d'outil -> temps machine -> +$. Et pour peu que le fabriquant ne gère pas l'usure des forets de façon précise sur chaque foret, il va peut-être facturer un foret complet alors que vous n'avez pas de quoi l'user, juste parce qu'au changement d'outil il considère que le foret est à jeter et donc il le facture. Attention à ça : ne pas multiplier les diamètres différents.

Également, éviter les diamètres pas standards. Tout ce qui n'est pas standard coûte plus cher.

Les vias borgnes, ça coûte plus cher, vu qu'il faut percer soit les couches avant assemblage - donc process différent - soit le PCB fini, mais avec plus de précision.

Enfin (mais là ça ne compte que pour de la fabrication industrielle en grande série) plus un foret est fin, plus il est court. Ce qui veut dire qu'il ne peut pas percer profond. Or, pour optimiser le process, on peut percer plusieurs cartes en même-temps : on les empile ! Mais ça ne marche que si le foret est suffisamment long pour percer tous les PCBs. Donc plus il est fin - et court - moins on peut empiler de cartes. <ressortir le graphe de Wurth>

Détourage J'en ai parlé plus haut, si on fait des cartes carrées -> v-scoring, sinon CNC, le prix peut varier en fonction du fabricant. Il est plutôt probable que le v-scoring soit moins cher.

Vernis épargne Une étape en plus donc +$. C'est néanmoins hautement pratique pour protéger contre la corrosion. Par contre méfiez-vous : le vernis épargne est isolant, mais aucun fabricant ne vous garantira l'isolation électrique (sauf cas trèèès particuliers). Donc se méfier, et éviter de faire passer des pistes sous des composants avec des boîtiers en métal (selfs blindées par exemple) en pensant que le vernis protégera des courts-circuits. La couleur du vernis ne fait généralement pas changer le prix. Attention : il n'y a pas vraiment de standard, donc si vous ne précisez pas la couleur, le fabricant risque de prendre le premier fond de pot qui lui passe sous la main.

Finition Une étape en plus donc +$. Il y a deux grands classiques dansl'industrie : HAL (sans-plomb, air chaud) ou ENIG (étain-or). HAL est moins cher, ENIG plus cher, c'est si certains composants l'imposent (sur certains BGA, il faut de l'ENIG pour que ça se soude bien) ou si on veut stocker les PCB longtemps avant de souder les composants dessus (ça résiste mieux à la corrosion que HAL). Sinon étamage à froid. [1]

Sérigraphie Si la sérigraphie est mal faite (au routage ou mal réalisée par le fabricant) et qu'il y a des écritures sur des pads, ceux-ci vont être impossibles à souder. Pensez-y avant de cocher la case "Silk screen" ...

Liens