Naviguer dans l’édition de schémas - partie 2

1. Un schéma pour communiquer et capitaliser

Nous avons vu dans un premier article (ici) que la première difficulté rencontrée dans la création d’un schéma « complexe » est de correctement l’organiser pour en faciliter la lecture. Il existe en effet de multiples façons de produire des schémas qui seront « logiciellement » équivalents mais qui seront plus ou moins faciles à :

  • à lire, corriger, exploiter dans un temps court après leur production ;

  • à maintenir et réutiliser dans de futurs projets dans un temps plus longs. 

Ces problèmes sont d’autant plus importants qu’ils se posent dans un contexte collaboratif où le créateur du schéma ne sera pas forcément celui qui l’utilisera par la suite (pour la partie routage du PCB, pour la maintenance et encore plus probablement pour la réutilisation de certaines fonctions dans de nouveaux projets).

Certains points ont été évoqués dans l’introduction de ce précédent article mais restent à aborder dans le détail. Nous allons donc maintenant nous attarder sur ces sujets qui sont :

  • l’ajout de commentaires autour d’une fonction ;

  • les spécifications du routage de certaines pistes du PCB (partie puissance ou signaux rapides) ;

Un dernier sujet, déjà évoqué dans le premier article, restera à traiter dans un troisième et dernier article consacré à l’édition de schémas : la prise en compte de variantes dans la conception d’une carte en lien avec le Bill of Material de celle-ci.

2. Commentaires

2.1. Informations générales

L’insertion d’un synoptique du système global a déjà été évoqué dans le premier article en notant qu’il s’agissait d’une information importante pour la compréhension générale du fonctionnement (et des fonctionnalités) d’une carte électronique. Il ne s’agit pas de la seule information d’ordre « générale » à placer dans la partie « schémas » d’un projet de carte complexe. En effet, dans ce type de système, de nombreuses alimentations sont requises et il est fréquent de devoir gérer un timing précis dans l’ordre de mise en marche de ces alimentations pour éviter des dysfonctionnements voire même d’endommager certains circuits. On utilise très classiquement pour cela des circuits connus sous le nom de PMIC (Power Management Integrated Circuits) disposant généralement d’un configuration par défaut de la séquence de mise en marche des alimentations mais ils sont aussi, généralement, programmables. Il est alors nécessaire de préciser la séquence à respecter en incluant dans un schéma un chronogramme précis pour chaque voie d’alimentation comme le montre la figure 1.

Figure 1 – Séquencement des voies d’alimentation d’une carte électronique complexe (extrait de la datasheet du PMIC NXP PF0100 – Default start-up sequence)

2.2. Informations extraites des datasheets de composants

Toujours dans le contexte des alimentations, il est utile de toujours indiquer un nom pour les équipotentielles concernées dans la mesure où il sera plus aisé de les associer à des contraintes de routage. Il est d’ailleurs souhaitable de systématiquement indiquer le courant maximal délivrable par un circuit d’alimentation afin de correctement configurer les largeurs de pistes (cf paragraphe 3.1.).

On peut en outre faciliter la vie d’un futur utilisateur du circuit d’alimentation en question en extrayant les informations utiles de sa datasheet en rappelant par exemple la relation existant entre la tension de sortie et les composants discrets placés à son voisinage (résistances). Toujours dans le même contexte, il est fréquent d’avoir des recommandations quant aux condensateurs (MLCC, classe X5R, X7R, taille du boîtier, etc…) et aux inductances à mettre en œuvre dans un circuit d’alimentation à découpage. Il est alors souhaitable d’ajouter ces informations qui permettront plus facilement de rechercher des équivalents aux références initiales si elles s’avéraient indisponibles pour une deuxième série de production ou pour la réutilisation de la fonction dans un autre projet.

Bien évidemment, ces remarques ne se limitent pas aux seuls circuits de puissance et peuvent se généraliser à toute autre fonction présentant des contraintes spécifiques (figure 2) :

  • Indiquer les tolérances sur les composants dans un circuit analogique de précision ;

  • Indiquer pour un filtre analogique s’il s’agit d’un passe-bas, d’un passe-haut, etc… ainsi que sa fréquence de coupure et sa famille mathématique (Butterworth, Tchebytchev, Bessel, …) ;

  • Préciser la puissance dissipée dans une résistance si elle dépasse la valeur habituelle (1/4 W pour une résistance traversante classique ou 0.1 W pour un pavé résistif CMS 0805 par exemple).

 

 

Figure 2 – Exemples d’informations utiles à ajouter un schéma (peut-être même exagérément détaillées pour le schéma du haut)

 

 

3. Spécifications en vue du routage

3.1. Directives pour certaines pistes critiques

Dans un circuit de puissance, le dimensionnement des pistes (largeur à utiliser) se base sur trois paramètres d’entrée que l’utilisateur doit connaître ou choisir :

  1. Le courant à faire passer dans la piste ;

  2. L’épaisseur de cuivre utilisée (en standard 35 µm mais des épaisseurs de 70 et 105 µm sont également possibles) ;

  3. L’échauffement toléré t de la piste par rapport à l’air ambiant.

Sur la base de ces trois informations, il est alors possible de déterminer les largeurs de pistes requises à l’aide d’abaques (cf. figure 3) ou bien en utilisant des logiciels (Saturn PCB toolkit téléchargeable ici) ou applets en ligne comme sur le site Digikey (appliquant des formules extraites de la norme IPC-2221).

Figure 3 – Abaque pour le dimensionnement des pistes en fonction du courant pour différentes épaisseurs de cuivre [1]

A noter que l’abaque proposé à la figure 3 suppose que les pistes en question se trouvent sur une couche externe (top ou bottom) du PCB. La situation est bien évidemment différente pour une couche interne [2] dans la mesure où leur refroidissement est moins efficace (résistance thermique introduite par la ou les couche(s) de diélectrique avec la(les)quelle(s) la piste est en contact). On notera que dans ce cas, on pourra se reporter sur les résultats établis avec la norme IPC-2221.

Figure 4 – Liste de directives disponibles à associer à des « nets » (wires, buses, harness)

On peut spécifier dès le schéma ces contraintes en utilisant une directive Parameter Set (soit dans le menu flottant illustré à la figure 4 soit dans le menu Place > Directives).

Figure 5 – Exemple de placement de « Parameter Set »

En fait, la directive Parameter Set permet de spécifier toutes sortes de contraintes relatives à certaines connexions (pas uniquement des largeurs de pistes – Figure 5) comme le montre la copie d’écran de la figure 6. A la droite de l’écran, on peut voir qu’un « Parameter Set » est caractérisé par deux champs principaux :

  • Rules : règles ou contraintes appliquées au routage des pistes,

  • Class Name : un nom de classe.

Le deuxième point s’avère utile pour regrouper des pistes sous une catégorie afin de mieux les identifier lorsque l’on passe à la partie PCB (filtrage par nom de classe pour l’affichage). Ce point sera illustré au paragraphe 3.4.

 

Figure 6 – Ajout de règles à un « Parameter Set »

En ce qui concerne les règles de routage, on peut voir qu’une liste très variée est disponible dans le menu affiché au centre de l’écran à la figure 6.

3.2. Cas des paires différentielles

Dans le cas des signaux rapides, la contrainte n’est plus d’origine thermique mais de type électromagnétique dans la mesure où les longueurs mises en jeu entre composants peuvent représenter un pourcentage significatif de la longueur d’onde =v/f du signal qui est véhiculé (v étant la vitesse de l’onde en m/s et f sa fréquence en Hz).

L’objectif de cet article n’est pas d’analyser ce sujet mais plutôt d’indiquer la manière dont la schématique permet d’indiquer des contraintes particulières sur des signaux rapides et plus particulièrement sur les paires différentielles rencontrées couramment dans certaines liaisons numériques à haut débit (e.g. LVDS – Low Voltage Differential Signaling).

 

Figure 7 – Spécification de paire différentielle sous Altium Designer

On peut voir à la figure 7 que les deux fils d’une paire différentielles portent des NetLabel se terminant par _P et _N pour indiquer respectivement les polarités positive et négative. En outre, un symbole de paire différentielle est accroché à chacun d’eux (accessible avec le menu flottant).

3.3. Cas des signaux non connectés

Une autre des directives disponibles, nommée « Generic No ERC », est un élément assez classique dans les logiciels de CAO : elle permet d’indiquer qu’une broche laissée déconnectée ne doit pas générer d’erreur lors d’une vérification des règles de design (DRC – pour Design Rules Check) – cf. figure 8.

Figure 8 – Règle à vérifier sur les broches non connectées.

Attention : Il s’agit d’une spécification manuelle. Elle demandera au logiciel de ne pas faire de vérification sur cette broche mais il faut garder à l’esprit que si laisser une sortie déconnectée n’est généralement pas problématique, il n’est généralement pas recommandé de laisser une entrée d’un circuit logique « en l’air ». En effet, cela peut la transformer en antenne, captant des signaux erratiques et faisant réagir de manière intempestive la porte logique inutilisée. Ce phénomène est alors potentiellement une source de surconsommation et/ou des perturbations sur les circuits (utilisés) adjacents.

Figure 9 – Mise en place d’un Compile Mask sur une partie d’un schéma

Remarque : D’une certaine manière, la directive Compile Mask (également présent dans la liste des directives disponibles) joue un peu le même rôle, mais pour un pan entier d’un circuit en cours d’élaboration : comme son nom l’indique, elle masque au compilateur une partie du schéma qui n’est pas encore achevée et génèrerait des erreurs au moment de la compilation. Visuellement, elle a pour effet de griser la partie du schéma qui est recouvert (cf. figure 9).

3.4. Groupes de signaux

Des signaux rapides sont souvent liés les uns aux autres (bus) et doivent de ce fait être routés ensemble : ce point est particulièrement important lorsqu’une synchronisation doit être respectée entre ceux-ci (pour un ensemble de paires différentielles par exemple). Il est donc utile de les regrouper afin de faciliter le routage par la suite : cela se fait simplement sous Altium Designer par le rassemblement sous une même Net Class (un des paramètres à fixer pour un Parameter Set). Bien évidemment, on pourrait copier et coller autant de Parameter Set que nécessaire pour les affecter à chaque fil d’un bus mais il est également possible de les regrouper à l’aide d’un Blanket (cf. figure 10), littéralement une couverture en français.

Figure 10 – Formation d’une classe de « nets » avec une couverture (Blanket) sous Altium Designer

Remarque : Le regroupement sous un Blanket nécessite d’encercler soit des noms de fils/bus/harness (NetLabel) soit des Ports.

La mise en évidence des membres d’une classe de « nets » est alors facilitée par le Parameter Set comme on peut le voir à la figure 11, (avec une classe nommée SPI pour un groupe de 3 fils : MOSI, MISO et SCK) tant dans la vue Schéma (ou plus précisément d’un fil dans une classe ici) que dans la vue PCB.

 

Figure 11 – Mise en évidence d’une Net Class dans la partie Schéma (en haut) et dans la partie PCB (en bas)

4. Conclusion

Cet article et le précédent ne couvrent bien évidemment pas tous les sujets relatifs à la saisie de schéma mais présentent quelques points critiques auxquels il faut porter une attention particulière afin de produire des dessins satisfaisants, faciles d’accès et pérennes. La richesse d’un logiciel de CAO électronique tel qu’Altium Designer est d’offrir une grande souplesse dans la manière de produire des schémas mais il faut utiliser les outils à disposition à bon escient et c’est la première difficulté que l’on peut rencontrer lorsque l’on débute : la grande liberté offerte peut dans ce cas être déroutante.

Il convient donc de toujours garder à l’esprit le ou les objectifs que l’on se fixe lorsque l’on réalise un schéma :

  • présenter les circuits mis en œuvre à la manière d’une analyse fonctionnelle avec le maximum de clarté possible (en évitant des enchevêtrements de fils) ;

  • toujours documenter autant que possible les fonctions réalisées (comme on commente – ou devrait commenter ... – le code source d’un programme informatique) ;

  • apporter toutes les informations utiles (pour soi-même ou pour un autre) à la réalisation du PCB.

En suivant ces quelques principes, on peut déjà partir sur de bonnes bases pour produire des documents de qualité.

Lire la partie 1

Références bibliographiques

[1] Conception des circuits imprimés, D. Muller, Société IFTEC.

[2] Thermal Design By Insight, Not Hindsight, AN-2020, Texas Instruments, 2013.

 

 
 

About the Author

Nicolas Patin


Nicolas Patin a obtenu en 2006 un doctorat en électronique, électrotechnique et automatique de l’école normale supérieure de Cachan.

Il est depuis septembre 2007 maître de conférences à l’université de technologie de Compiègne (UTC) où il enseigne l’électronique et plus particulièrement l’électronique de puissance au sein de la formation d’ingénieur au sein d’une filière Mécatronique Actionneurs, Robotisation et Systèmes (MARS).

Il mène en parallèle des recherches en électronique de puissance et plus précisément sur les stratégies de modulation appliquées aux convertisseurs statiques et à leur impact sur le vieillissement des condensateurs de découplage (aluminium électrolytiques).

Follow on Linkedin More Content by Nicolas Patin
Previous Article
Modèles d’abonnement vs licence perpétuelle pour les logiciels de conception PCB
Modèles d’abonnement vs licence perpétuelle pour les logiciels de conception PCB

Quel est le meilleur mode de licence actuel ? La licence perpétuelle avec abonnement en option, ce qui sign...

Next Article
Projet de conception multicartes dans Altium Designer
Projet de conception multicartes dans Altium Designer

Vous avez deux PCB reliés entre eux et vous voulez concevoir un système multicartes partant d'un seul schém...