Nous avons vu dans les deux articles précédents les grands principes permettant de produire des schémas de qualité qui soient lisibles, exploitables pour la création de cartes électroniques et faciles à maintenir durant le cycle de vie du système qui y est décrit. Nous allons maintenant voir des outils permettant de travailler plus efficacement.
Comme cela a été évoqué à la fin de l’article précédent, nous allons traiter des moyens de décrire différentes variantes de conception d’un produit donné (équipements optionnels, différentes tailles de mémoire, etc.).
Mais avant cela, nous allons nous intéresser à un outil présent sous Altium Designer permettant d’augmenter la productivité d’un concepteur en lui évitant de « réinventer la roue » : les snippets (littéralement « extraits »). En effet, cet outil permet d’encapsuler une portion de schéma (associée par ailleurs à un routage) qui pourra par la suite être réutilisé tel quel (ou peu s’en faut) dans un autre projet. Ceci est particulièrement utile pour des fonctions récurrentes dans toutes les cartes électroniques telles que les circuits d’alimentation.
Nous avons systématiquement besoin de certaines fonctions sur une carte électronique, typiquement des circuits d’alimentation. Certaines fonctions sont également très fréquentes (circuits d’acquisition analogique/numérique, filtres analogiques, etc.). Il est alors particulièrement utile de disposer d’un outil permettant de réaliser « une fois pour toutes » un circuit (tant du point de vue du schéma que du PCB) puis de l’inclure dans un nouveau projet à chaque fois que l’on en a besoin (à la manière d’une bibliothèque de composants mais ici à une échelle plus large).
Sous Altium Designer, on peut effectuer ce genre de tâche à l’aide de snippets qui sont décrits dans les deux paragraphes suivants (côté schéma d’abord puis PCB ensuite).
Si par défaut, le panel « Snippets » n’est pas sélectionné, vous pouvez le trouver dans la liste des « Panels » en bas à droite de l’écran (cf. figure 1). Une fenêtre détachée apparaît alors et vous pouvez l’accrocher sur le bord droit de la fenêtre principale des classiques « Properties » et « Components » normalement déjà présents.
Figure 1. Accès au panel « Snippets »
On peut tout d’abord inclure le morceau de schéma que l’on souhaite réutiliser dans un projet dédié. Une fois ce « copier-coller » effectué, la numérotation des composants est perdue (U?, C?, etc…). Il s’agit alors d’appliquer une numérotation (Tools > Annotation > Annotate Schematics…) permettant d’éviter des conflits avec celle des futurs projets dans lesquels s’insèrera ce circuit : pour cela, il convient de configurer l’interface de numérotation (cf. figure 2) avec un numéro initial élevé (par exemple 1000).
Remarque : Cette renumérotation est d’ailleurs proposée dans la vidéo décrivant l’utilisation des Snippets présente ici.
Figure 2. Fenêtre « Annotate » de configuration des numérotations de composants
On peut voir à la figure 3 un exemple ce circuit (en tout cas son schéma) prêt à être inclu dans un snippet. On remarque d’ailleurs que cette encapsulation ne dispense pas de l’ajout de commentaires utiles à la compréhension du fonctionnement de ce circuit.
En l’occurrence, il s’agit d’un convertisseur DC-DC de type Buck dédié à l’alimentation par batteries d’applications de faible puissance. Dans ce circuit, le réglage de la tension de sortie ne s’effectue pas avec un classique pont diviseur de tension dont on doit choisir les résistances constitutives mais plutôt par une configuration sur 4 bits avec des entrées numérotées de SEL1 à SEL4 que l’on relie soit à la tension de sortie du circuit soit à la masse pour fixer une valeur logique (respectivement 1 et 0). D’autres informations utiles sont encore ajoutées pour éviter autant que possible à l’utilisateur de consulter la datasheet.
Figure 3. Schéma d’un circuit candidat à l’encapsulation dans un snippet
L’encapsulation est ensuite très simple : on doit sélectionner l’ensemble des éléments du schéma que l’on souhaite placer dans le snippet puis, par un clic droit, faire apparaître le menu contextuel dans lequel se trouve la commande « Snippets > Create Snippet from selected objects ». La fenêtre qui est alors ouverte (cf. figure 4) permet de donner un nom au snippet et de le placer dans un répertoire particulier. Elle permet en outre d’ajouter un commentaire à propos de la fonction réalisée (qui doit toutefois être assez brève et ne peut pas se substituer aux informations que vous avez ajoutées au schéma lui-même.
Figure 4. Fenêtre de description du Snippet créé
Le principe est exactement le même en ce qui concerne la partie routage dans la mesure où on doit sélectionner le routage à encapsuler et à utiliser la même commande présente dans le menu contextuel (Snippets > Create Snippet from selected objects) pour disposer de la fonction en question dans la liste proposée dans l’onglet/panel Snippets (cf. figure 5).
Figure 5. Liste des snippets disponibles dans le panel visible à la droite de l’écran
Une fois les snippets de schéma et de PCB créés, ils sont aisément intégrables dans un nouveau projet à la manière d’un simple composant, tant dans un fichier de schéma .SchDoc que dans un fichier de routage .PcbDoc.
Toutefois, une approche sélective semble appropriée pour pouvoir intégrer le routage d’un snippet dans le fichier .PcbDoc d’un nouveau projet. Un snippet aura de préférence été intégré dans un “room” spécifique et on pourra alors :
soit bloquer l’ajout de ce “room” avec ses composants en vrac et non routés pour pouvoir insérer manuellement le snippet avec le placement optimisé des composants ainsi que le routage,
soit supprimer ce “room” pour finalement insérer le snippet.
A la figure 6, on peut voir un exemple “légèrement artificiel” d’un double convertisseur Buck alimentant deux résistances distinctes : le snippet du PCB a été ajouté avant de lancer la commande “Design > Import Changes from …”. A ce moment-là, seules les résistances R18 et R19 restaient à ajouter.
Figure 6. Inclusion d’un snippet à un projet “très simplifié”
Un PCB et plus généralement un appareil électronique peut être décliné en gamme avec plus ou moins de fonctionnalités : des options peuvent être proposées ou non. Une telle déclinaison ne doit pas faire oublier qu’une large part du travail est mutualisable entre les différentes versions et il est alors utile de disposer d’un outil permettant de simplifier le travail en évitant de refaire plusieurs fois les mêmes tâches. De ce point de vue, l’objectif est similaire aux Snippets mais il s’agit ici d’outils plus ciblés car le périmètre d’action est celui d’un projet alors que dans le cas des snippets, on s’attache à rendre directement réutilisables des blocs fonctionnels sur différents projets.
Altium Designer couvre a priori tous les besoins en terme de variations dans un projet. En effet, lorsque l’on place un composant sur un schéma, on s’attend bien évidemment à ce qu’il soit présent sur le PCB : il est alors « Fitted », à savoir l’état appliqué par défaut.
Par contre, on peut imaginer des situations où un composant peut ne pas être placé pour modifier la configuration du circuit : il est alors « Not Fitted ». Un dernier cas peut consister à remplacer un composant par un autre (qui doit néanmoins être compatible en terme de brochage) : il s’agit de l’option « Alternate Part ».
Dans les deux cas de figure, après sélection d’un composant ou d’un groupe de composants, la commande du menu contextuel « Part Actions > Variants… » permet d’accéder au Variant Management présenté à la figure 7.
Figure 7. Fenêtre de Variant Management
Pour illustrer l’utilisation de l’outil, nous allons reprendre ici l’exemple simple de l’alimentation de la figure 3 en ajoutant la possibilité de mise en marche retardée par un signal EN_2V8 (cf. figure 8) alors que dans le schéma initial, la mise en marche du circuit était effectuée dès l’application de la tension d’entrée VIN.
Figure 8. Circuit d’alimentation avec une option de démarrage retardée
Dans la liste des composants apparaissant à la figure 7, il y a les résistances R1 et R2 que nous allons devoir placer ou non suivant deux variantes possibles :
Mise en marche immédiate (variante notée InstantPower pour laquelle R1 doit être présente et R2 absente),
Mise en marche retardée (variante notée DelayedPower pour laquelle R1 est absente et R2 présente).
Il s’agit donc de cliquer en bas à gauche de la fenêtre sur le bouton « Add Variant… » pour créer ces deux variantes en les nommant (cf. figure 9).
Figure 9. Création d’une variante de conception
Une fois les variantes créées, elles apparaissent avec des colonnes distinctes dans la fenêtre de Variant Management (figure 10) et pour chaque composant du BOM, on peut choisir les options Fitted, Not Fitted ou Alternate Part.
Figure 10. Création des variantes et configuration des composants suivant chacune d’elle
Dans notre cas, les résistances R1 et R2 s’excluant l’une et l’autre, nous choisissons l’option Not Fitted (Fitted étant la valeur par défaut laissant la case associée vide).
L’affichage du schéma et du BOM ne sont pas « directement » modifiés par le paramétrage des variantes qui viennent d’être effectuées (cf. paragraphe suivant). Dans le menu Reports, l’appel de la commande Bill of Materials fait tout d’abord apparaître la configuration [No Variations] pour laquelle tous les composants présents dans le schéma sont présents. Il s’agit alors de sélectionner la variante désirée (cf. figure 11) pour obtenir un BOM duquel sont supprimés tous les composants « Not Fitted ».
Figure 11. Choix du BOM en fonction de la variante désirée (ici « InstantPower »)
Remarque 1 : Dans le cas où un composant est modifié (Alternate Part) et non supprimé, cette modification impactera également le BOM.
Remarque 2 : Dans le cas où le composant modifié ne varie que d’un paramètre (et non de son empreinte physique – comme c’est souvent le cas pour une résistance ou un condensateur), il est possible d’appliquer une modification dans la partie basse de la fenêtre Variant Management (figure 12). On notera qu’il est utile de ne pas se contenter ici d’une simple modification de la valeur mais aussi des paramètres utiles au BOM tels que Supplier 1 et Supplier Part Number 1.
Figure 12. Modification de paramètres d’un composant (zone “Component Parameters”)
La modification d’un composant peut consister à changer l’empreinte physique de ce dernier (TSSOP ou BGA par exemple) mais elle peut aussi porter sur une modification du symbole. Il convient dans ce dernier cas de noter que les modifications n’apparaissent clairement sur le schéma qu’en mode de lecture (c’est-à-dire pas en mode « Editor ») dans le logiciel ou après exportation au format PDF (commande « File > Smart PDF »). Pour illustrer cela, on peut voir à la figure 13 un schéma très simple (à gauche) basé sur une transistor NPN et cinq résistances qui donne un PDF strictement équivalent (au centre) dans le cas d’une exportation de la version [No Variations] tandis qu’une variante à base de MOSFET est également proposée (à droite) avec la résistance R4 supprimée. Pour illustrer cela, on peut voir à la figure 13 un schéma très simple (en haut) basé sur une transistor NPN et cinq résistances qui donne un PDF strictement équivalent (au centre) dans le cas d’une exportation de la version [No Variations] tandis qu’une variante à base de MOSFET est également proposée (en bas) avec la résistance R4 supprimée.
Figure 13. Exportation en PDF de deux variantes d’un circuit à base de transistor (bipolaire et MOSFET)
Sans passer par l’exportation d’un fichier PDF, il convient de noter qu’après la validation des variantes, il apparaît un dossier « Variants » dans l’arborescence du projet en cours (cf. figure 14) : ce dossier liste alors toutes les variantes qui ont été créées (de même que la version [No Variations]). On peut sélectionner une variante (par un double-clic ou un clic droit pour l’accès à la commande « Set as current ») qui apparaît alors en gras.
Figure 14. Liste des variantes apparaissant dans l’arborescence du projet
Cette sélection est sans incidence sur l’affichage du schéma tant que l’on se trouve dans l’onglet « Editor » visible en bas du schéma. Il est nécessaire de basculer dans l’onglet portant le nom du schéma pour voir l’impact de la variante sélectionné sur ce dernier (cf. figure 15).
Figure 15. Affichage d’un schéma dans une variante particulière avec la vue « Sheet1 » (la vue « Editor » ne faisant pas apparaître les modifications apportées par les variantes)
Ce sujet a déjà été traité dans le premier article (ici) et d’une certaine façon, cette technique de duplication d’un schéma donné rejoint les outils que nous venons de voir en terme d’objectif, à savoir un gain de productivité en évitant d’effectuer N fois la même tâche. Dans le vocabulaire de la documentation d’Altium Designer, les concepts communs à toutes ces approches (variants, multichannel) sont les notions de composants logiques (avec des noms associés aux symboles dans un schéma) et de composants physiques (ayant une existence physique unique sur un PCB). Ces subtilités sont clairement détaillées dans la documentation en ligne (ici) mais il convient de retenir ici quelques idées simples. Un symbole dans un schéma peut :
être associé à une empreinte physique unique sur le PCB (cas le plus simple),
ne pas être associé à un composant réellement présent (cas de la variante “Not Fitted”),
être associé au choix à un composant physique parmi plusieurs options possibles (cas de la variante “Alternate Part”),
être associé à plusieurs composants physiques (cas d’un design multi-canaux).
Ce troisième et dernier article consacré (presque) exclusivement à l’édition de schéma avait pour objectif de montrer qu’une fois maîtrisés les bonnes pratiques de création d’un schéma lisible, une dernière étape importante est de mettre à profit les fonctions produites, d’autant plus que certaines d’entre-elles sont incontournables et doivent donc être mises en œuvre systématiquement dans tout nouveau projet (tout particulièrement les circuits d’alimentation). Une fois cette bibliothèque de fonctions usuelles constituée, il ne sera plus nécessaire d’y revenir mis à part pour vérifier que les références de composants utilisées sont toujours disponibles (cf. article sur la « supply chain » ici). Il s’agit là d’une approche indispensable pour produire efficacement (rapidement et en minimisant les risques d’erreur) de nouvelles cartes électroniques avec des solutions éprouvées.
Dans un deuxième temps, et en particulier dans un contexte de bureau d’étude, il est utile d’approfondir ses connaissances dans le logiciel afin de pouvoir décliner autant que possible un design pour s’adapter aux besoins du client : il est en effet courant d’avoir à ajouter une option à une conception existante ou inversement de chercher à enlever des fonctions non indispensables dans les cas où des contraintes d’intégration, de consommation et/ou de coût l’exigent. Les fonctionnalités apportées par Altium Designer dans la gestion des variantes (Variant Management) sont alors du plus grand intérêt.