Manuel de référence

Ce document est la propriété des contributeurs ci-dessous, copyright © 2010-2015. Vous pouvez le distribuer et/ou le modifier selon les termes de la GNU General Public License (http://www.gnu.org/licenses/gpl.html), version 3 ou ultérieure ou bien selon la licence Creative Commons Attribution (http://creativecommons.org/licenses/by/3.0/), version 3.0 ou ultérieure.

Toutes les marques apparaissant dans ce document appartiennent à leurs propriétaires respectifs.

Contributeurs

Jean-Pierre Charras, Fabrizio Tappero, Marc Berlioux.

Traduction

Marc Berlioux <marc.berlioux@gmail.com>, 2015-2016

Retours

Merci de signaler vos corrections de bugs, suggestions ou nouvelles versions ici :

Date de publication et version du logiciel

Publié le 30 mai 2015.

1. Introduction à Eeschema

1.1. Description

Eeschema est un puissant logiciel de saisie de schémas électroniques faisant partie de KiCad et disponible pour les systèmes d’exploitations suivants :

  • Linux

  • Apple OS X

  • Windows

Les fichiers de Eeschema sont compatibles d’un système d’exploitation à un autre.

Eeschema est une application intégrée à partir de laquelle toutes les fonctions de dessin, de contrôle, de mise en page, de gestion des librairies et d’accès au logiciel de conception de circuit imprimé sont accessibles.

Eeschema est conçu pour fonctionner avec PcbNew, le logiciel d'édition de circuit imprimés de KiCad. Il permet aussi d’exporter des fichiers Netlistes listant toutes les connexions électriques, pour d’autres logiciels.

Eeschema inclue un éditeur de symboles schématiques de composants, qui permet de créer, modifier des composants et de gérer les librairies. Il intègre aussi plusieurs autres fonctions essentielles à la création de schémas électroniques modernes :

  • La vérification des règles électriques ou ERC (Electrical Rules Check), pour le contrôle des connexions manquantes ou incorrectes.

  • L’exportation de fichiers de tracé en plusieurs formats (Postscript, PDF, HPGL, SVG)

  • La génération de listes de composants ou BOM (Bill of Materials) à travers des scripts Python, ce qui permet plusieurs formats configurables.

1.2. Aperçu technique

Eeschema n’est limité que par la mémoire vive disponible. Il n’y a ainsi aucune limitation sur le nombre de composants, de pins, de connexions ou de feuilles schématiques. Dans le cas de schémas à feuilles multiples, leur représentation est hiérarchique.

Eeschema gère les schémas multi-feuilles de types suivants :

  • Schémas à hiérarchie simple (chaque schéma n’est utilisé qu’une fois).

  • Schémas à hiérarchie complexe (certains schémas sont utilisés plus d’une fois, en plusieurs instances).

  • Schémas à hiérarchie plate (les schémas ne font pas explicitement partie d’un schéma maître).

2. Commandes de bases de Eeschema

2.1. Accès aux commandes de Eeschema

Vous pouvez accéder au différentes commandes :

  • En cliquant sur les menus, en haut de la fenêtre.

  • En cliquant sur les boutons de la barre d’outil principale, au sommet de la fenêtre, sous les menus.

  • En cliquant sur les boutons de la barre d’outils à droite de la fenêtre (outils de placement d'éléments).

  • En cliquant sur les boutons de la barre d’outils à gauche de la fenêtre (options d’affichage).

  • En utilisant la souris (commandes complémentaires importantes), notamment au moyen du clic droit sur un élément du schéma, qui affiche un menu contextuel (options de zoom, de dimension de grille et d'édition des éléments).

  • En utilisant les touches de fonctions (touches F1, F2, F3, F4, [Insert], et [Espace]). Généralement, l’appui sur la touche [Escape] annule l’opération en cours, et la touche [Insert] permet la duplication d’un élément venant d'être inséré.

Voici un apercu de l’interface et de l’emplacement des différentes commandes :

commands overview

2.2. Commandes à la souris

2.2.1. Commandes de base

Bouton gauche

  • Simple clic : affiche les caractéristiques du composant ou du texte sous le curseur, dans la barre d'état, au bas de la fenêtre.

  • Double clic : modifie l'élément (s’il est éditable..), composant ou texte.

Bouton droit

  • Ouvre un menu contextuel, en fonction de l'élément sous le curseur.

2.2.2. Opérations sur les blocs

Vous pouvez déplacer, traîner ou détruire des zones sélectionnées dans tous les modes de Eeschema. La différence entre déplacer (Move) et traîner (Drag) est que les liaisons électriques entre éléments sont conservées lors d’un Drag.

On sélectionne une zone en cliquant du bouton gauche et en maintenant ce bouton appuyé tout en déplaçant la souris.

L’appui sur [Shift], [Ctrl], ou [Shift + Ctrl] pendant la sélection effectue respectivement une copie, un "drag", ou une suppression :

Bouton gauche de la souris

Déplacer la sélection (Move).

Shift + bouton gauche de la souris

Copier la sélection.

Ctrl + bouton gauche de la souris

Traîner la sélection (Drag).

Ctrl + Shift + bouton gauche de la souris

Supprimer la sélection.

Lors d’un "drag" ou d’une copie, vous pouvez :

  • Cliquer à nouveau du bouton gauche pour poser les éléments.

  • Cliquer du bouton droit et choisir Annuler Bloc pour annuler l’opération.

En cliquant du bouton droit on peut choisir d’autres actions dans le menu contextuel :

main window popup

2.3. Raccourcis clavier

  • L’appui sur la touche [?] affiche la liste des raccourcis clavier.

  • Les raccourcis clavier peuvent être modifiés par le menu Préférences, Raccourcis, Editer les raccourcis.

Aperçu de la liste des raccourcis clavier par défaut :

Default hotkey list

Tous les raccourcis clavier peuvent être redéfinis avec l'Éditeur de raccourcis :

Hotkeys editor window

2.4. Sélection de la taille de grille

Dans Eeschema, le curseur se déplace au dessus d’une grille, qui peut être visible ou non. La grille est toujours visible dans le gestionnaire de librairie.

Vous pouvez changer la taille de la grille par le menu contextuel ou par le menu Préférences,Options de l'éditeur de schématique.

La taille par défaut de la grille est de 50 mils (0.050") soit 1.27 mm.

C’est la dimension préférée pour le placement des composants et des fils dans le schéma, mais aussi pour le placement des pins pendant le dessin d’un symbole de composant dans l'éditeur de composants.

On peut aussi travailler avec une dimension de grille plus petite comme 25 mils ou 10 mils. C’est uniquement lors du dessin des boîtiers de composants ou pour placer des textes et des commentaires, et non pour placer des pins ou des fils.

2.5. Sélection du Zoom

Pour changer le niveau du zoom :

  • Cliquez du bouton droit pour ouvrir le menu contextuel et choisissez la valeur de zoom désirée.

  • Ou utilisez les touches de fonctions :

    • F1: Zoom avant

    • F2: Zoom arrière

    • F4 ou cliquez simplement sur le bouton du milieu (sans bouger la souris) : Centrer la vue autour de la position du pointeur de la souris

  • Zoom fenêtre :

    • Molette de la souris : Zoom avant/arrière

    • Molette de la souris, touche [Shift] enfoncée : Déplacement haut/bas

    • Molette de la souris, touche [Ctrl] enfoncée : Déplacement droite/gauche

2.6. Affichage des coordonnées du curseur

L’unité d’affichage est en inches ou en millimètres. Toutefois, Eeschema travaille toujours en interne en unités de 0.001 inch (mil/thou).

Les informations suivantes sont affichées en bas et à droite de la fenêtre :

  • Le facteur de Zoom

  • La position absolue du curseur (X Y)

  • La position relative du curseur (dx dy)

Les coordonnées relatives sont remises à zéro par un appui sur la barre d’espace du clavier. C’est très utile pour faire des mesures entre deux points.

Barre d'état

2.7. Barre de menu

La barre de menus permet l’ouverture et la sauvegarde de schémas, la configuration du programme et l’affichage de la documentation.

menubar

2.8. Barre d’outils supérieure

Cette barre d’outils donne accès aux principales fonctions de Eeschema.

Si Eeschema est lancé tout seul (mode standalone), et non par le gestionnaire de projets, voici les boutons disponibles :

images/toolbar_schedit_standalone.png

Si Eeschema est lancé par le gestionnaire de projets (KiCad), voici les boutons disponibles :

images/toolbar_schedit.png

Les outils pour créer un projet ne sont pas présents, car ils sont dans le Gestionnaire de Projets.

new schematic icon

Nouveau Projet Schématique. Créer un nouveau schéma (seulement en mode standalone).

Open schematic icon

Ouvrir un Projet Schématique (seulement en mode standalone).

icons/save_png

Sauver le Projet Schématique (toute la hiérarchie).

Page Settings icon

Ajustage des options de la page, taille et contenu du cartouche.

icons/print_button_png

Impression des feuilles de schémas.

icons/cut_button_png

Suppression des éléments sélectionnés, pendant le déplacement d’un bloc.

icons/copyblock_png

Copie des éléments sélectionnés, dans le presse-papier.

icons/paste_png

Copie des éléments sauvegardés, depuis le presse-papier dans la feuille courante.

icons/undo_png

Défaire la dernière édition (Ctrl+Z). Annule les dernières modifications (jusqu'à 10).

icons/redo_png

Refaire la dernière commande (Ctrl+Y). Rétablit les dernières modifications (jusqu'à 10).

search icon

Recherche de composants et de textes, dans le schéma.

search replace icon

Chercher et remplacer un texte, dans le schéma.

icons/zoom_in icons/zoom_out

Zoom + (avant), Zoom - (arrière).

icons/zoom_redraw icons/zoom_fit_in_page_png

Rafraîchir l'écran, Zoom automatique.

hierarchy navigator icon

Navigateur de hiérarchie.

icons/leave_sheet

Quitter la sous-feuille, et remonter dans la hiérarchie.

icons/libedit_png

Éditeur de librairies, lance l'éditeur de composants.

icons/library_browse_png

Visualisateur de librairies, et de composants (Viewlib).

icons_annotate_png

Annotation des composants de la schématique.

ERC icon

Exécute le test des règles électriques (ERC), vérifie les connexions électriques.

Netlist icon

Génération de la Netliste (Pcbnew, SPICE, et autres formats).

BOM icon

Génération de la liste des composants, ou BOM (Bill Of Materials).

edit_module icon

Éditeur d’empreintes.

run cvpcb icon

Lancer CvPcb, association composants et empreintes.

icons/pcbnew_png

Lancer Pcbnew, outil de conception de circuits imprimés.

Import Footprint Names icon

Importer le fichier d’association composants/empreintes (fichier .cmp créé par CvPcb).

2.9. Barre d’outils latérale droite

Cette barre d’outils contient les outils pour :

  • Placer des composants, des fils, des bus, des jonctions, des étiquettes (labels), des textes, etc…

  • Créer des sous-feuilles hiérarchiques et des symboles de connexion.

images/toolbar_schedit_rightside.png

icons/cursor_png

Annule la commande active, quitte l’outil en cours.

icons/hierarchy_cursor_png

Naviguer dans la hiérarchie : cet outil permet d’ouvrir les sous-feuilles de la schématique courante (clic sur le symbole de cette sous-feuille), ou de remonter dans la hiérarchie (clic dans une zone libre du schéma).

New Component icon

Placer un composant : affiche le sélecteur de composants.

Add Power icon

Placer un symbole de type power : ouvre le sélecteur de symboles d’alimentation.

icons/add_line_png

Placer un fil.

icons/add_bus_png

Placer un bus.

icons/add_line2bus_png

Placer une entrée de bus (type fil vers bus). Ces éléments sont seulement graphiques et ne créent pas de liaisons électriques, ils ne doivent donc pas être utilisés pour relier des fils ensemble.

icons/add_bus2bus_png

Placer une entrée de bus (type bus vers bus).

icons/noconn_png

Placer un symbole de non connexion. Pour marquer les pins de composants qui sont volontairement non connectées. Utile pour la vérification des règles électriques (ERC).

icons/add_junction_png

Placer une jonction. Elles sont placées pour relier deux fils qui se croisent , ou un fil et une pin, quand cela peut être ambigu.

icons/add_line_label_png

Placer un nom de net label local. Deux fils avec le même label, dans la même feuille schématique, seront connectés. Pour des connexions entre différentes feuilles, utiliser des labels globaux, ou hiérarchiques.

Global label icon

Placer un label global. Tous les labels globaux portant le même nom seront connectés, dans toutes les feuilles de la hiérarchie.

icons/add_hierarchical_label_png

Placer un label hiérarchique. Permet d'établir une connexion entre une feuille et la feuille parente qui la contient.

icons/add_hierarchical_subsheet_png

Créer une feuille de hiérarchie. Vous devrez donner un nom à cette sous-feuille.

icons/import_hierarchical_label_png

Placer une pin hiérarchique importée à partir du label hiérarchique correspondant. Ces labels hiérarchiques doivent déjà être en place dans la sous-feuille. Équivalentes à des pins de composants, elles doivent être reliées par des fils.

icons/add_hierar_pin_png

Addition de pins de hiérarchie dans les feuilles. Elles sont placées par leurs noms et n’ont pas besoin d’exister déjà dans la sous-feuille.

icons/add_dashed_line_png

Placer lignes ou polygones graphiques. Seulement graphiques, ne relient rien électriquement.

icons/add_text_png

Placer des textes. Graphiques uniquement aussi.

icons/image_png

Ajouter une image bitmap.

icons/cancel_png

Suppression d'éléments. Supprime les éléments sélectionnés.

Si plusieurs éléments superposés sont sélectionnés, la priorité est donnée au plus petit (par priorité décroissante : jonction, "Non Connexion", fil, bus, text, composant). Ceci s’applique aussi aux feuilles hiérarchiques. Note : le bouton "Défaire" de la barre d’outils principale vous permet d’annuler les dernières suppressions.

2.10. Barre d’outils latérale gauche

Cette barre d’outils permet de gérer les options d’affichage :

icons/grid

Afficher / Cacher la grille.

icons/unit_inch

Unités en pouces (inches).

icons/unit_mm

Unités en millimètres.

icons/cursor_shape

Changer la forme du curseur.

icons/hidden_pin

Force l’affichage des pins invisibles.

icons/lines90

Autoriser / Interdire le tracé de fils ou de bus non orthogonaux.

2.11. Menus contextuels et édition rapide

Un clic droit ouvre un menu contextuel pour l'élément sélectionné ou survolé : ce menu permet d’ajuster :

  • Le facteur de Zoom.

  • La taille de grille.

  • Les paramètres couramment édités de l'élément sélectionné.

Menu contextuel en dehors d’un élément.

1000000000000134000001411D7B987C_png

Édition d’un label

1000000000000198000001DF29593D94_png

Édition d’un composant

10000000000001AC000001C185B85332_png

3. Barre de menus

3.1. Menu Fichiers

Menu Fichiers

Nouveau Projet Schématique

Efface le schéma courant et débute un nouveau fichier

Ouvrir un Projet Schématique

Charge une schématique

Ouvrir Récent

Ouvre la liste des fichiers récemment ouverts

Ajouter feuille de schéma

Insérer le contenu d’une autre feuille dans la feuille courante

Sauver le Projet Schématique

Enregistrer la feuille courante et toute sa hiérarchie.

Sauver la feuille courante seule

Enregistrer la feuille courante, mais pas les autres de la hiérarchie.

Sauver la feuille courante sous..

Enregistrer la feuille courante avec un nouveau nom.

Ajustage Opt Page

Ajustage des options de la page, taille et contenu du cartouche.

Imprimer

Imprimer la schématique hiérarchique (Voir chapitre ITracer / Imprimer).

Tracer

Exporter au format PDF, PostScript, HPGL or SVG (Voir chapitre Tracer / Imprimer).

Fermer

Quitter sans sauvegarder.

3.2. Menu Préférences

3.2.1. Préférences

Menu Préférences

Librairies de Composants

Sélection des librairies et des chemins de recherche de librairies.

Sélection Couleurs des Éléments

Réglages des couleurs de l’affichage, de tracé et d’impression.

Options de l'Éditeur de schématique

Options générales (unités, tailles de grille, noms de champs, etc…).

Langue

Sélection de la langue de l’interface.

Raccourcis

Sous-menu des raccourcis (liste, édition, export, import).

Sauver Préférences

Enregistrer les préférences dans un fichier de projet .pro.

Charger Préférences

Charger les préférences du projet depuis un fichier .pro.

3.2.2. Préférences / Librairies de Composants

Configuration des Librairies

Cette boite de dialogue est utilisée pour configurer les librairies de composants et les chemins de recherche des librairies. Ces réglages sont enregistrés dans un fichier .pro. Vous pouvez avoir différents fichiers de configuration dans différents dossiers.

Eeschema recherche, dans l’ordre :

  1. Le fichier de configuration (nom_du_projet.pro) dans le dossier courant. Le fichier kicad.pro dans le répertoire de KiCad. Ce fichier sera donc le fichier de configuration par défaut. En l’absence de ces fichiers, il chargera des valeurs par défaut. À charge pour vous d’ajouter vos librairies à la liste, et d’enregistrer la configuration dans un fichier .pro.

La case Vérifier les conflits entre cache et librairie au chargement du schéma détermine le comportement du restaurateur de cache de librairies. Voir Réparer le Cache de Composants pour plus d’informations.

3.2.3. Préférences / Sélection Couleurs des Éléments

Couleurs dans Eeschema

Palette des couleurs utilisées pour les différents éléments graphiques, ainsi que pour la couleur de fond de la zone d'édition (noir ou blanc).

3.2.4. Préférences / Options de l'Éditeur de Schématique

Options de l'éditeur de schématique

Unités de mesure:

Choisissez les unités des coordonnées de l’affichage et du curseur (inches ou millimètres).

Dim Grille:

Sélection de la taille de grille.

Il est recommandé de travailler avec la taille de grille normale (0.050 inches ou 1,27 mm). Les tailles de grille plus petites sont surtout utilisées pour le dessin de composant.

Épaisseur bus par défaut:

Taille du pinceau pour le tracé des bus.

Épaisseur ligne par défaut:

Taille du pinceau pour le tracé des objets qui n’ont pas une taille définie.

Taille des textes par défaut

Dimension des textes lors de l’ajout de textes et de labels

Pas horizontal pour la répétition d'éléments

Décalage sur l’axe X lors de la duplication d'éléments (valeur normale 0)

(après le placement d’un élément comme un composant, un fil ou un label, une copie peut être faite par l’appui sur la touche Insert)

Pas vertical pour la répétition d'éléments

Décalage sur l’axe Y lors de la duplication d'éléments (valeur normale 0,100 inches, soit 2,54mm)

Incrémentation des labels en répétition

Incrémentation de la valeur des labels lors de la duplication de textes se terminant par un nombre, par exemple les numéros de membres de bus (habituellement 1 ou -1).

Intervalle de sauvegarde automatique:

Temps en minutes entre deux sauvegardes.

Notation pour part id:

Style du suffixe utilisé pour annoter les unités de composants (U1A, U1.A, U1-1, etc…)

Afficher la grille:

Case cochée : la grille est affichée.

Afficher les pins invisibles:

Case cochée : affiche les pins invisibles (ou cachées), le plus souvent des pins d’alimentation.

Centrer et déplacer le curseur en zoomant:

Lors d’un zoom, centrer la vue sur la position du curseur.

Utiliser le bouton du milieu de la souris pour recadrer l’affichage

Case cochée : il est possible de déplacer la feuille avec le bouton du milieu de la souris.

Limiter le panning à la taille du "scroll" maximum

Case cochée : le bouton du milieu de la souris ne peut déplacer la feuille en dehors de la zone affichée.

Pan lors du déplacement d’objets

Case cochée : déplace automatiquement la vue de la feuille quand le curseur dépasse le bord de la fenêtre d'édition, pendant le dessin ou les déplacements.

Limiter orientation bus et fils à H et V

Case cochée : les bus et les fils ne peuvent être qu’horizontaux ou verticaux

Dans le cas contraire, les bus et fils peuvent être placés dans n’importe quelle orientation.

Afficher limites de page

Case cochée : montre les limites de la page à l'écran.

3.2.5. Préférences / Langue

Utilisez la langue par défaut du système. Les autres choix de langue sont là principalement pour le développement.

3.3. Menu Aide

Accédez à l’aide en ligne (ce document) pour un manuel détaillé de KiCad. Utilisez les informations présentes dans «Copier infos de version» quand vous soumettez un rapport de bug, pour identifier votre version et votre système.

4. Barre d’outils principale

4.1. Gestion des feuilles schématiques

L’icône Ajustage des options de la page Sheet Settings icon , vous permet de régler la taille de la feuille et les textes contenus dans le cartouche.

Réglage de la page

Le nombre de feuilles, numéro de feuille, sont mis à jour automatiquement. La date ne sera pas changée automatiquement, mais vous pouvez la fixer à aujourd’hui en cliquant sur le bouton "←".

4.2. Options de l'éditeur de schématique

4.2.1. Options générales

Options de l'éditeur de schématique

4.2.2. Noms des Champs Modèles

Vous pouvez définir des champs personnalisés qui existeront par défaut pour chaque composant (même s’ils sont laissés vides).

Définition des Noms de Champs Modèles

4.3. Outil de recherche

L’icône Find icon , vous affichera la fenêtre de l’outil de recherche.

Chercher

Vous pouvez rechercher une référence, une valeur, ou du texte, dans la feuille courante ou dans l’ensemble de la hiérarchie. Une fois trouvé, le curseur sera positionné sur l'élément recherché dans la sous-feuille concernée.

4.4. Outil de Netliste

L’icône Netlist icon ouvre l’outil de génération de netlistes.

Les fichiers netlistes générés décrivent toutes les connexions entre éléments dans l’entière hiérarchie.

Dans une hiérarchie multi-feuilles, chaque label local n’est visible que dans la feuille à laquelle il appartient. Ainsi, le label TOTO de la feuille 3 est différent du label TOTO de la feuille 5 (si aucune connexion n’a été introduite volontairement pour les relier). Ceci est du au fait que le numéro de la feuille est associé en interne aux labels locaux.

Note 1 :

La longueur des labels n’a aucune limitation dans Eeschema, mais les logiciels exploitant les netlistes générées peuvent, eux, avoir certaines limitations à ce sujet.

Note 2 :

Évitez les espaces dans les noms de labels, car ils apparaîtront comme des mots séparés. Ce n’est pas une limitation de Eeschema, mais il peut y en avoir dans certains formats de netlistes qui considèrent que les noms de labels sont dépourvus d’espaces.

La fenêtre de l'outil de Netlistes

Options :

Format par défaut :

Cochez la case pour choisir Pcbnew comme le format par défaut.

D’autres formats de netlistes peuvent être générés :

  • Orcad PCB2

  • CadStar

  • Spice, pour les simulateurs

Des plugins externes peuvent également être ajoutés pour de nouveaux formats.

4.5. Outil d’annotation

L’icône icons_annotate_png donne accès à l’outil d’annotation. Cet outil effectue le nommage automatique des références des composants du schéma.

Pour des composants multi-unités (comme par exemple le 7400 qui contient 4 portes), un suffixe d’unité sera attribué (ainsi notre 7400 désigné par la référence U3 sera divisé en quatre unités référencées U3A, U3B, U3C et U3D).

Vous pouvez choisir d’annoter tous les composants, ou seulement les nouveaux, comme ceux qui ne sont pas encore annotés.

annotate-dialog_img

Portée

Utiliser la schématique entière. Toutes les feuilles seront ré-annotées (c’est option habituelle).

Utiliser la feuille active uniquement. Seule la feuille courante sera ré-annotée (cette option sera utilisée dans des cas particuliers, par exemple pour évaluer le nombre de résistances de la feuille courante).

Garder l’annotation existante. Annotation conditionnelle, seuls les nouveaux composants seront annotés (option habituelle).

Supprimer l’annotation existante. Annotation inconditionnelle, tous les composants seront ré-annotés (cette option sera utilisée quand il y a un risque de doublons dans les références).

Reset, mais ne pas échanger les unités déjà numérotées des boitiers multi-unités. Cette option conserve les groupes de multi-unités (ex. : U2A, U2B) lors de la ré-annotation.

Ordre d’annotation

Choisit dans quelle direction seront numérotés les composants.

Choix de l’annotation

Sélectionne la méthode de numérotation pour les schémas multi-feuilles.

4.6. Outil de vérification des règles électriques

L’icône ERC icon donne accès à l’outil de vérification des règles électriques (ERC).

Cet outil effectue la vérification du schéma, et est particulièrement utile pour détecter des connexions oubliées ou des incohérences.

Une fois que vous avez exécuté l’ERC, Eeschema place des marqueurs pour mettre en évidence les problèmes. Le diagnostic peut alors être donné par un clic gauche sur le marqueur. Un fichier de rapport d’erreurs peut également être généré.

4.6.1. Fenêtre principale de l’ERC

La fenêtre de l'ERC.

Les erreurs sont affichées dans la fenêtre du vérificateur des règles électriques :

  • Total : nombre total d’erreurs et avertissements.

  • Erreurs : nombre d’erreurs.

  • Warnings : nombre d’avertissements.

Options :

  • Créer fichier rapport ERC : cochez la case pour la création d’un fichier de rapport d’erreurs.

Commandes :

  • Effacer marqueurs : enlève tous les marqueurs d’erreurs et avertissements du schéma.

  • Exécuter : lance la vérification.

  • Fermer : ferme la fenêtre de l’ERC.

Note :

  • En cliquant sur une erreur, vous êtes emmenés au marqueur correspondant sur le schéma.

4.6.2. Options de l’ERC

Onglet 'Options'

Cet onglet vous permet de fixer les règles de connexion entre pins. Vous pouvez choisir parmi trois options pour chaque cas :

  • Pas d’erreur (Vert)

  • Avertissement (W jaune)

  • Erreur (E rouge)

Chaque carré de la matrice peut être modifié en cliquant une ou plusieurs fois dessus.

4.7. Outil de Liste de Matériel

L’icône BOM icon donne accès à l’outil de création de la liste de matériel, ou BOM (Bill Of Material). Cet outil génère un fichier contenant la liste des composants et/ou les connexions hiérarchiques (labels globaux).

Fenêtre du générateur de BOM

Le générateur de BOM utilise des plugins externes, en général sous la forme de feuilles de styles XSLT ou de scripts Python. Certains sont fournis, et sont disponibles dans le répertoire d’installation de KiCad. (Linux : /usr/lib/kicad/plugins).

Quelques champs de composants utiles à utiliser pour le BOM :

  • Valeur : nom unique pour chaque composant utilisé.

  • Empreinte : entrée soit manuellement, soit par rétro-annotation (voir ci-dessous).

  • Champ 1 : nom du fabricant.

  • Champ 2 : référence fabricant.

  • Champ 3 : référence distributeur.

Exemple :

Fenêtre des propriétés du composant

4.8. Outil de rétro-annotation des empreintes associées

4.8.1. Accès :

L’icône Import Footprint Names icon donne accès à l’outil de rétro-annotation.

Cet outil permet de rétro-importer les noms des empreintes choisies dans Pcbnew dans les champs empreintes de Eeschema.

5. Création et édition de schémas

5.1. Introduction

Un schéma peut être représenté sur une seule feuille, mais, s’il est assez grand, il lui faudra plusieurs feuilles.

Un schéma représenté sur plusieurs feuilles est un schéma hiérarchique, et toutes ses feuilles (chacune représentée par son propre fichier) constituent un projet Eeschema. La manipulation des schémas hiérarchiques sera décrite au chapitre Schématiques hiérarchiques.

5.2. Généralités

Un schéma conçu avec Eeschema est plus que la simple représentation graphique d’un dispositif électronique. Il est normalement le point d’entrée d’une chaîne de développement qui permet de :

Un schéma se compose principalement de composants, de fils, d'étiquettes (labels), de jonctions, de bus et de sources d’alimentation. Pour plus de clarté dans le schéma, vous pouvez placer des éléments purement graphiques comme des entrées de bus, des commentaires ou des polygones graphiques.

5.3. Chaîne de développement

dev-chain_png

Les composants sont ajoutés à la schématique à partir de bibliothèques (librairies) de composants. Quand le schéma est fait, une liste d’interconnexions (netliste) est générée, qui est ensuite utilisée pour importer la définition des connexions et des empreintes dans PcbNew.

5.4. Placement et édition de composants

5.4.1. Rechercher et placer un composant

Pour placer un composant dans votre schéma, vous pouvez utiliser l’icône New Component icon . Une boîte de dialogue vous permet de taper le nom du composant à charger.

Fenêtre de sélection de composant

La boîte de dialogue Sélection Composant va filtrer les composants par nom, mots-clés, ou description selon ce que vous tapez dans le champ de recherche du filtre.

Avant de placer le composant dans le schéma, vous pouvez le faire pivoter, le renverser (miroir haut-bas ou droite-gauche), ou modifier ses champs, soit en utilisant les raccourcis clavier soit par le menu contextuel (clic-droit). Cela pourra également être fait après le placement, de la même manière.

Voici un composant lors de son placement :

composant en cours de placement

5.4.2. Alimentations

Un symbole d’alimentation est un composant (les symboles d’alimentation sont regroupés dans la librairie "power"), afin qu’ils puissent être placés en utilisant le sélecteur de composants. Cependant, comme les placements d’alimentations sont fréquents, on utilisera l’outil Add Power icon . Cet outil est le même que pour le placement de composants, sauf que la recherche se fait directement dans la librairie «power».

5.4.3. Édition et modification de composants (déjà placés)

Il y a deux façons d'éditer un composant :

  • Modifier le composant lui-même : position, orientation, sélection d’unité pour un composant multi-unités.

  • Modifier un de ses champs : référence, valeur, empreinte, etc…

Lorsqu’un composant vient d'être placé, vous pouvez avoir à modifier sa valeur (en particulier pour les résistances, condensateurs, etc…), mais il est inutile de lui assigner un numéro de référence tout de suite, ni de sélectionner l’unité (sauf pour les composants avec des unités verrouillées, que vous aurez à attribuer manuellement). Ceci peut être fait automatiquement par l’outil d’annotation.

Modification de composant

Pour modifier une caractéristique d’un composant, placez le curseur sur le composant, puis, au choix :

  • Double-cliquez sur le composant pour ouvrir la fenêtre d'édition complète.

  • Faites un clic droit pour ouvrir le menu contextuel et choisissez l’une des commandes : Déplacer, Orienter, Éditer, Supprimer, etc…

Édition des champs du composant

Vous pouvez modifier la référence, la valeur, la position, l’orientation, la taille du texte et la visibilité des champs :

  • Double-cliquez sur le champ à modifier.

  • Faites un clic droit pour ouvrir le menu contextuel et choisissez l’une des commandes : Déplacer, Orienter, Éditer, Supprimer, etc…

Pour plus d’options, ou pour créer de nouveaux champs, double-cliquez sur le composant pour ouvrir la fenêtre d'édition complète des propriétés du composant.

Fenêtre des propriétés du composant

Chaque champ peut être visible ou caché, et affiché soit horizontalement, soit verticalement. La position affichée est toujours indiquée pour le composant normalement affiché (pas de rotation ou de mise en miroir), et est relative au point d’ancrage du composant.

Le bouton "Remettre aux valeurs en Librairie" ramène le composant à son orientation originale, et réinitialise les options, la taille et la position de chaque champ. Les champs textes ne sont cependant pas modifiés, car cela pourrait casser la schématique.

5.5. Fils, Bus, Labels, Alimentations

5.5.1. Introduction

Tous ces éléments peuvent être placés à partir des outils de la barre latérale droite

Ces éléments peuvent être des :

  • Fils : connexions entre composants

  • Bus : pour relier graphiquement des labels de bus

  • Polygones : pour la présentation graphique.

  • Jonctions : pour créer des connexions au croisement de fils ou de bus.

  • Entrées de Bus : pour montrer les connexions entre fils et bus. Seulement pour l’aspect graphique !

  • Labels : pour étiqueter ou établir des connexions.

  • Labels globaux : pour établir des connexions entre feuilles.

  • Textes : pour ajouter des commentaires ou des notes.

  • Symboles de Non-Connexion : pour signaler une pin de composant qui ne sera pas utilisée.

  • Feuilles Hiérarchiques, et leurs pins de connexions.

5.5.2. Connexions (Fils et Labels)

Il y a deux moyens d'établir des connexions :

  • Fils de pin à pin.

  • Labels.

La figure ci-dessous montre les deux méthodes :

Labels de fils

Note 1 :

Le point de "contact" d’un label est le coin inférieur gauche de la première lettre de l'étiquette. Ce point est affiché avec un petit carré lorsqu’il n’est pas connecté.

Ce point doit donc être en contact avec le fil, ou être superposé à l’extrémité d’une pin pour que le label soit considéré comme connecté.

Note 2 :

Pour établir une connexion, un segment de fil doit être connecté par ses extrémités à un autre segment ou à une pin de composant.

Si il y a chevauchement (si un fil survole une pin sans être connecté à son extrémité), il n’y a pas de connexion.

Note 3 :

Les fils qui se croisent ne sont pas implicitement connectés. Il est nécessaire de les joindre avec un point de jonction si une connexion est souhaitée.

La figure précédente montre un cas de connexions utilisant des symboles de jonction (fils reliés entre eux, DB25FEMALE pins 19, 20, 21, 22).

Note 4 :

Si deux labels différents sont placés sur le même fil, ils sont reliés entre eux et deviennent équivalents. Et tous les éléments reliés à l’un ou l’autre de ces labels seront connectés entre eux.

5.5.3. Connexions (Bus)

Dans le schéma ci-dessous, de nombreuses pins sont connectées à des bus.

Exemple de schéma avec des bus :
Membres d’un bus

Du point de vue schématique, un bus est une collection de signaux, commençant par un préfixe commun, et se terminant par un numéro. Par exemple, PCA0, PCA1, PCA2 et sont des membres du bus PCA.

Le bus complet est nommé PCA[N..m], où N et m sont le premier et le dernier numéro des fils de ce bus. Ainsi, si le bus PCA compte 20 membres, de 0 à 19, le bus complet sera noté PCA[0..19]. Une collection de signaux comme PCA0, PCA1, PCA2, WRITE, READ ne peut être contenue dans un bus.

Connexions entre membres de bus

Les pins connectées entre les membres d’un même bus doivent être reliées par des labels. Il est impossible de connecter une pin directement à un bus ; ce type de connexion sera ignoré par Eeschema.

Dans l’exemple ci-dessus, les connexions sont faites par des labels placés sur les fils connectés aux pins. Les entrées de bus (segments de fil à 45 degrés) sont purement décoratifs, et ne sont pas nécessaires pour établir des connexions logiques.

En pratique, en utilisant la commande de répétition (touche Insert), les connexions peuvent être très vite faites de la façon suivante, si les pins de composants sont alignées dans l’ordre croissant (un cas fréquent sur des composants tels que des mémoires, microprocesseurs, etc…) :

  • Placez le premier label (par exemple PCA0).

  • Utilisez la commande de répétition autant de fois que nécessaire pour placer les autres membres. Eeschema créera automatiquement les labels suivants (PCA1, PCA2 …) alignés verticalement, théoriquement sur la position des autres pins.

  • Dessinez le fil sous le premier label. Ensuite, utilisez la commande de répétition pour placer les autres fils sous les autres labels.

  • Au besoin, placez les entrées de bus de la même façon (placez la première entrée, puis utilisez la commande de répétition).

Note

Dans le menu Préférences / Options de l'éditeur de schématique, vous pouvez définir les paramètres de répétition :

  • Pas vertical.

  • Pas horizontal.

  • Incrémentation des labels (qui peuvent ainsi être incrémentés de 2, 3, ou décrémentés).

Connexions globales entre les bus

Vous pouvez avoir besoin de mettre des connexions entre des bus, pour, par exemple, relier deux bus ayant des noms différents, ou dans le cas d’une hiérarchie, pour créer des liens entre les différentes feuilles. Dans ce cas, effectuez ces connexions de la manière suivante :

Exemple de jonction de bus

Les bus PCA [0..15], ADR [0..7] et BUS [5..10] sont reliés entre eux (remarquez la jonction placée ici pour que le fil de bus vertical rejoigne le milieu du segment du bus horizontal).

Plus précisément, les éléments correspondants sont reliés entre eux: PCA0, ADR0 sont connectés, (de même que PCA1 et ADR1, …, PCA7 et ADR7).

De la même manière, PCA5, BUS5 et ADR5 sont connectés (tout comme PCA6, BUS6 et ADR6 et PCA7, BUS7 et ADR7).

PCA8 et BUS8 sont aussi connectés (tout comme PCA9 et BUS9, PCA10 et BUS10)

5.5.4. Connexion des sources d’alimentation

Lorsque les pins d’alimentation des composants sont visibles, elles doivent être connectées, comme pour tout autre signal.

Les composants tels que les portes logiques et les bascules peuvent avoir des pins d’alimentation invisibles. Des précautions doivent être prises avec ceux-ci parce que :

  • Vous ne pouvez pas connecter de fils, en raison de leur invisibilité.

  • Vous ne connaissez pas leurs noms.

Et de plus, ce serait une mauvaise idée de les rendre visibles et de les relier comme les autres pins, parce que le schéma deviendrait illisible et non conforme aux conventions habituelles.

Note
Si vous voulez forcer l’affichage de ces pins d’alimentation invisibles, vous devez cocher l’option «Afficher les pins invisibles» dans la boîte de dialogue du menu Préférences / Options de l'éditeur de schématique, ou cliquer sur l’icône images/icons/hidden_pin.png de la barre d’outils de gauche.

Eeschema connecte automatiquement les pins d’alimentation invisibles de même nom, à la source d’alimentation portant ce nom. Il peut être nécessaire de relier des points d’alimentation de noms différents (par exemple, "GND" dans les composants TTL et "VSS" dans les composants MOS) ; utilisez les symboles d’alimentation pour cela.

Il est déconseillé d’utiliser des labels pour le raccordement aux alimentations. Ceux-ci ne disposent que d’une portée de connexion "locale", et ne relieraient pas les pins d’alimentation invisibles.

La figure ci-dessous montre un exemple de connexion de sources d’alimentation.

Exemples de sources d'alimentations

Dans cet exemple, la masse (GND) est connectée à la source d’alimentation VSS, et la source d’alimentation VCC est connectée à VDD.

Deux symboles PWR_FLAG y sont visibles. Ils indiquent que les deux sources d’alimentation VCC et GND sont vraiment reliées à une source d’alimentation. Sans ces deux drapeaux, l’outil ERC diagnostiquerait : Warning Avertissement : port d’alimentation non connecté.

Tous ces symboles de composants font partie de la librairie «power».

5.5.5. Symboles de "Non-Connexion"

Ces symboles sont très utiles pour éviter d’avoir des avertissements indésirables dans l’ERC. La vérification des règles électriques s’assurant qu’aucune connexion n’a été oubliée.

Si des pins doivent vraiment rester en l’air, il est nécessaire de placer un drapeau, symbole de "Non Connexion" (outil : No connection icon ) sur ces broches. Ces symboles n’ont aucune incidence sur la génération des netlistes.

5.6. Compléments Graphiques

5.6.1. Textes et Commentaires

Il peut être utile, pour la compréhension le schéma, de placer des éléments tels que des textes, des notes, ou des cadres. Les outils Texte : images/icons/add_text.png et Polygones : images/icons/add_dashed_line.png ) sont destinés à cet usage, contrairement aux labels et aux fils, qui sont des éléments de connexion.

Ici, un exemple de cadre avec un texte de commentaire :

Cadre et exemple de texte de commentaire.

5.6.2. Cartouche

On peut modifier le cartouche et son contenu en cliquant sur l’outil Ajustage Opt Page .

Fenêtre des Options de la page
Bloc Titre

Le nombre et le numéro de feuille sont automatiquement mis à jour.

5.7. Restauration du cache des composants

Par défaut, EESchema va chercher les symboles de composants des librairies disponibles dans les chemins et emplacements configurés. Cela peut causer un problème lors du chargement d’un projet très ancien : si les symboles de la librairie ont changé depuis qu’ils ont été utilisés dans le projet, ils seraient remplacés automatiquement avec leurs nouvelles versions. Les nouvelles versions peuvent ne pas s’insérer correctement, ou être orientées différemment, ce qui conduit à un schéma cassé.

Cependant, quand un projet est enregistré, une librairie de sauvegarde (ou cache) est enregistrée avec lui. Cela permet au projet d'être distribué sans les librairies complètes. Si vous chargez un projet où les symboles sont présents à la fois dans ce fichier cache et dans les librairies du système, Eeschema va scanner les bibliothèques pour trouver d'éventuels conflits. Les conflits trouvés seront affichés dans la fenêtre suivante :

Fenêtre de résolution des conflits

Vous pouvez voir dans cet exemple que le projet utilisait initialement une diode avec la cathode vers le haut, mais la librairie en contient maintenant une avec la cathode vers le bas. Ce changement pourrait ruiner le projet ! Un appui sur OK, provoquera la sauvegarde de l’ancien symbole dans une librairie spéciale «rescue», et tous les composants utilisant ce symbole seront renommés pour éviter les conflits de noms.

Si vous appuyez sur Annuler, aucune sauvegarde ne sera effectuée, et donc Eeschema va, par défaut, charger tous les nouveaux composants. Tant qu’aucun changement n’a été effectué, vous pouvez toujours revenir en arrière et relancer la restauration du cache : choisissez "Sauver anciens composants" du menu Outils pour faire apparaître la fenêtre à nouveau.

Si vous préférez ne plus voir cette boîte de dialogue, vous pouvez appuyer sur "Ne plus afficher". La valeur par défaut est de ne rien faire et de permettre aux nouveaux composants d'être chargés. Cette option peut être modifiée dans les Préférences / Librairies de composants.

6. Schématiques hiérarchiques

6.1. Introduction

Une représentation hiérarchique est généralement une bonne solution pour des projets dépassant quelques feuilles. Si vous voulez gérer ce type de projet, il vous faudra :

  • Utiliser de grande feuilles, ce qui pourrait conduire à des problèmes d’impression ou de manipulation.

  • Utiliser plusieurs feuilles, ce qui vous amène à une structure hiérarchique.

La schématique complète consiste alors en une feuille principale, appelée feuille racine, et des sous-feuilles constituant la hiérarchie. En outre, une habile subdivision du schéma en plusieurs feuilles augmentera souvent sa lisibilité.

À partir de la feuille racine, vous pouvez accéder à toutes les sous-feuilles. La gestion d’une schématique hiérarchique est très facile avec Eeschema, grâce à son "Navigateur de Hiérarchie" accessible par l’icône icons/hierarchy_nav_png de la barre d’outils supérieure.

Deux sortes de hiérarchies peuvent cohabiter : la première est celle qui vient d'être évoquée, et qui est d’usage courant. La seconde consiste en la création de composants en librairie qui ressemblent à des composants ordinaires, mais qui correspondent en fait à un schéma décrivant leur structure interne.

Le second type est utilisé pour concevoir des circuits intégrés, car dans ce cas vous devez utiliser des librairies de fonctions dans le schéma que vous êtes en train de dessiner.

Eeschema ne gère pas pour l’instant ce deuxième type.

Une hiérarchie peut être :

  • simple : une feuille donnée n’est utilisée qu’une seule fois.

  • complexe : une feuille donnée sera utilisée plusieurs fois (instances multiples).

  • à plat : c’est un hiérarchie simple, mais les liaisons entre feuilles ne sont pas dessinées.

Eeschema est capable de gérer ces différentes hiérarchies.

La création d’une schématique hiérarchique est facile, la hiérarchie étant manipulée à partir de la feuille racine, comme si vous n’aviez qu’un seul schéma.

Les deux étapes importantes à comprendre sont :

  • Comment créer une sous-feuille.

  • Comment établir des connexions électriques entre les sous-feuilles.

La navigation parmi les sous-feuilles est très facile, grâce à l’outil de navigation accessible par le bouton icons/hierarchy_nav_png de la barre d’outils supérieure.

hierarchy_navigator_dialog_png

On peut atteindre chaque feuille en double-cliquant sur son nom. Vous pouvez aussi entrer rapidement dans une feuille, depuis sa feuille parente, en faisant un clic droit dessus, puis Entrer dans feuille.

Vous pouvez accéder rapidement à la feuille racine, ou à une des sous-feuilles grâce à l’outil icons/hierarchy_cursor_png de la barre latérale droite. Après que cet outil ait été sélectionné :

  • Cliquez sur un nom de feuille pour la sélectionner.

  • Cliquez ailleurs sur la feuille pour afficher la feuille racine, ou pour remonter dans la hiérarchie.

6.3. Labels locaux, hiérarchiques et globaux

6.3.1. Propriétés

Les labels locaux, outil icons/add_line_label_png , relient des signaux uniquement à l’intérieur de la même feuille. Les labels hiérarchiques, outil icons/add_hierarchical_label_png , relient des signaux uniquement à l’intérieur d’une feuille ou à une pin hiérarchique de sa feuille parente.

Les labels globaux, outil Global label icon , relient des signaux à travers toute la hiérarchie. Les pins d’alimentation (de type power in et power out) invisibles sont similaires aux labels globaux car elles sont reliées à travers toute la hiérarchie.

Note
À l’intérieur d’une hiérarchie, on peut utiliser à la fois des labels globaux ou hiérarchiques.

6.4. Étapes de la création hiérarchique

Vous devez :

  • Placer dans la feuille racine un symbole appelé "Feuille hiérarchique".

  • Accéder à cette nouvelle feuille schématique (sous-feuille) par le navigateur, et la dessiner, comme n’importe quel schéma.

  • Établir les connexions électriques entre les deux feuilles de schéma en plaçant des Labels Globaux (HLabels) dans la nouvelle sous-feuille et des labels portant le même nom dans la feuille racine, appelées Labels de Feuille (SheetLabels). Ces SheetLabels seront connectées au symbole de feuille, de la feuille racine aux autres éléments du schéma comme des pins ordinaires de composants.

6.5. Symbole de feuille hiérarchique

Tracez un rectangle symbolisant la sous-feuille, en plaçant deux points sur une diagonale.

La taille de ce rectangle vous permettra d’ajouter plus tard des labels particuliers, des pins de hiérarchie, correspondant aux labels globaux (Hlabels) de la sous-feuille.

Ces labels sont vues comme des pins ordinaires de composants. Utilisez l’outil icons/add_hierarchical_subsheet_png .

Cliquez pour placer le coin supérieur gauche du rectangle. Cliquez à nouveau pour positionner le coin inférieur droit, afin d’avoir un rectangle suffisamment grand.

On vous demandera alors de donner un nom de fichier et un nom de feuille pour cette sous-feuille, pour vous permettre de l’atteindre par le navigateur de hiérarchie.

hsheet_properties_1_png

Vous devez au moins spécifier un nom de fichier. En l’absence de nom de feuille, c’est le nom de fichier qui sera utilisé comme nom de feuille (c’est la méthode habituelle).

6.6. Connexions - Pins hiérarchiques

Vous allez maintenant créer des points de connexion (pins hiérarchiques) pour le symbole de feuille qui vient d'être créé.

Ces pins hiérarchiques sont similaires à des pins ordinaires de composants, avec toutefois la possibilité de raccorder un bus entier sur un seul point de connexion.

Il y a deux méthodes possibles :

  • Placer les différentes pins avant le dessin de la sous-feuille (placement manuel).

  • Placer les différentes pins après le dessin de la sous-feuille et des labels globaux (placement semi-automatique).

Cette deuxième méthode largement préférable.

Placement manuel

  • Choisissez l’outil icons/add_hierar_pin_png .

  • Cliquez sur le symbole de feuille hiérarchique où vous voulez placer cette pin.

Ci-dessous, un exemple de création de pin hiérarchique appelée "CONNECTION".

1000000000000160000000CD797712D0_png

Vous pouvez dès maintenant définir ses attributs graphiques, sa dimension, ou ultérieurement, en l'éditant (clic droit et choisir Éditer dans le menu contextuel).

Différentes formes de pins s’offrent à vous :

  • Entrée

  • Sortie

  • Bidirectionnel

  • Trois-états

  • Passive

Ces formes de symboles de pins ne sont que des améliorations graphiques et elles n’ont pas d’autre rôle.

Placement automatique :

  • Sélectionnez l’outil icons/import_hierarchical_label_png .

  • Cliquez sur le symbole de feuille hiérarchique dans lequel vous voulez importer des pins hiérarchiques correspondant aux labels hiérarchiques placés dans la feuille correspondante. Une pin hiérarchique apparaît si un label hiérarchique existe et qu’il ne correspond pas à une pin déjà placée.

  • Cliquez où vous souhaiter placer la pin.

Les pins nécessaires peuvent ainsi être placées rapidement et sans erreur. Leur aspect correspond à celui de leur label hiérarchique.

6.7. Connexions - Labels hiérarchiques

À chaque pin de la feuille symbolique venant d'être créée doit correspondre un label appelé label hiérarchique dans la sous-feuille. Les labels hiérarchiques sont similaires aux labels ordinaires, mais ils permettent des connexions entre les sous-feuilles et la feuille de racine. La représentation graphique de ces deux éléments complémentaires (pin et label hiérarchiques) est identique. La création de labels hiérarchiques se fait à l’aide de l’outil : icons/add_hierarchical_label_png .

Ci-dessous un exemple de feuille racine :

hierarchical_label_root_png

Remarquez la pin hiérarchique VCC-PIC, reliée au connecteur JP1.

Voici les connexions correspondantes dans la sous-feuille :

hierarchical_label_sub_png

Nous retrouvons les deux labels hiérarchiques correspondants, qui établissent la connexion entre les deux feuilles hiérarchiques.

Note
Vous pouvez utiliser des pins et des labels hiérarchiques pour relier deux bus, en utilisant la syntaxe décrite précédemment (Bus [N..m]).

6.7.1. Labels, labels hiérarchiques, labels globaux et pins d’alimentation invisibles

Quelques remarques sur les différentes façons d'établir des connexions autrement qu’avec des fils.

Labels simples

Les labels simples n’ont qu’une portée locale de connexion, limitée à la feuille de schéma dans laquelle ils sont placés. Ceci est du au fait que :

  • Chaque feuille a un numéro de feuille.

  • Ce numéro de feuille est associé à l'étiquette.

Ainsi, quand vous placez un label "TOTO" dans la feuille n°3, le vrai nom de ce label est "TOTO_3". Si vous avez aussi un label "TOTO" dans la feuille n°1 (feuille racine), c’est en fait un label "TOTO_1" différent de "TOTO_3". Ceci est toujours vrai, même si vous n’avez qu’une seule feuille.

Labels hiérarchiques

Ce que nous avons dit pour les labels simple est vrai aussi pour les labels hiérarchiques.

Ainsi, dans la même feuille, un label hiérarchique "TOTO" est considéré comme connecté à un autre label "TOTO", mais n’est pas connecté à un label "TOTO" dans une autre feuille.

Toutefois, un label hiérarchique sera connecté au symbole de pin hiérarchique correspondant dans la feuille racine.

Pins d’alimentations invisibles

Nous avons vu que les pins d’alimentation invisibles sont connectées ensemble si elles portent le même nom. Ainsi toutes les pins déclarées "pins d’alimentation invisibles" et nommées VCC sont reliées et forment l'équipotentiel VCC, quelle que soit la feuille dans laquelle elles sont placées.

En revanche, si vous placez un label VCC dans une sous-feuille, il ne sera pas relié aux pins VCC, parce que ce label est en fait VCC_n, où n est le numéro de la feuille.

Si vous voulez que ce label VCC soit réellement connecté à l'équipotentiel VCC, il devra avoir été explicitement connecté à une pin invisible grâce à un port d’alimentation VCC.

6.7.2. Labels globaux

Les labels globaux qui portent le même nom sont connectés à travers toute la hiérarchie.

(les labels d’alimentation comme vcc … sont des labels globaux)

6.8. Hiérarchie complexe

Voici un exemple. La même schématique est utilisée deux fois (deux instances). Les deux feuilles partagent le même schéma parce que le nom de fichier est le même pour les deux feuilles («other_sheet.sch»). Mais leurs noms de feuilles doivent être différents.

10000000000001C6000001CAAC972C0B_png

6.9. Hiérarchie à plat

Vous pouvez créer un projet utilisant plusieurs feuilles, sans créer aucune connexion entre ces feuilles (hiérarchie à plat) si les règles suivantes son respectées :

  • Vous devez créer une feuille racine, contenant les autres feuilles, qui sera le lien entre les feuilles.

  • Aucune connexion explicite n’est nécessaire.

  • Les connexions entre feuilles utiliseront des label globaux au lieu de label hiérarchiques.

Voici un exemple de feuille racine :

10000000000002C800000134F8E86C51_png

Voici les deux feuilles, connectées par des labels globaux.

Voici la feuille pic_programmer.sch.

100000000000020B000001B70A60DECC_png

Voici la feuille pic_sockets.sch.

1000000000000272000001C015CA854E_png

Regardez les labels globaux.

100000000000009B00000079AC689E05_png

7. Annotation automatique des composants

7.1. Introduction

L’outil d’annotation automatique permet d’affecter automatiquement une référence aux composants du schéma. Pour les boitiers multi-unités, il affecte un suffixe de multi-unité pour réduire le nombre de ces boitiers. L’outil d’annotation automatique est accessible par l’icone icons_annotate_png . qui se trouve sur la fenêtre principale.

annotate-dialog_img

Plusieurs choix s’offrent à vous :

  • Réaffecter toutes les références, même celles existantes (Supprimer l’annotation existante).

  • Réaffecter toutes les références, sauf pour les boitiers multi-unités déjà annotés (Reset, mais ne pas échanger les unités déjà numérotées des boitiers multi-unités).

  • Annoter seulement les nouveaux composants (ceux dont la référence finit par ? comme IC? (Garder l’annotation existante).

  • Annoter toute la hiérarchie (Utiliser la schématique entière).

  • Annoter seulement le schéma en cours (Utiliser la feuille active uniquement).

L’option «Reset, mais ne pas échanger les unités déjà numérotées des boitiers multi-unités» conserve toutes les associations existantes entre les boitiers multi-unités. En pratique, si vous avez U2A et U2B, ils pourront être réannotés respectivement U1A et U1B, mais ne seront jamais réannotés U1A et U2A, ni U2B et U2A. Utile si on veut s’assurer que les regroupements de pins soient conservés, dans le cas où vous avez déjà décidé à quel endroit sera le mieux placée telle unité.

Le choix de l’ordre de l’annotation fixe la méthode utilisée pour affecter les numéros de référence sur chaque feuille de la hiérarchie.

Sauf exception, l’annotation automatique s’applique au projet entier (toutes les feuilles) et aux nouveaux composants, si on ne veut pas modifier les annotations précédentes.

Le choix de l’annotation fixe la méthode utilisée pour calculer le numéro de la référence :

  • Utiliser le premier nombre libre de la schématique : les composants seront annotés à partir de 1 (pour chaque préfixe de référence). S’il existe une précédente annotation, les nombres non encore utilisés seront pris.

  • Démarrer à numéro de feuille *100 et utiliser le premier nombre libre : l’annotation commence par 101 sur la feuille numéro 1, par 201 sur la feuille numéro 2, etc… S’il y a plus de 99 éléments avec le même préfixe de référence (U, R) sur la feuille 1, l’outil d’annotation utilisera le numéro 200 et suivants, et l’annotation de la feuille 2 commencera au prochain numéro libre.

  • Démarrer à numéro de feuille *1000 et utiliser le premier nombre libre : l’annotation commence par 1001 sur la feuille numéro 1, par 2001 sur la feuille numéro 2, etc…

7.2. Quelques exemples

7.2.1. Ordre d’annotation

Cet exemple montre 5 composants, non encore annotés.

2000000800003E6E0000154B2A71537E_png

Après l’exécution de l’annotation automatique, on obtient le résultat suivant.

Composants triés par position X.

100000000000022C000000B9BA2E1A94_png

Composants triés par position Y.

100000000000023D000000BC05569580_png

Vous pouvez voir que quatre portes 74LS00 ont été réparties dans le boitier U1, et que la cinquième porte 74LS00 a été assignée au suivant, U2.

7.2.2. Choix de l’annotation

Voici une annotation de la feuille 2 avec l’option Utiliser le premier nombre libre de la schématique.

100000000000014300000137E6B02665_png

L’option Démarrer à numéro de feuille *100 et utiliser le premier nombre libre donne le résultat suivant.

1000000000000138000001495A2E0270_png

L’option Démarrer à numéro de feuille *1000 et utiliser le premier nombre libre donne le résultat suivant.

1000000000000117000001359D8B03B1_png

8. Vérification des règles électriques (ERC)

8.1. Introduction

L’outil de vérification des règles électriques, ou ERC (Electrical Rules Check), vérifie automatiquement votre schéma. Il détecte les erreurs dans la feuille, comme les pins ou les symboles hiérarchiques non connectés, les sorties en court-circuit, etc… Bien entendu une vérification automatique n’est pas infaillible, et le logiciel qui la réalise n’est pas encore terminé à 100%. Malgré tout, cette vérification est très utile, car elle détecte beaucoup d’omissions et de petites erreurs.

Dans un processus normal, toutes les erreurs détectées devront être vérifiées et corrigées avant de continuer. La qualité de l’ERC est directement liée au soin pris dans la déclaration des propriétés des pins électriques, lors de la création des composants de la librairie. L’ERC produit en sortie des "erreurs" ou des "avertissements".

La fenêtre de l'ERC.

8.2. Utilisation de l’ERC

L’ERC est lancé par l’icône Icône ERC .

Des avertissements, sous forme de petites flèches de marquage, seront placés sur les éléments schématiques générant une erreur ERC (pins ou labels).

Note
  • Dans cette boite de dialogue, en cliquant sur un message d’erreur, vous allez au marqueur d’erreur correspondant dans le schéma.

  • Dans le schéma, faites un clic droit sur un marqueur pour accéder au message de diagnostic correspondant.

Vous pouvez également supprimer des marqueurs d’erreur dans la boîte de dialogue.

8.3. Exemple d’ERC

Marqueurs d'ERC

Ici, vous pouvez voir quatre erreurs :

  • Deux sorties logiques ont été reliées ensemble (flèche rouge).

  • Deux entrées ne sont pas connectées (flèches vertes du bas).

  • Une erreur sur une source d’alimentation invisible, dont il manque le symbole d’alimentation (flèche verte du haut).

8.4. Affichage du diagnostic

Un clic droit sur un marqueur vous affiche le menu contextuel permettant d’accéder à la fenêtre d’informations de diagnostic de l’ERC.

Infos des marqueurs de L'ERC

et en cliquant sur un marqueur, vous obtenez une description de l’erreur.

1000000000000250000000D72B1E53C2_png

8.5. Pins d’alimentation et symboles d’alimentation (Power Flag)

Il est fréquent d’avoir une erreur ou un avertissement sur les pins d’alimentation, même si tout semble normal. Voir l’exemple ci-dessus. Cela arrive parce que, dans la plupart des dessins, l’alimentation est fournie par des connecteurs qui ne sont pas identifiés comme des sources d'énergie (au contraire d’une sortie de régulateur qui, elle, est déclarée en tant que sortie d’alimentation).

Ainsi l’ERC ne détectera pas une pin de sortie d’alimentation pour ce fil et le déclarera non-connecté à une source d’alimentation.

Pour éviter ceci, il faut placer un symbole d’alimentation, "PWR_FLAG", sur ce connecteur d’alim. Comme dans l’exemple suivant :

20000008000030E4000026DDFDF3D5E2_png

Et ainsi le marqueur disparaît.

La plupart du temps, un PWR_FLAG devra aussi être relié à la masse, car si la sortie des régulateurs de tensions est déclarée comme source d’alimentation, les pins de masse ne le sont pas (leur attribut normal est entrée d’alimentation). Et donc, les masses ne seront pas considérées comme connectées à une source d’alimentation en l’absence d’un PWR_FLAG.

8.6. Configuration

Le panneau des Options vous permet de configurer les règles de connexion définissant les conditions électriques de la vérification des erreurs et des avertissements.

10000000000002810000024A2E8220E0_png

Les règles sont modifiées en cliquant plusieurs fois sur le bouton carré dans le tableau pour faire défiler les différents choix : normal [vert], avertissement [W jaune], erreur [E rouge].

8.7. Fichier de rapport d’ERC

Un rapport d’ERC peut être produit et sauvegardé en cochant la case "Créer fichier rapport ERC". L’extension pour ces fichiers est .erc. Voici un exemple de rapport d’ERC :

ERC control (4/1/1997-14:16:4)

***** Sheet 1 (INTERFACE UNIVERSAL)
ERC: Warning Pin input Unconnected @ 8.450, 2.350
ERC: Warning passive Pin Unconnected @ 8.450, 1.950
ERC: Warning: BiDir Pin connected to power Pin (Net 6) @ 10.100, 3.300
ERC: Warning: Power Pin connected to BiDir Pin (Net 6) @ 4.950, 1.400

>> Errors ERC: 4

9. Création d’une Netliste

9.1. Généralités

Une Netliste est un fichier qui décrit les connexions électriques entre les composants. Dans un fichier Netlist vous trouverez :

  • La liste des composants.

  • La liste des connexions entre composants, appelées aussi équipotentielles.

Différents formats de netlistes existent. Parfois, la liste des composants et des équipotentielles sont deux fichiers séparés. Cette netliste est fondamentale dans l’utilisation des logiciels de saisie de schémas, car cette liste est le lien avec les autres logiciels de CAO électronique, comme :

  • Les logiciels de dessin de circuit imprimés.

  • Les simulateurs de schémas et de circuits imprimés.

  • les compilateurs de CPLD (et autres circuits intégrés programmables).

Eeschema gère plusieurs formats de netlistes.

  • Le format PCBNEW (circuits imprimés).

  • Le format ORCAD PCB2 (circuits imprimés).

  • Le format CADSTAR (circuits imprimés).

  • Le format SPICE, utilisé par différents simulateurs.

9.2. Formats de Netliste

Cliquez sur l’outil Netlist icon pour ouvrir la boite de dialogue de création de Netliste.

Onglet Pcbnew :

100000000000015B00000103C7B601A8_png

Onglet Spice :

100000000000015C0000010342AD04EC_png

Au moyen des différents onglets, vous pouvez choisir le format désiré. Dans le format Pspice, vous pouvez générer des netlistes avec soit des noms d'équipotentielles (c’est plus lisible), soit des numéros de net (les anciennes versions de Spice n’acceptent que les chiffres). En cliquant sur le bouton "Générer", vous serez invité à donner un nom de fichier à votre netliste.

Note
Dans les gros projets, la génération de la netliste peut prendre quelques minutes.

9.3. Exemples de netlistes

Vous pouvez voir ci-dessous un schéma

10000000000002BE0000017EB6C97C72_png

Exemple d’une netliste pour PcbNew :

# Eeschema Netlist Version 1.0 generee le 21/1/1997-16:51:15
(
(32E35B76 $noname C2 1NF {Lib=C}
(1 0)
(2 VOUT_1)
)
(32CFC454 $noname V2 AC_0.1 {Lib=VSOURCE}
(1 N-000003)
(2 0)
)
(32CFC413 $noname C1 1UF {Lib=C}
(1 INPUT_1)
(2 N-000003)
)
(32CFC337 $noname V1 DC_12V {Lib=VSOURCE}
(1 +12V)
(2 0)
)
(32CFC293 $noname R2 10K {Lib=R}
(1 INPUT_1)
(2 0)
)
(32CFC288 $noname R6 22K {Lib=R}
(1 +12V)
(2 INPUT_1)
)
(32CFC27F $noname R5 22K {Lib=R}
(1 +12V)
(2 N-000008)
)
(32CFC277 $noname R1 10K {Lib=R}
(1 N-000008)
(2 0)
)
(32CFC25A $noname R7 470 {Lib=R}
(1 EMET_1)
(2 0)
)
(32CFC254 $noname R4 1K {Lib=R}
(1 +12V)
(2 VOUT_1)
)
(32CFC24C $noname R3 1K {Lib=R}
(1 +12V)
(2 N-000006)
)
(32CFC230 $noname Q2 Q2N2222 {Lib=NPN}
(1 VOUT_1)
(2 N-000008)
(3 EMET_1)
)
(32CFC227 $noname Q1 Q2N2222 {Lib=NPN}
(1 N-000006)
(2 INPUT_1)
(3 EMET_1)
)
)
# End

La même netliste, en format PSPICE :

* Eeschema Netlist Version 1.1 (Spice format) creation date: 18/6/2008-08:38:03

.model Q2N2222 npn (bf=200)
.AC 10 1Meg \*1.2
.DC V1 10 12 0.5


R12   /VOUT N-000003 22K
R11   +12V N-000003 100
L1   N-000003 /VOUT 100mH
R10   N-000005 N-000004 220
C3   N-000005 0 10uF
C2   N-000009 0 1nF
R8   N-000004 0 2.2K
Q3   /VOUT N-000009 N-000004 N-000004 Q2N2222
V2   N-000008 0 AC 0.1
C1   /VIN N-000008 1UF
V1   +12V 0 DC 12V
R2   /VIN 0 10K
R6   +12V /VIN 22K
R5   +12V N-000012 22K
R1   N-000012 0 10K
R7   N-000007 0 470
R4   +12V N-000009 1K
R3   +12V N-000010 1K
Q2   N-000009 N-000012 N-000007 N-000007 Q2N2222
Q1   N-000010 /VIN N-000007 N-000007 Q2N2222

.print ac v(vout)
.plot ac v(nodes) (-1,5)

.end

9.4. Notes sur les netlistes

9.4.1. Précautions pour les noms de netlistes

Beaucoup de logiciels qui utilisent des netlistes n’acceptent pas les espaces dans les noms de composants, de pins, d'équipotentielles ou autres. Évitez donc systématiquement les espaces dans les labels, les noms, les champs de composants et leurs pins.

De la même manière, les caractères spéciaux autres que les lettres et les chiffres peuvent poser problème. Notez que cette limitation n’est pas propre à Eeschema, mais aux formats de netlistes qui pourraient s’avérer intraduisibles pour les logiciels qui les utilisent.

9.4.2. Netlistes PSPICE

Pour le simulateur PSPICE, vous devez inclure certaines commandes dans la netliste elle-même (.PROBE, .AC, etc..).

Chaque ligne de texte incluse dans le schéma et débutant par les mots-clefs -pspice ou -gnucap sera insérée (sans le mot-clef) au début de la netliste.

Chaque ligne de texte incluse dans le schéma et débutant par les mots-clefs +pspice ou +gnucap sera insérée (sans le mot-clef) à la fin de la netliste.

Voici un exemple utilisant plusieurs lignes de texte et un autre utilisant un texte multi-lignes :

100000000000021B000001BDEA9ADDBA_png

Par exemple, si vous tapez le texte suivant (n’utilisez pas un label !) :

-PSPICE .PROBE

une ligne .PROBE sera insérée en début de netliste.

Dans l’exemple précédent, avec cette méthode, trois lignes étaient insérées au début de la netliste et deux à la fin.

Si vous utilisez un texte multi-lignes, les mots-clefs +pspice ou +gnucap ne sont nécessaires qu’une seule fois :

+PSPICE .model NPN NPN
.model PNP PNP
.lib C:\Program Files\LTC\LTspiceIV\lib\cmp\standard.bjt
.backanno

crée les quatre lignes :

.model NPN NPN
.model PNP PNP
.lib C:\Program Files\LTC\LTspiceIV\lib\cmp\standard.bjt
.backanno

Notez aussi que l'équipotentielle GND doit être nommée 0 (zéro) pour Pspice.

9.5. Autres formats

Pour d’autres formats de netlistes, vous pouvez ajouter des convertisseurs de netlistes sous forme de plugins. Ces convertisseurs seront lancés automatiquement par Eeshema. Le chapitre 14 donne des explications et quelques exemples de convertisseurs.

Un convertisseur est un fichier texte (format XSL), mais on peut utiliser d’autres langages, comme Python. Lorsque vous utilisez le format XSL, un outil (xsltproc.exe ou xsltproc) lit le fichier intermédiaire créé par Eeschema et le fichier de conversion pour créer le fichier de sortie. Dans ce cas, le fichier de conversion (une feuille de style) est très petit et très facile à écrire.

9.5.1. Ajout dans la boite de dialogue

Vous pouvez ajouter un nouveau plugin par le bouton "Ajouter Plugin".

10000000000000DA000000C6E73B58D7_png

Voici la fenêtre de configuration pour un plugin PadsPcb :

100000000000021300000103755CDB21_png

La configuration demande :

  • Un titre pour l’onglet (comme le nom du format de Netliste).

  • La ligne de commande du plugin à lancer.

Quand la liste est créée :

  1. Eeschema crée un fichier temporaire intermédiaire .tmp, par exemple test.tmp.

  2. Eeschema lance le plugin, qui lit ce test.tmp et crée la netliste test.net.

9.5.2. Format de la ligne de commande

Voici un exemple de ligne de commande utilisant xsltproc.exe comme outil de conversion de fichiers .xsl et un fichier netlist_form_pads-pcb.xsl qui sert de feuille de style :

f:/kicad/bin/xsltproc.exe -o %O.net f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl %I

avec :

f:/kicad/bin/xsltproc.exe

Outil de lecture et de conversion de fichier .xsl

-o %O.net

Fichier de sortie, défini par : %O

f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl

Feuille de style .xsl à utiliser pour la conversion.

%I

%I sera remplacé par le fichier intermédiaire .tmp créé par Eeschema

Pour un schéma nommé test.sch, la ligne de commande réelle qui en résulterait :

f:/kicad/bin/xsltproc.exe -o test.net f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl test.tmp.

9.5.3. Convertisseur et feuille de style

C’est un logiciel très simple, parce que son rôle est seulement de convertir un fichier texte d’entrée (le fichier intermédiaire) en un autre fichier texte. À partir du fichier intermédiaire, vous pouvez, en outre, créer une liste des composants (BOM).

Lors de l’utilisation de xsltproc comme convertisseur, seul le contenu décrit dans la feuille de style sera généré.

9.5.4. Format du fichier intermédiaire de Netliste

Voir le chapitre 14 pour plus d’explications au sujet de xsltproc, du fichier intermédiaire, et des exemples de feuilles de style pour le convertisseur.

10. Tracer / Imprimer

10.1. Introduction

Les commandes Imprimer et Tracer sont accessibles par le menu Fichiers.

100000000000017E000001109CDAC612_png

Les formats de sortie peuvent être : Postscript, PDF, SVG, DXF ou HPGL. Vous pouvez aussi imprimer directement sur votre imprimante.

10.2. Commandes de tracé communes

Tracer Page Courante

génère un fichier pour la feuille courante seulement.

Tracer Toutes les Pages

vous permet de tracer toute la hiérarchie (un fichier est généré pour chaque feuille).

10.3. Tracer en Postscript

Cette commande vous permet de générer des fichiers au format PostScript.

100000000000017A000001555B390DD5_png

Le nom du fichier généré est le nom de la feuille avec l’extension .ps. Vous pouvez désactiver l’option "Tracer cartouche et encadrement". Ceci est utile quand vous voulez créer un fichier PostScript pour l’encapsulation (format .eps), utilisé pour insérer une figure dans un logiciel de traitement de texte. La fenêtre de message affiche le chemin et le nom des fichiers créés.

10.4. Tracer en PDF

eeschema_plot_pdf.png

Vous permet de générer un tracé au format PDF. Le nom du fichier généré est le nom de la feuille avec l’extension .pdf.

10.5. Tracer en SVG

10000000000001D8000001A61AC74D2A_png

Vous permet de générer un tracé au format vectoriel SVG. Le nom du fichier généré est le nom de la feuille avec l’extension .svg.

10.6. Tracer en DXF

10000000000000FB00000191F3D6461D_png

Vous permet de générer un tracé au format DXF. Le nom du fichier généré est le nom de la feuille avec l’extension .dxf.

10.7. Tracer en HPGL

Vous permet de générer un tracé au format HPGL. Pour ce format, vous pouvez définir :

  • La taille de page.

  • L’origine.

  • La taille du pinceau (en mm).

La fenêtre de configuration du tracé ressemble à ceci :

1000000000000196000001CC52FEA30B_png

Le nom du fichier généré sera le nom de la feuille avec l’extension .plt.

10.7.1. Sélection de la taille de la feuille schématique

La case Taille Shématique est normalement cochée. Dans ce cas, la taille de la feuille définie dans les options de la page sera utilisée, et l'échelle choisie sera de 1. Si une autre taille de feuille est sélectionnée (de A4 à A0, de A à E, etc..), l'échelle sera automatiquement ajustée pour remplir la page.

10.7.2. Ajustement des décalages

Pour toutes les dimensions standards, vous pouvez ajuster les décalages pour centrer le dessin aussi précisément que possible. Certains traceurs ayant un point d’origine au centre, et d’autres au coin inférieur droit, il est nécessaire de pouvoir introduire un décalage pour tracer correctement.

Généralement :

  • Pour des traceurs ayant leur point d’origine au centre de la feuille, le décalage doit être négatif et fixé à la moitié de la dimension de la feuille.

  • Pour des traceurs ayant leur point d’origine dans le coin inférieur gauche de la feuille, le décalage doit être réglé à 0.

Pour fixer un décalage :

  • Sélectionnez la taille de la feuille.

  • Fixez les décalages X et Y.

  • Cliquez sur accepter les décalages.

Cette commande, accessible par l’icône icons/print_button_png , vous permet de visualiser et de générer les fichiers pour une imprimante standard.

print_dialog_png

L’option "Imprimer cartouche" active ou désactive l’impression du cartouche.

L’option "Imprimer en noir et blanc seulement" force l’impression en monochrome. Cette option est généralement nécessaire si vous avez une imprimante laser noir et blanc, parce que les couleurs, imprimées en demi-tons, ne sont souvent pas très lisibles.

11. L'Éditeur de Composants

11.1. Informations générales à propos des librairies

Un symbole de composant est un élément qui contient une représentation graphique, des connexions électriques, et des champs définissant le composant lui-même. Les composants utilisés dans un schéma sont stockés dans des bibliothèques (ou librairies) de composants. Eeschema contient un éditeur qui vous permet de créer des librairies, d’ajouter, supprimer ou transférer des composants entre les librairies, d’exporter des composants vers des fichiers ou d’importer des composants depuis des fichiers. Bref, cet éditeur vous fournit un moyen simple de gérer vos fichiers de librairies de composants.

11.2. Vue d’ensemble des librairies de composants

Une librairie de composants contient un ou plusieurs composants. En général, les composants y sont regroupés par fonction, type, ou fabricant.

Un composant contient :

  • Des éléments graphiques (lignes, cercles, arcs, textes, etc…), qui fournissent la définition du symbole.

  • Des broches (pins), qui ont à la fois des propriétés graphiques (ligne, horloge, inversée, active à l'état bas, etc..), et des propriétés électriques (entrée, sortie, bidirectionnelle, etc..), qui sont utilisées par l’outil de vérification des règles électriques (ERC).

  • Des champs : référence, valeur, empreintes correspondantes pour le dessin du circuit imprimé, etc…

  • Des alias, utilisés pour associer un composant générique à ses variantes, comme 74LS00, 74HC00, 7437 pour le 7400. Ces alias partagent tous le même symbole en librairie.

Le dessin d’un composant nécessite :

  • De définir s’il est composé d’une ou de plusieurs unités.

  • De définir si le composant a une autre représentation graphique, aussi appelée représentation De Morgan.

  • De dessiner sa représentation symbolique, au moyen de lignes, rectangles, cercles, polygones, et de texte.

  • D’ajouter des pins, en définissant leurs éléments graphiques, leurs noms, leurs numéros et leurs propriétés électriques (entrées, sorties, trois-états, alimentations, etc..).

  • D’ajouter des alias, au cas où d’autres composants utiliseraient le même symbole, ou le même brochage. Ou d’en enlever, si le composant a été créé à partir d’un autre composant.

  • D’ajouter des champs supplémentaires, comme le nom de l’empreinte utilisée par le logiciel de dessin du circuit imprimé, et de définir leur visibilité.

  • De documenter le composant, en ajoutant une description, des liens éventuels vers des datasheets, etc…

  • De le sauvegarder dans la librairie désirée.

11.3. Interface de l'éditeur de librairies

Ci-dessous, la fenêtre principale de l'éditeur de composants. Elle comporte 3 barres d’outils, pour accéder aux fonctions principales, et la zone d’affichage et d'édition du composant. Les quelques commandes qui ne sont pas disponibles dans les barres d’outils sont accessibles par les menus.

libedit_main_window_png

11.3.1. Barre d’outils principale

Ci-dessous, la barre d’outils principale, située en haut de la fenêtre. Elle contient les outils de gestion des librairies, les boutons Défaire Refaire, les commandes de Zoom, et les outils d'édition des propriétés du composant.

images/toolbar_libedit.png

icons/save_library_png

Sauver la librairie courante sur disque. L’icône sera inactive (grisée) si aucune librairie n’a été sélectionnée, ou si aucune modification de la librairie courante n’a été effectuée.

icons/library_png

Sélection de la librairie de travail.

icons/delete_png

Supprimer un composant en librairie de travail, ou d’une des librairies définies dans le projet, si aucune librairie n’a été selectionnée.

icons/library_browse_png

Ouvre le Visualisateur de librairies et de composants, pour choisir le composant à éditer

icons/new_component_png

Créer un nouveau composant.

icons/import_cmp_from_lib_png

Charger un composant à éditer à partir de la librairie courante.

icons/copycomponent_png

Créer un nouveau composant à partir du composant courant.

icons/save_part_in_mem_png

Mettre à jour le composant en librairie de travail. Opération effectuée en mémoire, le fichier de librairie n’est pas modifié.

icons/import_png

Importer un composant, depuis un fichier.

icons/export_png

Exporter le composant courant vers un fichier.

icons/new_library_png

Sauver le composant courant dans une nouvelle librairie. Note : la nouvelle librairie n’est pas ajoutée automatiquement au projet.

icons/undo_png

Défaire, Annuler la dernière modification.

icons/redo_png

Refaire, Rétablir la dernière modification annulée.

icons/part_properties_png

Éditer les propriétés du composant.

icons/add_text_png

Ajouter, supprimer des champs et éditer leur propriétés.

icons/erc_png

Test pins oubliées et hors grille, vérification d’erreurs.

images/icons/zoom_in.png

Zoom avant.

images/icons/zoom_out.png

Zoom arrière.

images/icons/zoom_redraw.png

Rafraîchir l'écran, la vue du schéma.

images/icons/zoom_fit_in_page.png

Ajuster la feuille de schéma à l'écran. (Zoom automatique).

icons/morgan1_png

Afficher sous représentation normale. Le bouton sera désactivé si le composant courant n’a pas de représentation alternative.

icons/morgan2_png

Afficher la représentation De Morgan. Affiche la représentation alternative. Le bouton sera désactivé si le composant courant n’en a pas.

icons/datasheet_png

Afficher la documentation ou un document associé, datasheet ou autre. Le bouton sera désactivé si le composant courant n’en a pas.

images/toolbar_libedit_part.png

Selection de l’unité à afficher. Le menu déroulant sera désactivé si le composant n’est pas multi-unités.

images/toolbar_libedit_part.png

Sélection de l’alias. Le menu déroulant sera désactivé si le composant n’a pas d’alias.

icons/pin2pin_png

Éditer pins, unité par unité, ou forme par forme, pour les composants avec de multiple unités, ou des représentations alternatives.

icons/pin_table_png

Montrer la table des pins.

11.3.2. Barre d’outils des éléments

La barre d’outils verticale située à droite de la fenêtre vous permet d’ajouter les éléments nécessaires au dessin d’un composant. La table ci-dessous décrit les fonctions des différents boutons :

icons/cursor_png

Arrêter l’outil courant. Outil de sélection. Un click droit dans ce mode ouvre le menu contextuel de l'élément situé sous le curseur. Un simple click gauche affiche les attributs de l'élément dans le panneau de message situé au bas de la fenêtre. Un double-clic ouvre la boite de dialogue d'édition des propriétés de l'élément.

icons/pin_png

Ajouter des pins au composant. Un click gauche pour ajouter une nouvelle pin.

icons/add_text_png

Ajouter des textes graphiques au composant. Un click gauche pour ajouter un nouvel élément de texte graphique.

icons/add_rectangle_png

Ajouter des rectangles graphiques au dessin du composant. Un click gauche pour placer le premier coin du rectangle. Un deuxième click gauche pour placer le coin opposé du rectangle.

icons/add_circle_png

Ajouter des cercles au composant. Un click gauche pour placer le centre du cercle. Un deuxième click gauche pour définir le rayon.

icons/add_arc_png

Ajouter des arcs au composant. Un click gauche pour placer le centre de l’arc. Un deuxième click gauche pour définir le début de l’arc. Un troisième click gauche pour définir le deuxième point de l’arc.

icons/add_polygon_png

Addition de lignes ou polygones graphiques au composant. Un click gauche pour débuter le tracé d’un nouveau segment de polygone, d’autres clicks gauches pour ajouter des segments au polygone. Un double-click pour terminer le polygone.

icons/anchor_png

Positionner l’ancre du composant. Un click gauche pour définir la position du point d’ancrage du composant.

icons/import_png

Importer des dessins existants. Importer un composant depuis un fichier.

icons/export_png

Exporter le composant courant vers un fichier.

icons/delete_png

Suppression d'éléments. Un click gauche sur un élément pour le supprimer du composant courant.

11.3.3. Barre d’outils des options

La barre d’outil verticale située à gauche de la fenêtre vous permet de régler quelques options de dessin. La table ci-dessous décrit les fonctions des différents boutons :

icons/grid_png

Afficher ou ne pas afficher la grille.

icons/unit_inch_png

Unités en inches.

icons/unit_mm_png

Unités en millimètres.

icons/cursor_shape_png

Change la forme du curseur. Change le curseur, soit court, soit s'étendant sur toute la zone de dessin.

11.4. Sélection et gestion des librairies

On accède à la boite de dialogue de sélection de la librairie courante au moyen du bouton icons/library_png qui montre les librairies disponibles et permet leur sélection. Une fois sélectionnée, le nom de la librairie courante s’affiche dans la barre de titre de la fenêtre de l'éditeur. Quand un composant sera chargé ou enregistré, il le sera depuis ou vers cette librairie. Le nom du composant en librairie est le contenu de son champ valeur.

Note
  • Vous devez charger une librairie dans Eeshema pour accéder à son contenu.

  • Le contenu de la librairie courante peut être sauvegardé après modification en cliquant sur le bouton icons/save_library_png de la barre d’outils principale.

  • Un composant peut être enlevé de n’importe quelle librairie en cliquant sur le bouton icons/delete_png .

11.4.1. Sélectionner et Sauvegarder un Composant

Quand vous éditez un composant, vous ne le modifiez pas directement en librairie, mais dans une copie dans la mémoire de l’ordinateur. Chaque modification peut être annulée facilement. Un composant peut être chargé d’une librairie locale ou depuis un composant existant.

Sélectionner un composant

En cliquant sur l’icône icons/import_cmp_from_lib_png de la barre principale, vous faites apparaître la liste des composants disponibles de la librairie courante sélectionnée que vous pouvez choisir de charger dans l'éditeur.

Note
Si un composant est sélectionné par un de ses alias, ce sera le nom du composant d’origine(ou nom racine) qui sera affiché dans la fenêtre et non celui de l’alias. La liste des alias est toujours chargée en même temps que le composant et peut être modifiée. Vous pouvez créer un nouveau composant en sélectionnant un alias dans le nenu déroulant images/toolbar_libedit_alias.png . Le premier élément de la liste est le nom racine du composant.
Note
Par ailleurs, un clic sur le bouton icons/import_png vous permet de charger un composant précédemment sauvegardé au moyen de l’icône icons/export_png .
Sauvegarder un composant

Après modification, un composant peut être sauvegardé en librairie courante, dans une nouvelle librairie, ou encore exporté vers un fichier de sauvegarde.

Pour enregistrer le composant modifié dans la librairie courante, cliquez sur le bouton icons/save_part_in_mem_png . Notez toutefois que cette mise à jour ne s’effectue que dans la mémoire de l’ordinateur. Vous pouvez ainsi prendre le temps de réfléchir avant de sauvegarder vraiment la librairie.

Pour sauvegarder les modifications du composant de façon permanente dans la librairie, cliquez icons/save_library_png .

Si vous voulez créer une nouvelle librairie contenant le composant courant, cliquez sur icons/new_library_png , et saisissez un nom pour la nouvelle librairie.

Note

Les nouvelles librairies ne sont pas automatiquement ajoutées au projet en cours.

Vous devez ajouter les nouvelles librairies à utiliser dans votre schéma à la liste des librairies du projet, par le menu Librairies de Composants dans Préférences.

Fichiers Librairies de Composants

Cliquez sur le bouton icons/export_png pour créer un fichier contenant seulement le composant courant. Ce fichier est un fichier de librairie standard, mais ne contenant qu’un seul composant. Ce fichier peut être ensuite utilisé pour importer le composant dans une nouvelle librairie. En fait, la commande créer une nouvelle librairie et la commande exporter sont identiques.

Transférer un composant vers une autre librairie

Il est très facile de copier un composant d’une librairie vers une autre en utilisant la méthode suivante :

  • Choisissez la librairie d’origine par le bouton icons/library_png .

  • Chargez le composant à transférer en cliquant sur icons/import_cmp_from_lib_png . Le composant sera affiché dans la zone d'édition.

  • Choisissez la librairie de destination en cliquant à nouveau sur icons/library_png .

  • Enregistrez le composant courant en mémoire en cliquant sur icons/save_part_in_mem_png .

  • Enfin, sauvegardez la librairie courante en cliquant sur icons/save_library_png .

Annuler les modifications d’un composant

Quand vous travaillez sur un composant, le composant en cours d'édition est seulement une copie de travail du composant présent en librairie. Du coup, tant que vous ne l’aurez pas sauvegardé, vous n’avez qu'à recharger ce composant pour annuler les changements. Si vous avez mis à jour ce composant en mémoire et que vous ne l’avez pas sauvegardé dans le fichier de librairie, vous n’avez qu'à quitter l'éditeur et le relancer. Eeshema aura annulé les modifications.

11.5. Création de Composants

11.5.1. Créer un nouveau composant

Un nouveau composant peut être créé en cliquant sur icons/new_component_png . Vous serez invité à donner un nom de composant (ce nom sera utilisé comme valeur par défaut pour le champ valeur dans l'éditeur schématique), un préfixe de référence (U, IC, R …), le nombre d’unités par boitier (par exemple pour un 7400, composé de 4 unités par boitier), et si une représentation alternative (parfois dénommée De Morgan) est souhaitée. Si le champ référence est laissé vide, il sera fixé par défaut à «U». Ces propriétés peuvent être modifiées ultérieurement, mais il est préférable de les définir correctement dès la création du composant.

1000000000000153000001795877268E_png

Un nouveau composant sera créé avec les propriétés ci-dessus et apparaîtra dans l'éditeur comme ceci :

100000000000030A00000205F0A88B4F_png

11.5.2. Créer un composant depuis un autre composant

Souvent, le composant que vous voulez créer est très proche d’un composant existant. Dans ce cas, il est facile de charger et de modifier un composant existant.

  • Chargez le composant qui vous servira de modèle.

  • Cliquez sur icons/copycomponent_png , ou modifiez son nom par clic-droit sur le champ valeur et éditez le texte. Si vous avez choisi de dupliquer le composant courant, vous serez invité à donner un nouveau nom à ce composant.

  • Si le composant modèle a des alias, vous serez invité à supprimer les alias du nouveau composant qui sont en conflit avec la librairie actuelle. Si la réponse est non, la création du nouveau composant sera annulée. Les librairies de composants ne peuvent avoir des noms ou des alias en double.

  • Modifiez le nouveau composant comme vous le souhaitez.

  • Mettez à jour le nouveau composant dans la librairie courante en cliquant sur icons/save_part_in_mem_png , ou enregistrez le dans une nouvelle librairie en cliquant sur icons/new_library_png , ou encore, si vous voulez enregistrer ce nouveau composant dans un autre librairie existante, sélectionnez l’autre librairie en cliquant sur icons/library_png et enregistrez-y le nouveau composant.

  • Sauvez la librairie courante sur le disque en cliquant sur icons/save_library_png .

11.5.3. Propriétés du composant

Component properties should be carefully set during the component creation or alternatively they are inherited from the copied component. To change the component properties, click on the icons/part_properties_png to show the dialog below.

10000000000001B2000001509F311F99_png

It is very important to correctly set the number of units per package and if the component has an alternate symbolic representation parameters correctly because when pins are edited or created the corresponding pins for each unit will created. If you change the number of units per package after pin creation and editing, there will be additional work introduced to add the new unit pins and symbols. Nevertheless, it is possible to modify these properies at any time.

The graphic options "Show pin number" and "Show pin name" define the visibility of the pin number and pin name text. This text will be visible if the corresponding options are checked. The option "Place pin names inside" defines the pin name position relative to the pin body. This text will be displayed inside the component outline if the option is checked. In this case the "Pin Name Position Offset" property defines the shift of the text away from the body end of the pin. A value from 30 to 40 (in 1/1000 inch) is reasonable.

The example below shows a component with the "Place pin name inside" option unchecked. Notice the position of the names and pin numbers.

2000000800003D8000002550D6E11DAF_png

11.5.4. Composants avec des représentations alternatives

If the component has more than one symbolic repersentation, you will have to select the different symbols of the component in order to edit them. To edit the normal symbol, click the icons/morgan1_png .

To edit the alternate symbol click on the icons/morgan2_png . Use the images/toolbar_libedit_part.png shown below to select the unit you wish to edit.

1000000000000456000002680D968591_png

11.6. Éléments graphiques

Graphical elements create the symbolic representation of a component and contain no electrical connection information. Their design is possible using the following tools:

  • Lines and polygons defined by start and end points.

  • Rectangles defined by two diagonal corners.

  • Circles defined by the center and radius.

  • Arcs defined by the starting and ending point of the arc and its center. An arc goes from 0° to 180°.

The vertical toolbar on the right hand side of the main window allows you to place all of the graphical elements required to design a component’s symbolic representation.

11.6.1. Appartenance des éléments graphiques

Each graphic element (line, arc, circle, etc.) can be defined as common to all units and/or body styles or specific to a given unit and/or body style. Element options can be quickly accessed by right-clicking on the element to display the context menu for the selected element. Below is the context menu for a line element.

20000009000056D200003432E4789F12_png

You can also double-left-click on an element to modify its properties. Below is the properties dialog for a polygon element.

100000000000012100000146E8D1DDCE_png

The properties of a graphic element are:

  • Line width which defines the width of the element’s line in the current drawing units.

  • The "Common to all units in component" setting defines if the graphical element is drawn for each unit in component with more than one unit per package or if the graphical element is only drawn for the current unit.

  • The "Common by all body styles (DeMorgan)" setting defines if the graphical element is drawn for each symbolic representation in components with an alternate body style or if the graphical element is only drawn for the current body style.

  • The fill style setting determines if the symbol defined by the graphical element is to be drawn unfilled, background filled, or foreground filled.

11.6.2. Éléments graphiques textes

The icons/add_text_png allows for the creation of graphical text. Graphical text is always readable, even when the component is mirrored. Please note that graphical text items are not fields.

11.7. Composants multi-unités et représentations alternatives

Components can have two symbolic representations (a standard symbol and an alternate symbol often referred to as "DeMorgan") and/or have more than one unit per package (logic gates for example). Some components can have more than one unit per package each with different symbols and pin configurations.

Consider for instance a relay with two switches which can be designed as a component with three different units: a coil, switch 1, and switch 2. Designing a component with multiple units per package and/or alternate body styles is very flexible. A pin or a body symbol item can be common to all units or specific to a given unit or they can be common to both symbolic representation so are specific to a given symbol representation.

By default, pins are specific to each symbolic representation of each unit, because the pin number is specific to a unit, and the shape depends on the symbolic representation. When a pin is common to each unit or each symbolic representation, you need to create it only once for all units and all symbolic representations (this is usually the case for power pins). This is also the case for the body style graphic shapes and text, which may be common to each unit (but typically are specific to each symbolic representation).

11.7.1. Exemple de composant ayant multi-unités avec différentes représentations symboliques :

This is an example of a relay defined with three units per package, switch 1, switch 2, and the coil:

Option: pins are not linked. One can add or edit pins for each unit without any coupling with pins of other units.

2000000900003094000008CA41334F3B_png

All units are not interchangeable must be selected.

10000000000001B20000014F8449F983_png

Unit 1

10000000000000FF000000A989993852_png

Unit 2

1000000000000114000000B804ED21E4_png

Unit 3

100000000000010C000000B26BA7AD80_png

It does not have the same symbol and pin layout and therefore is not interchangeable with units 1 and 2.

Éléments graphiques symboliques

Shown below are properties for a graphic body element. From the relay example above, the three units have different symbolic representations. Therefore, each unit was created separately and the graphical body elements must have the "Common to all units in component" disabled.

2000000900003855000027B1F162801F_png

11.8. Création et édition de pins

You can click on the icons/pin_png to create and insert a pin. The editing of all pin properties is done by double-clicking on the pin or right-clicking on the pin to open the pin context menu. Pins must be created carefully, because any error will have consequences on the PCB design. Any pin already placed can be edited, deleted, and/or moved.

11.8.1. Généralités sur les pins

A pin is defined by its graphical representation, its name and its "number". The pin’s "number" is defined by a set of 4 letters and / or numbers. For the Electrical Rules Check (ERC) tool to be useful, the pin’s "electrical" type (input, output, tri-state…) must also be defined correctly. If this type is not defined properly, the schematic ERC check results may be invalid.

Important notes:

  • Do not use spaces in pin names and numbers.

  • To define a pin name with an inverted signal (overline) use the ~ (tilde) character. The next ~ character will turn off the overline. For example \~FO~O would display FO O.

  • If the pin name is reduced to a single symbol, the pin is regarded as unnamed.

  • Pin names starting with #, are reserved for power port symbols.

  • A pin "number" consists of 1 to 4 letters and/ or numbers. 1,2,..9999 are valid numbers. A1, B3, Anod, Gnd, Wire, etc. are also valid.

  • Duplicate pin "numbers" cannot exist in a component.

11.8.2. Propriétés des pins

100000000000031000000198EA7FCC88_png

The pin properties dialog allows you to edit all of the characteristics of a pin. This dialog pops up automatically when you create a pin or when double-clicking on an existing pin. This dialog allows you modify:

  • Name and name’s text size.

  • Number and number’s text size.

  • Length.

  • Electrical and graphical types.

  • Unit and alternate representation membership.

  • Visibility.

11.8.3. Styles graphiques des pins

Shown in the figure below are the different pin graphical styles. The choice of graphic styles does not have any influence on the pin’s electrical type.

10000000000003100000019800B8A351_png

11.8.4. Types électriques des pins

Choosing the correct electrical type is important for the schematic ERC tool. The electrical types defined are:

  • Bidirectional which indicates bidirectional pins commutable between input and output (microprocessor data bus for example).

  • Tri-state is the usual 3 states output.

  • Passive is used for passive component pins, resistors, connectors, etc.

  • Unspecified can be used when the ERC check doesn’t matter.

  • Power input is used for the component’s power pins. Power pins are automatically connected to the other power input pins with the same name.

  • Power output is used for regulator outputs.

  • Open emitter and open collector types can be used for logic outputs defined as such.

  • Not connected is used when a component has a pin that has no internal connection.

11.8.5. Propriétés globales des pins

You can modify the length or text size of the name and/or number of all the pins using the Global command entry of the pin context menu. Click on the parameter you want to modify and type the new value which will then be applied to all of the current component’s pins.

100000000000018D000001023AE0F5CF_png

11.8.6. Définitions de pins pour unités multiples et représentations alternatives

Components with multiple units and/or graphical representations are particularly problematic when creating and editing pins. The majority of pins are specific to each unit (because their pin number is specific to each unit) and to each symbolic representation (because their form and position is specific to each symbolic representation). The creation and the editing of pins can be problematic for components with multiple units per package and alternate symbolic representations. The component library editor allows the simultaneous creation of pins. By default, changes made to a pin are made for all units of a multiple unit component and both representations for components with an alternate representation.

The only exception to this is the pin’s graphical type and name. This dependency was established to allow for easier pin creation and editing in most of the cases. This dependency can be disabled by toggling the icons/pin2pin_png on the main tool bar. This will allow you to create pins for each unit and representation completely independently.

A component can have two symbolic representations (representation known as "DeMorgan") and can be made up of more than one unit as in the case of components with logic gates. For certain components, you may want several different graphic elements and pins. Like the relay sample shown in section 11.7.1, a relay can be represented by three distinct units: a coil, switch contact 1, and switch contact 2.

The management of the components with multiple units and components with alternate symbolic representations is flexible. A pin can be common or specific to different units. A pin can also be common to both symbolic representations or specific to each symbolic representation.

By default, pins are specific to each representation of each unit, because their number differs for each unit, and their design is different for each symbolic representation. When a pin is common to all units, it only has to drawn once such as in the case of power pins.

An example is the output pin 7400 quad dual input NAND gate. Since there are four units and two symbolic representations, there are eight separate output pins defined in the component definition. When creating a new 7400 component, unit A of the normal symbolic representation will be shown in the library editor. To edit the pin style in alternate symbolic representation, it must first be enabled by clicking the icons/morgan2_png button on the tool bar. To edit the pin number for each unit, select the appropriate unit using the images/toolbar_libedit_alias.png drop down control.

11.9. Champs du composant

All library components are defined with four default fields. The reference designator, value, footprint assignment, and documentation file link fields are created whenever a component is created or copied. Only the reference designator and value fields are required. For existing fields, you can use the context menu commands by right-clicking on the pin. Components defined in libraries are typically defined with these four default fields. Additional fields such as vendor, part number, unit cost, etc. can be added to library components but generally this is done in the schematic editor so the additional fields can be applied to all of the components in the schematic.

11.9.1. Édition des champs du composant

To edit an existing component field, right-click on the field text to show the field context menu shown below.

200000090000154B000027E6496104E3_png

To edit undefined fields, add new fields, or delete optional fields icons/add_text_png on the main tool bar to open the field properties dialog shown below.

1000000000000208000002211F585317_png

Fields are text sections associated with the component. Do not confuse them with the text belonging to the graphic representation of this component.

Important notes:

  • Modifying value fields effectively creates a new component using the current component as the starting point for the new component. This new component has the name contained in the value field when you save it to the currently selected library.

  • The field edit dialog above must be used to edit a field that is empty or has the invisible attribute enable.

  • The footprint is defined as an absolute footprint using the LIBNAME:FPNAME format where LIBNAME is the name of the footprint library defined in the footprint library table (see the "Footprint Library Table" section in the Pcbnew "Reference Manual") and FPNAME is the name of the footprint in the library LIBNAME.

11.10. Symboles d’alimentation

Power symbols are created the same way as normal components. It may be useful to place them in a dedicated library such as power.lib. Power symbols consist of a graphical symbol and a pin of the type "Power Invisible". Power port symbols are handled like any other component by the schematic capture software. Some precautions are essential. Below is an example of a power +5V symbol.

1000000000000438000002C20F7CD114_png

To create a power symbol, use the following steps:

  • Add a pin of type "Power input" named +5V (important because this name will establish connection to the net +5V), with a pin number of 1 (number of no importance), a length of 0, and a "Line" "Graphic Style".

  • Place a small circle and a segment from the pin to the circle as shown.

  • The anchor of the symbol is on the pin.

  • The component value is +5V.

  • The component reference is \#+5V. The reference text is not important except the first character which must be # to indicate that the component is a power symbol. By convention, every component in which the reference field starts with a # will not appear in the component list or in the netlist and the reference is declared as invisible.

An easier method to create a new power port symbol is to use another symbol as a model:

  • Load an existing power symbol.

  • Edit the pin name with name of the new power symbol.

  • Edit the value field to the same name as the pin, if you want to display the power port value.

  • Save the new component.

12. LibEdit - Compléments

12.1. Généralités

A component consist of the following elements

  • A graphical representation (geometrical shapes, texts).

  • Pins.

  • Fields or associated text used by the post processors: netlist, components list.

Two fields are to be initialized: reference and value. The name of the design associated with the component, and the name of the associated footprint, the other fields are the free fields, they can generally remain empty, and could be filled during schematic capture.

However, managing the documentation associated with any component facilitates the research, use and maintenance of libraries. The associated documentation consists of

  • A line of comment.

  • A line of key words such as TTL CMOS NAND2, separated by spaces.

  • An attached file name (for example an application note or a pdf file).

    The default directory for attached files:

    kicad/share/library/doc

    If not found:

    kicad/library/doc

    Under linux:

    /usr/local/kicad/share/library/doc

    /usr/share/kicad/library/doc

    /usr/local/share/kicad/library/doc

Key words allow you to selectively search for a component according to various selection criteria. Comments and key words are displayed in various menus, and particularly when you select a component from the library.

The component also has an anchoring point. A rotation or a mirror is made relatively to this anchor point and during a placement this point is used as a reference position. It is thus useful to position this anchor accurately.

A component can have aliases, i.e. equivalent names. This allows you to considerably reduce the number of components that need to be created (for example, a 74LS00 can have aliases such as 74000, 74HC00, 74HCT00…).

Finally, the components are distributed in libraries (classified by topics, or manufacturer) in order to facilitate their management.

12.2. Position a component anchor

The anchor is at the coordinates (0,0) and it is shown by the blue axes displayed on your screen.

10000000000003830000027F3B1EDABD_png

The anchor can be repositioned by selecting the icon icons/anchor_png and clicking on the new desired anchor position. The drawing will be automatically re-centered on the new anchor point.

12.3. Component aliases

An alias is another name corresponding to the same component in the library. Components with similar pin-out and representation can then be represented by only one component, having several aliases (e.g. 7400 with alias 74LS00, 74HC00, 74LS37 ).

The use of aliases allows you to build complete libraries quickly. In addition these libraries, being much more compact, are easily loaded by KiCad.

To modify the list of aliases, you have to select the main editing window via the icon icons/part_properties_png and select the alias folder.

10000000000001B50000013E8AB145A7_png

You can thus add or remove the desired alias. The current alias cannot obviously be removed since it is edited.

To remove all aliases, you have firstly to select the root component. The first component in the alias list in the window of selection of the main toolbar.

12.4. Component fields

The field editor is called via the icon icons/add_text_png .

There are four special fields (texts attached to the component), and configurable user fields

10000000000002870000021DEC5337FC_png

Special fields

  • Reference.

  • Value. It is the component name in the library and the default value field in schematic.

  • Footprint. It is the footprint name used for the board. Not very useful when using CvPcb to setup the footprint list, but mandatory if CvPcb is not used.

  • Sheet. It is a reserved field, not used at the time of writing.

12.5. Component documentation

To edit documentation information, it is necessary to call the main editing window of the component via the icon icons/part_properties_png and to select the document folder.

10000000000001B70000014140B7CFE4_png

Be sure to select the right alias, or the root component, because this documentation is the only characteristic which differs between aliases. The "Copy Doc" button allows you to copy the documentation information from the root component towards the currently edited alias.

12.5.1. Component keywords

Keywords allow you to search in a selective way for a component according to specific selection criteria (function, technological family, etc.)

The Eeschema research tool is not case sensitive. The most current key words used in the libraries are

  • CMOS TTL for the logic families

  • AND2 NOR3 XOR2 INV… for the gates (AND2 = 2 inputs AND gate, NOR3 = 3 inputs NOR gate).

  • JKFF DFF… for JK or D flip-flop.

  • ADC, DAC, MUX…

  • OpenCol for the gates with open collector output. Thus if in the schematic capture software, you search the component: by keys words NAND2 OpenCol Eeschema will display the list of components having these 2 key words.

12.5.2. Component documentation (Doc)

The line of comment (and keywords) is displayed in various menus, particularly when you select a component in the displayed components list of a library and in the ViewLib menu.

If this Doc. file exists, it is also accessible in the schematic capture software, in the pop-up menu displayed by right-clicking on the component.

12.5.3. Associated documentation file (DocFileName)

Indicates an attached file (documentation, application schematic) available ( pdf file, schematic diagram, etc.).

12.5.4. Footprint filtering for CvPcb

You can enter a list of allowed footprints for the component. This list acts as a filter used by CvPcb to display only the allowed footprints. A void list does not filter anything.

10000000000001B8000001406BAFF1AF_png

Wild-card characters are allowed.

S014* allows CvPcb to show all the footprints with a name starting by SO14.

For a resistor, R? shows all the footprints with a 2 letters name starting by R.

Here are samples: with and without filtering

With filtering

1000000000000205000001F7190A1FAC_png

Without filtering

1000000000000202000001F61A671096_png

12.6. Symbol library

You can easily compile a graphic symbols library file containing frequently used symbols .This can be used for the creation of components (triangles, the shape of AND, OR, Exclusive OR gates, etc.) for saving and subsequent re-use.

These files are stored by default in the library directory and have a .sym extension. The symbols are not gathered in libraries like the components because they are generally not so many.

12.6.1. Export or create a symbol

A component can be exported as a symbol with the button icons/import_png . You can generally create only one graphic, also it will be a good idea to delete all pins, if they exist.

12.6.2. Import a symbol

Importing allows you to add graphics to a component you are editing. A symbol is imported with the button Import graphic icon . Imported graphics are added as they were created in existing graphics.

13. Viewlib

13.1. Introduction

Viewlib allows you to quickly examine the content of libraries. Viewlib is called by the tool icons/library_browse_png or by the "place component" tool available from the right-hand side toolbar.

100000000000016D000000E7007BA5B8_png

13.2. Viewlib - main screen

100000000000028A000001DC54042D35_png

To examine the library content you need to select the wanted library from the list on the left-hand side. Available components will then appear in the second list which allow you to select a component.

100000000000028B000001DD9FC13E33_png

13.3. Viewlib top toolbar

The top tool bar in Viewlib is shown below.

images/toolbar_viewlib.png

The available commands are.

icons/library_png

Selection of the desired library which can be also selected in the displayed list.

icons/add_component_png

Selection of the component which can be also selected in the displayed list.

icons/lib_previous_png

Display previous component.

icons/lib_next_png

Display next component.

images/icons/zoom_in.png images/icons/zoom_out.png images/icons/zoom_redraw.png images/icons/zoom_fit_in_page.png

Zoom tools.

images/icons/morgan1.png images/icons/morgan2.png

Selection of the representation (normal or converted) if exist.

images/toolbar_viewlib_part.png

Selection of the part, only for multi-part components.

icons/datasheet_png

If it exist, display the associated documents. Exists only when called by the place component dialog frame from Eeschema.

icons/export_png

Close Viewlib and place the selected component in Eeschema. This icon is only displayed when Viewlib has been called from Eeschema (click on a symbol in the component chooser).

14. Creating Customized Netlists and BOM Files

14.1. Intermediate Netlist File

BOM files and netlist files can be converted from an Intermediate netlist file created by Eeschema.

This file uses XML syntax and is called the intermediate netlist. The intermediate netlist includes a large amount of data about your board and because of this, it can be used with post-processing to create a BOM or other reports.

Depending on the output (BOM or netlist), different subsets of the complete Intermediate Netlist file will be used in the post-processing.

14.1.1. Schematic sample

Schematic sample

14.1.2. The Intermediate Netlist file sample

The corresponding intermediate netlist (using XML syntax) of the circuit above is shown below.

<?xml version="1.0" encoding="utf-8"?>
<export version="D">
  <design>
    <source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
    <date>29/08/2010 20:35:21</date>
    <tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
  </design>
  <components>
    <comp ref="P1">
      <value>CONN_4</value>
      <libsource lib="conn" part="CONN_4"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2141</tstamp>
    </comp>
    <comp ref="U2">
      <value>74LS74</value>
      <libsource lib="74xx" part="74LS74"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20BA</tstamp>
    </comp>
    <comp ref="U1">
      <value>74LS04</value>
      <libsource lib="74xx" part="74LS04"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20A6</tstamp>
    </comp>
    <comp ref="C1">
      <value>CP</value>
      <libsource lib="device" part="CP"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2094</tstamp>
    </comp>
    <comp ref="R1">
      <value>R</value>
      <libsource lib="device" part="R"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E208A</tstamp>
    </comp>
  </components>
  <libparts>
    <libpart lib="device" part="C">
      <description>Condensateur non polarise</description>
      <footprints>
        <fp>SM*</fp>
        <fp>C?</fp>
        <fp>C1-1</fp>
      </footprints>
      <fields>
        <field name="Reference">C</field>
        <field name="Value">C</field>
      </fields>
      <pins>
        <pin num="1" name="~" type="passive"/>
        <pin num="2" name="~" type="passive"/>
      </pins>
    </libpart>
    <libpart lib="device" part="R">
      <description>Resistance</description>
      <footprints>
        <fp>R?</fp>
        <fp>SM0603</fp>
        <fp>SM0805</fp>
        <fp>R?-*</fp>
        <fp>SM1206</fp>
      </footprints>
      <fields>
        <field name="Reference">R</field>
        <field name="Value">R</field>
      </fields>
      <pins>
        <pin num="1" name="~" type="passive"/>
        <pin num="2" name="~" type="passive"/>
      </pins>
    </libpart>
    <libpart lib="conn" part="CONN_4">
      <description>Symbole general de connecteur</description>
      <fields>
        <field name="Reference">P</field>
        <field name="Value">CONN_4</field>
      </fields>
      <pins>
        <pin num="1" name="P1" type="passive"/>
        <pin num="2" name="P2" type="passive"/>
        <pin num="3" name="P3" type="passive"/>
        <pin num="4" name="P4" type="passive"/>
      </pins>
    </libpart>
    <libpart lib="74xx" part="74LS04">
      <description>Hex Inverseur</description>
      <fields>
        <field name="Reference">U</field>
        <field name="Value">74LS04</field>
      </fields>
      <pins>
        <pin num="1" name="~" type="input"/>
        <pin num="2" name="~" type="output"/>
        <pin num="3" name="~" type="input"/>
        <pin num="4" name="~" type="output"/>
        <pin num="5" name="~" type="input"/>
        <pin num="6" name="~" type="output"/>
        <pin num="7" name="GND" type="power_in"/>
        <pin num="8" name="~" type="output"/>
        <pin num="9" name="~" type="input"/>
        <pin num="10" name="~" type="output"/>
        <pin num="11" name="~" type="input"/>
        <pin num="12" name="~" type="output"/>
        <pin num="13" name="~" type="input"/>
        <pin num="14" name="VCC" type="power_in"/>
      </pins>
    </libpart>
    <libpart lib="74xx" part="74LS74">
      <description>Dual D FlipFlop, Set &amp; Reset</description>
      <docs>74xx/74hc_hct74.pdf</docs>
      <fields>
        <field name="Reference">U</field>
        <field name="Value">74LS74</field>
      </fields>
      <pins>
        <pin num="1" name="Cd" type="input"/>
        <pin num="2" name="D" type="input"/>
        <pin num="3" name="Cp" type="input"/>
        <pin num="4" name="Sd" type="input"/>
        <pin num="5" name="Q" type="output"/>
        <pin num="6" name="~Q" type="output"/>
        <pin num="7" name="GND" type="power_in"/>
        <pin num="8" name="~Q" type="output"/>
        <pin num="9" name="Q" type="output"/>
        <pin num="10" name="Sd" type="input"/>
        <pin num="11" name="Cp" type="input"/>
        <pin num="12" name="D" type="input"/>
        <pin num="13" name="Cd" type="input"/>
        <pin num="14" name="VCC" type="power_in"/>
      </pins>
    </libpart>
  </libparts>
  <libraries>
    <library logical="device">
      <uri>F:\kicad\share\library\device.lib</uri>
    </library>
    <library logical="conn">
      <uri>F:\kicad\share\library\conn.lib</uri>
    </library>
    <library logical="74xx">
      <uri>F:\kicad\share\library\74xx.lib</uri>
    </library>
  </libraries>
  <nets>
    <net code="1" name="GND">
      <node ref="U1" pin="7"/>
      <node ref="C1" pin="2"/>
      <node ref="U2" pin="7"/>
      <node ref="P1" pin="4"/>
    </net>
    <net code="2" name="VCC">
      <node ref="R1" pin="1"/>
      <node ref="U1" pin="14"/>
      <node ref="U2" pin="4"/>
      <node ref="U2" pin="1"/>
      <node ref="U2" pin="14"/>
      <node ref="P1" pin="1"/>
    </net>
    <net code="3" name="">
      <node ref="U2" pin="6"/>
    </net>
    <net code="4" name="">
      <node ref="U1" pin="2"/>
      <node ref="U2" pin="3"/>
    </net>
    <net code="5" name="/SIG_OUT">
      <node ref="P1" pin="2"/>
      <node ref="U2" pin="5"/>
      <node ref="U2" pin="2"/>
    </net>
    <net code="6" name="/CLOCK_IN">
      <node ref="R1" pin="2"/>
      <node ref="C1" pin="1"/>
      <node ref="U1" pin="1"/>
      <node ref="P1" pin="3"/>
    </net>
  </nets>
</export>

14.2. Conversion to a new netlist format

By applying a post-processing filter to the Intermediate netlist file you can generate foreign netlist files as well as BOM files. Because this conversion is a text to text transformation, this post-processing filter can be written using Python, XSLT, or any other tool capable of taking XML as input.

XSLT itself is a an XML language very suitable for XML transformations. There is a free program called xsltproc that you can download and install. The xsltproc program can be used to read the Intermediate XML netlist input file, apply a style-sheet to transform the input, and save the results in an output file. Use of xsltproc requires a style-sheet file using XSLT conventions. The full conversion process is handled by Eeschema, after it is configured once to run xsltproc in a specific way.

14.3. XSLT approach

The document that describes XSL Transformations (XSLT) is available here:

http://www.w3.org/TR/xslt

14.3.1. Create a Pads-Pcb netlist file

The pads-pcb format is comprised of two sections.

  • The footprint list.

  • The Nets list: grouping pads references by nets.

Immediately below is a style-sheet which converts the Intermediate Netlist file to a pads-pcb netlist format:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to PADS netlist format
    Copyright (C) 2010, SoftPLC Corporation.
    GPL v2.

    How to use:
        https://lists.launchpad.net/kicad-developers/msg05157.html
-->

<!DOCTYPE xsl:stylesheet [
  <!ENTITY nl  "&#xd;&#xa;"> <!--new line CR, LF -->
]>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

<xsl:template match="/export">
    <xsl:text>*PADS-PCB*&nl;*PART*&nl;</xsl:text>
    <xsl:apply-templates select="components/comp"/>
    <xsl:text>&nl;*NET*&nl;</xsl:text>
    <xsl:apply-templates select="nets/net"/>
    <xsl:text>*END*&nl;</xsl:text>
</xsl:template>

<!-- for each component -->
<xsl:template match="comp">
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "footprint != '' ">
            <xsl:apply-templates select="footprint"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>unknown</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!-- for each net -->
<xsl:template match="net">
    <!-- nets are output only if there is more than one pin in net -->
    <xsl:if test="count(node)>1">
        <xsl:text>*SIGNAL* </xsl:text>
        <xsl:choose>
            <xsl:when test = "@name != '' ">
                <xsl:value-of select="@name"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:text>N-</xsl:text>
                <xsl:value-of select="@code"/>
            </xsl:otherwise>
        </xsl:choose>
        <xsl:text>&nl;</xsl:text>
        <xsl:apply-templates select="node"/>
    </xsl:if>
</xsl:template>

<!-- for each node -->
<xsl:template match="node">
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text>.</xsl:text>
    <xsl:value-of select="@pin"/>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

</xsl:stylesheet>

And here is the pads-pcb output file after running xsltproc:

*PADS-PCB*
*PART*
P1 unknown
U2 unknown
U1 unknown
C1 unknown
R1 unknown
*NET*
*SIGNAL* GND
U1.7
C1.2
U2.7
P1.4
*SIGNAL* VCC
R1.1
U1.14
U2.4
U2.1
U2.14
P1.1
*SIGNAL* N-4
U1.2
U2.3
*SIGNAL* /SIG_OUT
P1.2
U2.5
U2.2
*SIGNAL* /CLOCK_IN
R1.2
C1.1
U1.1
P1.3

*END*

The command line to make this conversion is:

kicad\\bin\\xsltproc.exe -o test.net kicad\\bin\\plugins\\netlist_form_pads-pcb.xsl test.tmp

14.3.2. Create a Cadstar netlist file

The Cadstar format is comprised of two sections.

  • The footprint list.

  • The Nets list: grouping pads references by nets.

Here is the style-sheet file to make this specific conversion:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format
    Copyright (C) 2010, Jean-Pierre Charras.
    Copyright (C) 2010, SoftPLC Corporation.
    GPL v2.

<!DOCTYPE xsl:stylesheet [
  <!ENTITY nl  "&#xd;&#xa;"> <!--new line CR, LF -->
]>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

<!-- Netlist header -->
<xsl:template match="/export">
    <xsl:text>.HEA&nl;</xsl:text>
    <xsl:apply-templates select="design/date"/>  <!-- Generate line .TIM <time> -->
    <xsl:apply-templates select="design/tool"/>  <!-- Generate line .APP <eeschema version> -->
    <xsl:apply-templates select="components/comp"/>  <!-- Generate list of components -->
    <xsl:text>&nl;&nl;</xsl:text>
    <xsl:apply-templates select="nets/net"/>          <!-- Generate list of nets and connections -->
    <xsl:text>&nl;.END&nl;</xsl:text>
</xsl:template>

 <!-- Generate line .TIM 20/08/2010 10:45:33 -->
<xsl:template match="tool">
    <xsl:text>.APP "</xsl:text>
    <xsl:apply-templates/>
    <xsl:text>"&nl;</xsl:text>
</xsl:template>

 <!-- Generate line .APP "eeschema (2010-08-17 BZR 2450)-unstable" -->
<xsl:template match="date">
    <xsl:text>.TIM </xsl:text>
    <xsl:apply-templates/>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!-- for each component -->
<xsl:template match="comp">
    <xsl:text>.ADD_COM </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "value != '' ">
            <xsl:text>"</xsl:text> <xsl:apply-templates select="value"/> <xsl:text>"</xsl:text>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>""</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!-- for each net -->
<xsl:template match="net">
    <!-- nets are output only if there is more than one pin in net -->
    <xsl:if test="count(node)>1">
    <xsl:variable name="netname">
        <xsl:text>"</xsl:text>
        <xsl:choose>
            <xsl:when test = "@name != '' ">
                <xsl:value-of select="@name"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:text>N-</xsl:text>
                <xsl:value-of select="@code"/>
        </xsl:otherwise>
        </xsl:choose>
        <xsl:text>"&nl;</xsl:text>
        </xsl:variable>
        <xsl:apply-templates select="node" mode="first"/>
        <xsl:value-of select="$netname"/>
        <xsl:apply-templates select="node" mode="others"/>
    </xsl:if>
</xsl:template>

<!-- for each node -->
<xsl:template match="node" mode="first">
    <xsl:if test="position()=1">
       <xsl:text>.ADD_TER </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text>.</xsl:text>
    <xsl:value-of select="@pin"/>
    <xsl:text> </xsl:text>
    </xsl:if>
</xsl:template>

<xsl:template match="node" mode="others">
    <xsl:choose>
        <xsl:when test='position()=1'>
        </xsl:when>
        <xsl:when test='position()=2'>
           <xsl:text>.TER     </xsl:text>
        </xsl:when>
        <xsl:otherwise>
           <xsl:text>         </xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:if test="position()>1">
        <xsl:value-of select="@ref"/>
        <xsl:text>.</xsl:text>
        <xsl:value-of select="@pin"/>
        <xsl:text>&nl;</xsl:text>
    </xsl:if>
</xsl:template>

</xsl:stylesheet>

Here is the Cadstar output file.

.HEA
.TIM 21/08/2010 08:12:08
.APP "eeschema (2010-08-09 BZR 2439)-unstable"
.ADD_COM P1 "CONN_4"
.ADD_COM U2 "74LS74"
.ADD_COM U1 "74LS04"
.ADD_COM C1 "CP"
.ADD_COM R1 "R"


.ADD_TER U1.7 "GND"
.TER     C1.2
         U2.7
         P1.4
.ADD_TER R1.1 "VCC"
.TER     U1.14
         U2.4
         U2.1
         U2.14
         P1.1
.ADD_TER U1.2 "N-4"
.TER     U2.3
.ADD_TER P1.2 "/SIG_OUT"
.TER     U2.5
         U2.2
.ADD_TER R1.2 "/CLOCK_IN"
.TER     C1.1
         U1.1
         P1.3

.END

14.3.3. Create a OrcadPCB2 netlist file

This format has only one section which is the footprint list. Each footprint includes its list of pads with reference to a net.

Here is the style-sheet for this specific conversion:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format
    Copyright (C) 2010, SoftPLC Corporation.
    GPL v2.

    How to use:
        https://lists.launchpad.net/kicad-developers/msg05157.html
-->

<!DOCTYPE xsl:stylesheet [
  <!ENTITY nl  "&#xd;&#xa;"> <!--new line CR, LF -->
]>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

<!--
    Netlist header
    Creates the entire netlist
    (can be seen as equivalent to main function in C
-->
<xsl:template match="/export">
    <xsl:text>( { Eeschema Netlist Version 1.1  </xsl:text>
    <!-- Generate line .TIM <time> -->
<xsl:apply-templates select="design/date"/>
<!-- Generate line eeschema version ... -->
<xsl:apply-templates select="design/tool"/>
<xsl:text>}&nl;</xsl:text>

<!-- Generate the list of components -->
<xsl:apply-templates select="components/comp"/>  <!-- Generate list of components -->

<!-- end of file -->
<xsl:text>)&nl;*&nl;</xsl:text>
</xsl:template>

<!--
    Generate id in header like "eeschema (2010-08-17 BZR 2450)-unstable"
-->
<xsl:template match="tool">
    <xsl:apply-templates/>
</xsl:template>

<!--
    Generate date in header like "20/08/2010 10:45:33"
-->
<xsl:template match="date">
    <xsl:apply-templates/>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!--
    This template read each component
    (path = /export/components/comp)
    creates lines:
     ( 3EBF7DBD $noname U1 74LS125
      ... pin list ...
      )
    and calls "create_pin_list" template to build the pin list
-->
<xsl:template match="comp">
    <xsl:text> ( </xsl:text>
    <xsl:choose>
        <xsl:when test = "tstamp != '' ">
            <xsl:apply-templates select="tstamp"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>00000000</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "footprint != '' ">
            <xsl:apply-templates select="footprint"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>$noname</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "value != '' ">
            <xsl:apply-templates select="value"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>"~"</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text>&nl;</xsl:text>
    <xsl:call-template name="Search_pin_list" >
        <xsl:with-param name="cmplib_id" select="libsource/@part"/>
        <xsl:with-param name="cmp_ref" select="@ref"/>
    </xsl:call-template>
    <xsl:text> )&nl;</xsl:text>
</xsl:template>

<!--
    This template search for a given lib component description in list
    lib component descriptions are in /export/libparts,
    and each description start at ./libpart
    We search here for the list of pins of the given component
    This template has 2 parameters:
        "cmplib_id" (reference in libparts)
        "cmp_ref"   (schematic reference of the given component)
-->
<xsl:template name="Search_pin_list" >
    <xsl:param name="cmplib_id" select="0" />
    <xsl:param name="cmp_ref" select="0" />
        <xsl:for-each select="/export/libparts/libpart">
            <xsl:if test = "@part = $cmplib_id ">
                <xsl:apply-templates name="build_pin_list" select="pins/pin">
                    <xsl:with-param name="cmp_ref" select="$cmp_ref"/>
                </xsl:apply-templates>
            </xsl:if>
        </xsl:for-each>
</xsl:template>


<!--
    This template writes the pin list of a component
    from the pin list of the library description
    The pin list from library description is something like
          <pins>
            <pin num="1" type="passive"/>
            <pin num="2" type="passive"/>
          </pins>
    Output pin list is ( <pin num> <net name> )
    something like
            ( 1 VCC )
            ( 2 GND )
-->
<xsl:template name="build_pin_list" match="pin">
    <xsl:param name="cmp_ref" select="0" />

    <!-- write pin numner and separator -->
    <xsl:text>  ( </xsl:text>
    <xsl:value-of select="@num"/>
    <xsl:text> </xsl:text>

    <!-- search net name in nets section and write it: -->
    <xsl:variable name="pinNum" select="@num" />
    <xsl:for-each select="/export/nets/net">
        <!-- net name is output only if there is more than one pin in net
             else use "?" as net name, so count items in this net
        -->
        <xsl:variable name="pinCnt" select="count(node)" />
        <xsl:apply-templates name="Search_pin_netname" select="node">
            <xsl:with-param name="cmp_ref" select="$cmp_ref"/>
            <xsl:with-param name="pin_cnt_in_net" select="$pinCnt"/>
            <xsl:with-param name="pin_num"> <xsl:value-of select="$pinNum"/>
            </xsl:with-param>
        </xsl:apply-templates>
    </xsl:for-each>

    <!-- close line -->
    <xsl:text> )&nl;</xsl:text>
</xsl:template>

<!--
    This template writes the pin netname of a given pin of a given component
    from the nets list
    The nets list description is something like
      <nets>
        <net code="1" name="GND">
          <node ref="J1" pin="20"/>
              <node ref="C2" pin="2"/>
        </net>
        <net code="2" name="">
          <node ref="U2" pin="11"/>
        </net>
    </nets>
    This template has 2 parameters:
        "cmp_ref"   (schematic reference of the given component)
        "pin_num"   (pin number)
-->

<xsl:template name="Search_pin_netname" match="node">
    <xsl:param name="cmp_ref" select="0" />
    <xsl:param name="pin_num" select="0" />
    <xsl:param name="pin_cnt_in_net" select="0" />

    <xsl:if test = "@ref = $cmp_ref ">
        <xsl:if test = "@pin = $pin_num">
        <!-- net name is output only if there is more than one pin in net
             else use "?" as net name
        -->
            <xsl:if test = "$pin_cnt_in_net>1">
                <xsl:choose>
                    <!-- if a net has a name, use it,
                        else build a name from its net code
                    -->
                    <xsl:when test = "../@name != '' ">
                        <xsl:value-of select="../@name"/>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:text>$N-0</xsl:text><xsl:value-of select="../@code"/>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:if>
            <xsl:if test = "$pin_cnt_in_net &lt;2">
                <xsl:text>?</xsl:text>
            </xsl:if>
        </xsl:if>
    </xsl:if>

</xsl:template>

</xsl:stylesheet>

Here is the OrcadPCB2 output file.

( { Eeschema Netlist Version 1.1  29/08/2010 21:07:51
eeschema (2010-08-28 BZR 2458)-unstable}
 ( 4C6E2141 $noname P1 CONN_4
  (  1 VCC )
  (  2 /SIG_OUT )
  (  3 /CLOCK_IN )
  (  4 GND )
 )
 ( 4C6E20BA $noname U2 74LS74
  (  1 VCC )
  (  2 /SIG_OUT )
  (  3 N-04 )
  (  4 VCC )
  (  5 /SIG_OUT )
  (  6 ? )
  (  7 GND )
  (  14 VCC )
 )
 ( 4C6E20A6 $noname U1 74LS04
  (  1 /CLOCK_IN )
  (  2 N-04 )
  (  7 GND )
  (  14 VCC )
 )
 ( 4C6E2094 $noname C1 CP
  (  1 /CLOCK_IN )
  (  2 GND )
 )
 ( 4C6E208A $noname R1 R
  (  1 VCC )
  (  2 /CLOCK_IN )
 )
)
*

14.3.4. Eeschema plugins interface

Intermediate Netlist converters can be automatically launched within Eeschema.

Init the Dialog window

One can add a new netlist plug-in user interface tab by clicking on the Add Plugin button.

10000000000000FC000000C867B9348F_png

Here is what the configuration data for the PadsPcb tab looks like:

100000000000026D000001272BA6B200_png
Plugin Configuration Parameters

The Eeschema plug-in configuration dialog requires the following information:

  • The title: for instance, the name of the netlist format.

  • The command line to launch the converter.

Once you click on the netlist button the following will happen:

  1. Eeschema creates an intermediate netlist file .xml, for instancetest.xml.*

  2. Eeschema runs the plug-in by reading test.xml and creates test.net

Generate netlist files with the command line

Assuming we are using the program xsltproc.exe to apply the sheet style to the intermediate file, xsltproc.exe is executed with the following command.

xsltproc.exe -o <output filename> < style-sheet filename> <input XML file to convert>

In KiCad under Windows the command line is the following.

f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

Under Linux the command becomes as following.

xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

Where netlist_form_pads-pcb.xsl is the style-sheet that you are applying. Do not forget the double quotes around the file names, this allows them to have spaces after the substitution by Eeschema.

The command line format accepts parameters for filenames:

The supported formatting parameters are.

  • %B ⇒ base filename and path of selected output file, minus path and extension.

  • %I ⇒ complete filename and path of the temporary input file (the intermediate net file).

  • %O ⇒ complete filename and path of the user chosen output file.

%I will be replaced by the actual intermediate file name

%O will be replaced by the actual output file name.

Command line format: example for xsltproc

The command line format for xsltproc is the following:

<path of xsltproc> xsltproc <xsltproc parameters>

under Windows:

f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

under Linux:

xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

The above examples assume xsltproc is installed on your PC under Windows and all files located in kicad/bin.

14.3.5. Bill of Materials Generation

Because the intermediate netlist file contains all information about used components, a BOM can be extracted from it. Here is the plug-in setup window (on Linux) to create a customized Bill Of Materials (BOM) file:

bom-netlist-tab_png

The path to the style sheet bom2csv.xsl is system dependent. The currently best XSLT style-sheet for BOM generation at this time is called bom2csv.xsl. You are free to modify it according to your needs, and if you develop something generally useful, ask that it become part of the KiCad project.

14.4. Command line format: example for python scripts

The command line format for python is something like:

python <script file name> <input filename> <output filename>

under Windows:

python *.exe f:/kicad/python/my_python_script.py "%I" "%O"

under Linux:

python /usr/local/kicad/python/my_python_script.py "%I" "%O"

Assuming python is installed on your PC.

14.5. Intermediate Netlist structure

This sample gives an idea of the netlist file format.

<?xml version="1.0" encoding="utf-8"?>
<export version="D">
  <design>
    <source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
    <date>29/08/2010 21:07:51</date>
    <tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
  </design>
  <components>
    <comp ref="P1">
      <value>CONN_4</value>
      <libsource lib="conn" part="CONN_4"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2141</tstamp>
    </comp>
    <comp ref="U2">
      <value>74LS74</value>
      <libsource lib="74xx" part="74LS74"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20BA</tstamp>
    </comp>
    <comp ref="U1">
      <value>74LS04</value>
      <libsource lib="74xx" part="74LS04"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20A6</tstamp>
    </comp>
    <comp ref="C1">
      <value>CP</value>
      <libsource lib="device" part="CP"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2094</tstamp>
    <comp ref="R1">
      <value>R</value>
      <libsource lib="device" part="R"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E208A</tstamp>
    </comp>
  </components>
  <libparts/>
  <libraries/>
  <nets>
    <net code="1" name="GND">
      <node ref="U1" pin="7"/>
      <node ref="C1" pin="2"/>
      <node ref="U2" pin="7"/>
      <node ref="P1" pin="4"/>
    </net>
    <net code="2" name="VCC">
      <node ref="R1" pin="1"/>
      <node ref="U1" pin="14"/>
      <node ref="U2" pin="4"/>
      <node ref="U2" pin="1"/>
      <node ref="U2" pin="14"/>
      <node ref="P1" pin="1"/>
    </net>
    <net code="3" name="">
      <node ref="U2" pin="6"/>
    </net>
    <net code="4" name="">
      <node ref="U1" pin="2"/>
      <node ref="U2" pin="3"/>
    </net>
    <net code="5" name="/SIG_OUT">
      <node ref="P1" pin="2"/>
      <node ref="U2" pin="5"/>
      <node ref="U2" pin="2"/>
    </net>
    <net code="6" name="/CLOCK_IN">
      <node ref="R1" pin="2"/>
      <node ref="C1" pin="1"/>
      <node ref="U1" pin="1"/>
      <node ref="P1" pin="3"/>
    </net>
  </nets>
</export>

14.5.1. General netlist file structure

The intermediate Netlist accounts for five sections.

  • The header section.

  • The component section.

  • The lib parts section.

  • The libraries section.

  • The nets section.

The file content has the delimiter <export>

<export version="D">
...
</export>

14.5.2. The header section

The header has the delimiter <design>

<design>
<source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
<date>21/08/2010 08:12:08</date>
<tool>eeschema (2010-08-09 BZR 2439)-unstable</tool>
</design>

This section can be considered a comment section.

14.5.3. The components section

The component section has the delimiter <components>

<components>
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>
</components>

This section contains the list of components in your schematic. Each component is described like this:

<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>

libsource

name of the lib where this component was found.

part

component name inside this library.

sheetpath

path of the sheet inside the hierarchy: identify the sheet within the full schematic hierarchy.

tstamps (time stamps)

time stamp of the schematic file.

tstamp (time stamp)

time stamp of the component.

Note about time stamps for components

To identify a component in a netlist and therefore on a board, the timestamp reference is used as unique for each component. However KiCad provides an auxiliary way to identify a component which is the corresponding footprint on the board. This allows the re-annotation of components in a schematic project and does not loose the link between the component and its footprint.

A time stamp is an unique identifier for each component or sheet in a schematic project. However, in complex hierarchies, the same sheet is used more than once, so this sheet contains components having the same time stamp.

A given sheet inside a complex hierarchy has an unique identifier: its sheetpath. A given component (inside a complex hierarchy) has an unique identifier: the sheetpath + its tstamp

14.5.4. The libparts section

The libparts section has the delimiter <libparts>, and the content of this section is defined in the schematic libraries. The libparts section contains

  • The allowed footprints names (names use jokers) delimiter <fp>.

  • The fields defined in the library delimiter <fields>.

  • The list of pins delimiter <pins>.

<libparts>
<libpart lib="device" part="CP">
  <description>Condensateur polarise</description>
  <footprints>
    <fp>CP*</fp>
    <fp>SM*</fp>
  </footprints>
  <fields>
    <field name="Reference">C</field>
    <field name="Valeur">CP</field>
  </fields>
  <pins>
    <pin num="1" name="1" type="passive"/>
    <pin num="2" name="2" type="passive"/>
  </pins>
</libpart>
</libparts>

Lines like <pin num="1" type="passive"/> give also the electrical pin type. Possible electrical pin types are

Input

Usual input pin

Output

Usual output

Bidirectional

Input or Output

Tri-state

Bus input/output

Passive

Usual ends of passive components

Unspecified

Unknown electrical type

Power input

Power input of a component

Power output

Power output like a regulator output

Open collector

Open collector often found in analog comparators

Open emitter

Open collector sometimes found in logic.

Not connected

Must be left open in schematic

14.5.5. The libraries section

The libraries section has the delimiter <libraries>. This section contains the list of schematic libraries used in the project.

<libraries>
  <library logical="device">
    <uri>F:\kicad\share\library\device.lib</uri>
  </library>
  <library logical="conn">
    <uri>F:\kicad\share\library\conn.lib</uri>
  </library>
</libraries>

14.5.6. The nets section

The nets section has the delimiter <nets>. This section contains the "connectivity" of the schematic.

<nets>
  <net code="1" name="GND">
    <node ref="U1" pin="7"/>
    <node ref="C1" pin="2"/>
    <node ref="U2" pin="7"/>
    <node ref="P1" pin="4"/>
  </net>
  <net code="2" name="VCC">
    <node ref="R1" pin="1"/>
    <node ref="U1" pin="14"/>
    <node ref="U2" pin="4"/>
    <node ref="U2" pin="1"/>
    <node ref="U2" pin="14"/>
    <node ref="P1" pin="1"/>
  </net>
</nets>

This section lists all nets in the schematic.

A possible net is contains the following.

<net code="1" name="GND">
  <node ref="U1" pin="7"/>
  <node ref="C1" pin="2"/>
  <node ref="U2" pin="7"/>
  <node ref="P1" pin="4"/>
</net>

net code

is an internal identifier for this net

name

is a name for this net

node

give a pin reference connected to this net

14.6. More about xsltproc

Refer to the page: http://xmlsoft.org/XSLT/xsltproc.html

14.6.1. Introduction

xsltproc is a command line tool for applying XSLT style-sheets to XML documents. While it was developed as part of the GNOME project, it can operate independently of the GNOME desktop.

xsltproc is invoked from the command line with the name of the style-sheet to be used followed by the name of the file or files to which the style-sheet is to be applied. It will use the standard input if a filename provided is - .

If a style-sheet is included in an XML document with a Style-sheet Processing Instruction, no style-sheet needs to be named in the command line. xsltproc will automatically detect the included style-sheet and use it. By default, the output is to stdout. You can specify a file for output using the -o option.

14.6.2. Synopsis

xsltproc [[-V] | [-v] | [-o *file* ] | [--timing] | [--repeat] |
[--debug] | [--novalid] | [--noout] | [--maxdepth *val* ] | [--html] |
[--param *name* *value* ] | [--stringparam *name* *value* ] | [--nonet] |
[--path *paths* ] | [--load-trace] | [--catalogs] | [--xinclude] |
[--profile] | [--dumpextensions] | [--nowrite] | [--nomkdir] |
[--writesubtree] | [--nodtdattr]] [ *stylesheet* ] [ *file1* ] [ *file2* ]
[ *....* ]

14.6.3. Command line options

-V or --version

Show the version of libxml and libxslt used.

-v or --verbose

Output each step taken by xsltproc in processing the stylesheet and the document.

-o or --output file

Direct output to the file named file. For multiple outputs, also known as «chunking», -o directory/ directs the output files to a specified directory. The directory must already exist.

--timing

Display the time used for parsing the stylesheet, parsing the document and applying the stylesheet and saving the result. Displayed in milliseconds.

--repeat

Run the transformation 20 times. Used for timing tests.

--debug

Output an XML tree of the transformed document for debugging purposes.

--novalid

Skip loading the document’s DTD.

--noout

Do not output the result.

--maxdepth value

Adjust the maximum depth of the template stack before libxslt concludes it is in an infinite loop. The default is 500.

--html

The input document is an HTML file.

--param name value

Pass a parameter of name name and value value to the stylesheet. You may pass multiple name/value pairs up to a maximum of 32. If the value being passed is a string rather than a node identifier, use --stringparam instead.

--stringparam name value

Pass a paramenter of name name and value value where value is a string rather than a node identifier. (Note: The string must be utf-8.)

--nonet

Do not use the Internet to fetch DTD’s, entities or documents.

--path paths

Use the list (separated by space or column) of filesystem paths specified by paths to load DTDs, entities or documents.

--load-trace

Display to stderr all the documents loaded during the processing.

--catalogs

Use the SGML catalog specified in SGML_CATALOG_FILES to resolve the location of external entities. By default, xsltproc looks for the catalog specified in XML_CATALOG_FILES. If that is not specified, it uses /etc/xml/catalog.

--xinclude

Process the input document using the Xinclude specification. More details on this can be found in the Xinclude specification: http://www.w3.org/TR/xinclude/

--profile --norman

Output profiling information detailing the amount of time spent in each part of the stylesheet. This is useful in optimizing stylesheet performance.

--dumpextensions

Dumps the list of all registered extensions to stdout.

--nowrite

Refuses to write to any file or resource.

--nomkdir

Refuses to create directories.

--writesubtree path

Allow file write only within the path subtree.

--nodtdattr

Do not apply default attributes from the document’s DTD.

14.6.4. Xsltproc return values

xsltproc returns a status number that can be quite useful when calling it within a script.

0: normal

1: no argument

2: too many parameters

3: unknown option

4: failed to parse the stylesheet

5: error in the stylesheet

6: error in one of the documents

7: unsupported xsl:output method

8: string parameter contains both quote and double-quotes

9: internal processing error

10: processing was stopped by a terminating message

11: could not write the result to the output file

14.6.5. More Information about xsltproc

libxml web page: http://www.xmlsoft.org/