gschem -> gsch2pcb -> PCB


Ceci est un tutoriel sur la manière d'utiliser gsch2pcb comme une interface entre gschem et PCB (« Printed Board Circuit » ; Circuit imprimé). Il suppose que les paquets gEDA, PCB et gsch2pcb sont déjà installés et prêt à l'utilisation. Si vous démarrez avec gEDA 20030901, la version 0.9 de gsch2pcb y est empaquetée mais quelques unes des étapes ci-dessous nécessiteront gsch2pcb 1.0. Ce tutoriel est pratique et est destiné à fournir des résultats aussi rapidement que possible. Ce n'est pas une référence complète de gschem ou de PCB mais il montre, avec des exemples très simples, toutes les étapes que vous devrez suivre.

L'objectif est d'utiliser gsch2pcb comme une passerelle entre gschem et PCB de telle manière que les schémas soient toujours synchronisés avec l'implantation sur le circuit imprimé car tous les ajouts ou suppressions d'éléments dans l'implantation seront automatiquement pilotés par des changements sur le schéma.

Si vous avez des versions antérieures à gschem 20030525 ou PCB 1.99, ce tutoriel peut ne pas fonctionner comme vous le souhaitez.

Terminologie

Avec gschem, vous ajoutez des symboles représentant des composants électroniques dans un schéma. Un symbole est un groupe de broches, attributs et de lignes montrant une icône représentant un composant électronique. Les broches des symboles sont connectées à d'autres broches en dessinant un réseau de connexions entre elles. Les attributs sont simplement des éléments identifés, attachés aux symboles pour transporter quelques éléments d'information. En utilisant le schéma avec PCB, trois de ces attributs sont pertinents et doivent être spécifiés. Chaque symbole ajouté doit avoir des attributs footprint, value, et un attribut refdes.

La valeur de l'attribut footprint (empreinte) d'un symbole dans le schéma est le nom de l'élément du PCB devant être placé à la place du symbole. Un élément de PCB est un groupe de broches, de pastilles et de contours qui déterminent la représentation physique d'un composant. C'est sûrement une source d'erreur pour les nouveaux venus sur PCB de voir que les éléments sont de deux types différents. Ce sont les éléments originaux de PCB générés par la macro m4 et depuis la version 1.7 de PCB, vous avez aussi les types d'éléments des fichiers de la nouvelle bibliothèque. Un élément de fichier est un élément fixé simple dans un seul fichier. Néanmoins, plusieurs définitions d'éléments de macro m4 peuvent exister dans seul fichier d'éléments m4. Les macros recevoir des arguments pour fournir des éléments programmables sur le nombre variable de broches ou leur espacement. L'utilisation de ces deux types est couverte par ce tutoriel et j'indiquerais ces types d'éléments distincts comme éléments m4 et éléments de fichier. Lorsque vous lancez PCB, la valeur d'attribut de footprint de gschem apparaît comme le nom d'élément affiché lorsque vous sélectionnez description depuis le menu Screen car gsch2pcb utilise ce champ pour garder une trace de la correspondance d'une empreinte pour un élément PCB particulier.

La valeur de l'attribut refdes de gschem est la désignation de la référence sur le schéma tel que Q1, U1, R1, etc. Lorsque vous lancez PCB, ce refdes apparaîtra comme le nom d'élément affiché lorsque vous sélectionnez name on PCB depuis le menu Screen.

La valeur de l'attribut value de gschem est la valeur particulière du composant tel que BC546, 7400, 1K, etc. Lorsque vous lancez PCB, cette valeur apparaîtra comme le nom de l'élément affiché lorsque vous sélectionnez value dans le menu Screen.

Initialisations

Vous devez avoir la structure du répertoire en mémoire lorsque vous organisez vos projets de conception. L'installation de gEDA et de PCB vous fournit un jeu de symboles gschem et des éléments PCB par défaut mais vous pouvez aussi en fournir avec la création de votre propre bibliothèque de symboles gschem et d'éléments PCB. Ce sont les seules initialisations dont vous pouvez avoir besoin lors des installations initiales des paquets gschem, gsch2pcb et PCB.

Exemple simple

Dessinons un circuit trivial depuis le schéma jusqu'au circuit PCB aussi rapidement que possible et nous pourrons alors l'utiliser comme base pour faire des trucs supplémentaires. Je vais le compliquer un tout petit peu en réalisant deux schémas.

En supposant que vous avez initialisé la structure de répertoires comme décrit ci-dessus, allez dans le répertoire gaf/myproject1 et créez un fichier nomé projet avec ce contenu :

schematics one.sch two.sch
output-name board

Créer le schéma : one.sch

Si vous utilisez gschem pour la première fois, suivez les étapes de cette simpe mise en jambe.
Lancez gschem one.sch et créez ce schéma (le second amplificateur opérationnel est redondant mais c'est seulement un tutoriel) :

images/one-sch-1.png
one.sch
  • Ajoutez le composant title-B.sym depuis la bibliothèque titleblock. Saisissez les touches ve pour zoomer sur les extensions du bloc titre. Verrouillez le bloc titre avec le menu Edit->Lock.
  • Ajoutez les composants :
    Dans la bibliothèque analog, trois resistor-1.sym et deux dual-opamp-1.sym.
    Dans la bibliothèque io, une output-2.sym.
    Dans la bibliothèque power, un gnd-1.sym, deux vcc-1.sym et deux vee-1.sym
  • Déplacez les composants avec le bouton milieu de la souris et pivotez les composants sélectionnés avec les touches er jusqu'à ce que tous les composants soient bien placés. Pivotez et effectuez un miroir sur l'amplificateur du bas avec les touches ei.
  • Utilisez la touche n et la souris pour dessiner les liaisons entre les composants.

Éditez les attributs des composants dans le schéma.

images/one-sch-2.png
one.sch
Pour chaque composant, sélectionnez-le et faites apparaître sa fenêtre d'attributs avec les touches ee. Ne touchez pas l'attribut refdes ici mais faites ces changements :
  • Pour les résistances et les amplificateurs, ajoutez l'attribut value et assignez-leur les valeurs appropriées (10K, TL072). Déplacez ces attributs maintenant visibles au meilleur emplacement avec le bouton milieu de la souris. Zoomez et recommencez en cliquant avec le bouton milieu de la souris s'il est difficile de les sélectionner.
  • Pour les résistances, ajoutez un attribut footprint et donnez-leur la valeur R025 qui est l'élément m4 pour PCB d'une résistance 1/4 de watt. Rendez cet attribut invisible.
  • Pour les amplificateurs, éditez les attributs footprint déjà existants en DIL 8 300. Oui, il faut inclure les espaces car DIL est un élément m4 qui prend deux arguments. Nous lui indiquons de faire un boitier DIL avec 8 broches en 300 mil. Éditez l'attribut slot du second amplificateur à 2. Ce sont les nombres des broches I/O qui doivent passer de (1,2,3) à (5,6,7).
  • Pour le port de module de sortie, éditez l'attribut net en vmixer:1 et rendez-le invisible. Éditez son attribut value en Vmixer.

Il se peut qu'il soit pénible d'éditer un schéma avec beaucoup de composants qui n'aurait pas des valeurs d'attributs initiales raisonables. Au moins, pour les empreintes, on peut faire une chose ou deux pour aider. Vous pouvez créer votre propre bibliothèque avec un footprint initial (et même un attribut par défaut value) qui couvre la plupart de vos utilisations. Ou, lorsque vous ajoutez votre premier composant, éditez-le pour mettre la bonne empreinte par défaut et copiez-le pour tous les composants restants au lieu de l'ajouter depuis la bibliothèque.
Maintenant, nous avons terminé avec one.sch, nous devons donc le sauvegarder avec le menu File->Save Page et nous quittons gschem.

Créons le schéma : two.sch

Il reste très trivial et stupide car nous le réalisons seulement pour démontrer les multiples possibilités du schéma. Lancez gschem two.sch :

images/two-sch-1.png
two.sch
  • Ajoutez le composant title-B.sym comme vous l'avez fait avec one.sch.
  • Ajoutez les composants :
    Dans la bibliothèque io, un input-2.sym.
    Dans la bibliothèque analog, un resistor-1.sym.
    Dans la bibliothèque transistor, un 2N3904-1.sym.
    Dans la bibliothèque power, un gnd-1.sym, un vcc-1.sym et un vee-1.sym.
    Dans la bibliothèque connector, un BNC-1.sym
  • Déplacez les composants et dessinez les liaisons comme au-dessus.
  • Éditez les attributs des composants :
    Le module du port d'entrée : modifiez l'attribut net en vmixer:1 de telle manière que la liaison soit connectée au vmixer dans one.sch. Mettez l'attribut value à Vmixer.
    Résistances : donnez à leur attribut footprint la valeur R025 et un attribut value comme 10K.
    Transistor : ajoutez l'attribut value à 2N3904 et rendez-le invisible, l'attribut footprint à TO92.
    Le connecteur BNC : ajoutez l'attribut footprint invisible CONNECTOR 2 1 qui est un élément m4 prenant des arguments et nous lui indiquons de faire un connecteur avec deux lignes et une colonne. Nous ajoutons un connecteur BNC dans le schéma mais je considère qu'il ne faut que des fils depuis le circuit vers une façade.

Malheureusement, le symbole 2N3904 que nous avons ajouté possède le texte "2N3904" comme une partie intégrale de son symbole. Donc lorsque nous ajoutons l'attribut value (que nous voulons pour que l'empreinte sur le PCB montre le nom approprié), nous avons deux désignations "2N3904" visibles sur notre schéma à moins que nous rendions l'attribut value invisible. Ce n'est pas bon et pour cet exemple, nous allons vivre avec mais notez que dans la plupart des cas, il n'est pas une bonne idée de cabler en dur des informations dans de tels symboles. Aussi, l'attribut device par défaut est erroné et devrait être NPN_TRANSISTOR mais cela n'affecte pas ce tutoriel. C'est simplement pour vous informer qu'il y a actuellement quelques symboles dans gschem qui ont des attributs dépassés provenant d'anciennes versions de gschem. Si vous souhaitez lancer spice avec les schémas, alors vos symboles devront avoir des attributs device propres.

Nous en avons maintenant terminé avec les schémas excepté dans l'attribution de refdes et nous pouvons utiliser la commande refdes_renum pour le faire sur les deux schémas à la fois. Donc, lançons :

$ refdes_renum --pgskip one.sch two.sch
puis gschem avec les schémas pour voir comment les composants ont reçu les attributs refdes. L'option --pgksip démarre la numérotation à 101 pour one.sch et à 201 pour two.sch. Mais vous devez savoir que lancer refdes_renum n'est réellement utile que pour la numérotation initiale. Si vous éditez vos schémas plus tard et que vous ajoutez ou enlevez des composants, il n'y a pas de garantie qu'en relançant refdes_renum, les composants gardent leur valeur refdes existante. Si dans le même moment, vous avez généré un circuit imprimé en utilisant gsch2pcb, ce mélange de numéros de références désynchronisera la disposition dans le circuit. Donc, après que vous ayez initialement lancé refdes_renum et débuté un PCB, pour être tranquille, vous devrez ajouter manuellement des attributs refdes uniques pour tous les composants que vous pourriez ajouter.

Générer des fichiers PCB depuis les Schémas

Nous devons réparer quelquechose dans one.sch avant de pouvoir démarrer. Lancez gschem one.sch et notez que refdes_renum a donné à nos amplificateurs les valeurs refdes de U101 et U102 et il ne sait pas que nous voulons réellement utiliser les deux amplificateurs TL072 dans un seul boitier. C'est la raison pour laquelle nous éditons l'attribut slot du second amplificateur. Nous devons revenir et réparer en éditant l'attribut refdes du second amplificateur pour qu'il soit à U101 de telle manière que les deux amplificateurs aient le même refdes et qu'il n'y ait qu'un seul boitier TL072 sur le circuit imprimé.

Maintenant que nous avons déjà initialisé un fichier de projet gsch2pcb, tout ce dont nous avons besoin pour créer un jeu initial de fichiers PCB est de lancer gsch2pcb :

~/gaf/myproject1$ gsch2pcb projet
0 file elements and 7 m4 elements added to board.pcb.
Comme le fichier de projet spécifiait board comme nom de sortie, les fichiers PCB créés sont nommés board.pcb et board.net.

Si vous avez une sortie de gsch2pcb comme : 2 éléments inconnus ajoutés à board.pcb.,lancez-le alors avec le drapeau -v : gsch2pcb -v projet et la sortie de gsch2pcb indiquera quels composants du schéma n'ont pas d'empreinte connue. Soit vous avez oublié d'ajouter l'attribut, soit la valeur de l'attribut est mauvaise ou l'élément PCB est manquant dans l'installation. Mais si gsch2pcb ne peut trouver aucun des éléments et qu'ils sont tous les 7 inconnus, alors probablement que gsch2pcb ne peut trouver votre répertoire d'installation de m4 PCB. Dans ce cas, jetez un coup d'oeil à la première partie de la section Personalisez les éléments M4.

Disposition des fichiers PCB

Lorsque vous lancez PCB sur un fichier .pcb pour la première fois comme dans l'étape 1 ci-dessous, vous devrez initialiser plusieurs valeurs. Je met habituellement un espacement de grille de 25 mil avec Screen->25 mil pour la zone de travail et un changement d'espacement de grille à des valeurs plus petites pour des situations avec une forte densité. Vous devez aussi initialiser les lignes par défaut et les tailles des vias que vous souhaitez pour les dessins de Signal, Power, Fat et Skinny dans le menu Sizes->adjust.... Sélectionnez alors le style de routage que vous souhaitez utiliser dans le menu Sizes. Vous pouvez maintenant initialiser la taille de votre circuit imprimé ou attendre plus tard avec Edit->change board size. Et il peut aussi être utile d'initialiser Screen->display grid.
images/board-1.png
Etape 1
Lancez pcb board.pcb

Vous allez voir les éléments du PCB groupés dans une grosse pile pour toutes les empreintes de composants du schéma.

images/board-2.png
Etape 2
Utilisez le bouton milieu de la souris pour prendre et déplacer les éléments un par un jusqu'à ce que vous ayez séparé tous les éléments.
images/board-3.png
Etape 3
  • File->load netlist file et sélectionnez board.net
  • Connects->optimize rats-nest
  • Comme nous avons déplacé les éléments dans l'étape précédente, la commande nettoiera les lignes et refera l'optimisation du réseau de connexions.
images/board-4.png
Etape 4
Sélectionez l'outil ROT et déplacez les éléments avec le bouton du milieu de la souris et pivotez-les avec le bouton gauche jusqu'à ce que le réseau semble minimum. Frappez la touche f avec la souris sur une broche pour éclairer une route particulière pour aider à la visualisation des routes.
Arrivé à ce stade, vous pouvez démarrer le routage des pistes entre les broches connectées par des réseaux de lignes. À la gauche de PCB, sur la barre d'outils, sélectionnez l'outil LINE, sélectionnez la couche sur laquelle vous voulez dessiner (soudure, composant, etc) et commencez à dessiner les lignes en sélectionnant les points d'arrêt avec le bouton gauche de la souris. Il peut encore être utile d'utiliser la touche f pour éclairer les routes qui doivent être connectées. Si vous souhaitez stopper la trace actuelle pour démarrer une nouvelle piste ailleurs, finissez la piste courante avec un clic milieu de souris. Ou faites un routage auto si vous le souhaitez.

Une opération très utile avec l'outil SEL est de sélectionner plusieurs objets et de les couper ou copier dans un tampon avec le menu Buffer->cut selection to buffer (ou copier). Vous pouvez immédiatement coller le contenu du tampon ou annuler le coller actuel en sélectionnant un autre outil. Le tampon peut ête collé plus tard avec Buffer->paste buffer to layout. De cette manière, vous pouvez déplacer la disposition ou travailler par étapes et répéter les motifs de réseau communs. Pour sélectionner plusieurs objets avec l'outil SEL, cliquez et tirez pour sélectionner une région rectangulaire et SHIFT-cliquez pour ajouter quelques éléments supplémentaires dans le jeu déjà sélectionné.

Lorsque vous avez terminé de router les pistes (PCB vous félicitera si toutes les pistes sont routées lorsque vous optimisez le réseau), le circuit peut ressembler quelque chose comme ceci. Pour obtenir cette vue, j'ai sélectionné Screen->value.

images/board-5.png

Vous voudrez sûrement plus d'informations sur l'utilisation de PCB et il existe un jeu de documentations HTML dans le paquet source de PCB. Je ne sais pas quel lien je pourrais mettre ici mais vous pouvez avoir le dernier tarball PCB 1.99 development sur leur site. Ou bien, la documentation peut être installée quelque part sur votre système. Le paquet Debian l'a installé dans /usr/share/doc/pcb/html/.

Modifier les Schémas

Le processus de transfert de modifications de vos schémas vers le PCB est rendu très simple avec gsch2pcb. Après que le premier board.pcb ait été créé lorsque vous lancez initialement gsch2pcb, chaque fois que lancez gschem et faites des changements, lancez gsch2pcb projet. Lancez alors pcb board.pcb et effectuez ce qui est nécessaire en fonction de ce qu'a modifié gsch2pcb. Chaque fois que gsch2pcb est lancé, voilà ce qui se produit : Donc, en utilisant gsch2pcb, tous les changements dans les éléments de PCB sont pilotés par ceux du schéma et vous ne devriez jamais avoir à ajouter ou effacer manuellement des éléments pour les composants du schéma.

Vous aurez néanmoins à ajouter manuellement des éléments de PCB qui ne font pas partie du schéma, tel que les trous de montage du circuit imprimé. Pour ces éléments PCB ajoutés manuellement, assurez-vous que vous ne leur donnerez jamais un nom sur le PCB car il est réservé pour les attributs refdes des composants du schéma et gsch2pcb voudra effacer les éléments qui ont des non dans PCB non vides et ne correspondent à aucun composant du schéma refdes.

Jusqu'à maintenant, nous n'avons utilisé que des éléments m4 dans notre circuit, modifions donc notre schéma pour utiliser un élément de fichier. Mais avant, il serait intéressant de voir quels sont les éléments par défaut fournis par PCB. Selon la localisation de votre installation de PCB, il y aura un répertoire tels que /usr/local/pcb_lib, /usr/lib/pcb_lib ou éventuellement un autre endroit. Une fois que vous avez trouvé votre répertoire de pcb_lib, regardez les noms de fichiers dans chaque sous-répertoire. Chaque nom de fichier est un nom qui peut être utilisé comme attribut footprint pour un composant de schéma. Par exemple, il y a le fichier xxx/pcb_lib/2_pin_thru-hole_packages/0.125W_Carbon_Resistor donc si vous voulez une résistance de 1/8 de watt sur votre circuit, nous pouvons utiliser un 0.125W_Carbon_Resistor comme attribut footprint de résistance au lieu de R025. Tentons le changement, par exemple la résistance R101 avec 0.125W_Carbon_Resistor dans one.sch et lancez alors gsch2pcb projet. Si gsch2pcb ne trouve pas cet élément, vous aurez alors à ajouter votre répertoire pcb_lib dans votre fichier projet avec une ligne ressemblant à :

elements-dir /usr/lib/pcb_lib
Si gsch2pcb la trouve, vous aurez :
~/gaf/myproject1$ gsch2pcb projet
board.pcb is backed up as board.pcb.bak1.
1 elements deleted from board.pcb.
1 file elements and 0 m4 elements added to board.new.pcb.
Vous aurez alors à lancer pcb board.pcb. Vous verrez que que l'élément pour la résistance R101 est parti et que vous avez le nouvel élément en chargeant board.new.pcb avecFile->load layout data to paste-buffer.

Personnaliser les symboles de gschem

Une manière habituelle de générer un symbole personnalisé est de démarrer avec un composant existant et de le modifier. Une chose que je n'aime pas, à propos du dual-opamp-1.sym que nous utilisons, est que les broches de puissance sont répétées pour chaque symbole et il serait curieux de voir une page complète de tels amplificateurs. Il est possible, avec gschem , pour des symboles, d'avoir des attributs de net qui peuvent assigner des broches à un réseau particulier. Au lieu de relier la broche 8 de l'amplificateur à Vcc et la broche 4 à Vee sur le schéma, nous pouvons éliminer les broches automatiquement sur le schéma. Pour ce faire, copions le symbole originel dans notre répertoire de symboles personnel de gschem, donnons-lui un nouveau nom et éditons-le. Pour réaliser ces étapes, néanmoins, votre répertoire d'installation des symboles doit être différent de /usr/local/share/gEDA/sym/) :
cd /usr/share/gEDA/sym/analog/
cp dual-opamp-1.sym ~/gaf/gschem-sym/opamp-dual.sym
cd ~/gaf/gschem-sym
gschem opamp-dual.sym
images/gschem-sym-1.png
Step 1
  • Tapez sur les touches en pour rendre les attributs visibles.
  • Tapez sur les touches ve pour voir les extensions.
  • Clic bouton gauche de souris sur la broche 8 pour la sélectionner.
images/gschem-sym-2.png
Step 2
  • Tapez sur la touche Delete pour effacer la broche 8.
  • De la même manière, sélectionnez et effacez la broche 4.
  • Double-cliquez pour sélectionner et éditer les lignes slotdef. Éditez-les en enlevant les broches 4 et 8.
images/gschem-sym-3.png
Step 3
Dans le menu Add->Attribute
  • Ajoutez l'attribut net avec la valeur Vcc:8. Sélectionnez Show Name & Value et rendez-la invisible.
  • Ajoutez l'attribut net avec la valeur Vee:4. Sélectionnez Show Name & Value et rendez-la invisible.
  • Transformez l'attribut device simplement en OPAMP.
Faites le nettoyage en déplaçant ces nouveaux attributs comme indiqué.
Changez l'empreinte par défaut si vous le souhaitez.
Lorsque vous avez tout édité, il est vraiment important lors de l'édition du symbole, de faire un Edit->Symbol Translate à zéro avant la sauvegarde. Faites-le et sauvegardez le symbole avec File->Save Page. J'ai pris DIP8 comme empreinte par défaut car je l'avais comme composant personnel.

Lancez gschem one.sch. Sélectionnez et effacez les deux amplificateurs avec la touche Delete. Effacez aussi les symboles Vcc et Vee qui y étaient connectés. Affichez la fenêtre Add Components et dans la bibliothèque gschem-sym, vous devriez avoir votre nouveau symbole personnel, placez deux des opamp-dual.sym. Déplacez-les au bon endroit sur le schéma, n'oubliez pas de faire un miroir et de pivoter l'amplificateur du bas comme avant. Éditez les attributs de chaque amplificateur en leur donnant les même attributs, c'est à dire l'empreinte en DIL 8 300, mettez l'attribut value à TL072 et mettez le refdes des deux amplificateurs à U101. Changez le slot du second amplificateur à 2. Si vous ne rendez pas les attributs identiques à ce qu'ils étaient avant, gsch2pcb pensera que c'est un composant différent et effacera le paquet DIL existant du réseau. Si vous faites les choses correctement, lancer gsch2pcb vous donnera :

~/gaf/myproject1$ gsch2pcb projet   
Found a cpinlist head with a netname! [Vcc]
Found a cpinlist head with a netname! [Vee]
Found a cpinlist head with a netname! [Vcc]
Found a cpinlist head with a netname! [Vee]
Found a cpinlist head with a netname! [Vcc]
Found a cpinlist head with a netname! [Vee]
Found a cpinlist head with a netname! [Vcc]
Found a cpinlist head with a netname! [Vee]
No elements to add so not creating board.new.pcb
Il semble que le programme gnetlist de gEDA soit un peu excité sur le fait de trouver de nouveaux attributs net Vcc et Vee que nous venons de rajouter et une nouvelle netlist a été générée. Le schéma semble maintenant plus clair :

images/one-sch-3.png
one.sch

Et si vous lancez pcb board.pcb et chargez la nouvelle netlist puis optimisez alors le réseau de fils, PCB doit alors vous dire que le circuit est complet, ce qui signifie que la connexion des broches d'alimentation de l'amplificateur via les attributs net a fonctionné.

Pour des détails complets sur la manière de faire des symboles, lisez le Symbol Creation Document sur la page de documentation de gEDA.

Personnaliser éléments de fichier

Vous pouvez créer des éléments de fichier personnalisés au milieu du travail avec PCB juste pour fabriquer l'élément. Comme démonstration, personnalisons un élément pour la diode 1N4004. Il existe des boitiers axiaux fournis avec PCB mais nous voulons être sûr que la taille des trous soit la bonne pour cette diode de 1 ampère avec des pattes si épaisses. Elles ont besoin de trous d'au moins 42 mil (#58).

Lancez pcb et la première chose à faire est d'aller dans le menu Sizes et sélectionnez adjust "Signal" sizes. Initialisez le trou de perçage à 42 et la taille de passage à 70 ou plus large si vous le souhaitez. Assurez-vous alors que vous utilisez cette taille de trou en sélectionnant Sizes->use "Signal" routing style. Sélectionnez Screen->25 mil et Screen->display grid. Zoomez plusieurs fois puis faites l'élément :

images/pcb-el-1.png
Step 1
  • Sélectionnez l'outil VIA et placez deux vias de 400 mils.
  • Avec la souris, sur le via de gauche, tapez la touche n et donnez l'indice 1 au via. Donnez à celui de droite l'indice 2
images/pcb-el-2.png
Step 2
  • Sélectionnez la couche Silk et l'outil LINE.
  • Dessinez le contour du boitier comme montré.
  • Dessinez l'indicateur de cathode en gras avec trois lignes après la ligne d'initialisation d'épaisseur de 20 et une initialisation de 10 mils.
Sélectionez les vias et le contour que nous venons juste de dessiner en utilisant l'outil SEL et finissez de fabriquer l'élément : Notez : si vous sauvegardez l'élément avec un nom qui est identique à celui d'un élément m4, gsch2pcb utilisera de manière préférentielle les éléments m4 à moins que vous n'indiquiez à gsch2pcb l'option --use-files (ou -f). Vous pouvez mettre use-files dans un fichier projet si vous souhaitez toujours donner la priorité à l'utilisation des éléments de fichier. Les éléments m4 semblent utiliser les majuscules. Donc, pour éviter les problèmes, vous devriez utiliser les minuscules dans les noms dans les éléments de fichier.

Vous pouvez maintenant utiliser D400-1A comme attribut footprint dans les symboles gschem et gsch2pcb le trouvera si vous avez fait le lien packages comme il l'est décrit dans la section Setup. Si vous n'avez pas fait ce lien, vous pouvez encore dire à gsch2pcb où est le répertoire des éléments avec un ligne dans le fichier projet :

elements-dir ~/gaf/pcb-elements
Il est possible que vous ayez noté qu'il y a quelque chose qui n'est pas bon dans mon exemple myproject1. Le transistor est revenu sur le circuit ! Vous n'aurez de toute manière pas ce type de problème lors du travail avec gschem et PCB mais la numérotation des broches du transistor peut être perturbante. Si vous utilisez des transistor dans vos conceptions, je vous donne ici mon approche pour s'assurer que la numérotation des broches des symboles des transistors est coordonnée avec la numérotation des broches des éléments de PCB : guide pour les transistors.

Dans le guide pour les transistors, vous pouvez voir qu'ici, le problème est que l'élément TO92 a ses broches numérotées dans un configuration peu habituelle (3,2,1) alors que le 2N3904-1.sym est comme un symbole npn-ebc qui nécessite une numérotation (1,2,3). Vous pouvez voir la numérotation des broches du 2N3904 dans gschem avec les touches en (et ne soyez pas perturbés par l'attribut pinseq qui couvre presque le pinnumber). Et dans PCB, vous pouvez voir la numérotation des broches du TO92 avec la touche d lorsque le pointeur de souris est sur l'élément. Pour être sûr que vous voyez les numéros des broches et pas les noms des broches, sélectionnez Screen->pinout shows number.

J'ai des bibliothèques avec des symboles de transistor et des éléments que vous pourrez trouver utile, donc si vous le souhaitez, vous pouvez avoir votre bibliothèque personnelle en la remplissant au départ avec mes bibliothèques gschem/PCB. Faites un untar sous ~/gaf pour copier l'initialisation de notre exemple et vous devrez aussi avoir un ~/gaf/pcb-elements.Readme qui documente les éléments de PCB. Si vous les décompressez ailleur, vous devrez vous assurer que gschem le prend en compte avec les lignes component-library de gschemrc/gnetlistrc et que gsch2pcb peut les trouver avec les lignes elements-dir dans un fichier projet.

Si vous les installez, vous pouvez réparer Q201 dans two.sch en changeant son empreinte en TO-92 qui est un élément personnel avec une numérotation de broches (1,2,3). Lancez alors gsch2pcb projet puis pcb board.pcb et chargez les nouveaux éléments pour le transistor. Dans l'image suivante, two.sch rend visible l'attribut footprint pour le mettre en valeur et il montre aussi le nouveau symbole pour le 2N3904 que j'ai créé avec mon npn-ebc.sym personnalisé comme je le décrit dans mon guide pour les transistors. Dans le circuit board.pcb mis à jour, comparez les apparences des contours du transistor avec l'original. J'ai aussi changé l'attribut footprint pour les résistances R102 et R103 dans one.sch avec mes éléments 1/8 watt R0w8 et 1/4 watt R0w4 pour illustrer les différences dans le style que vous pouvez avoir avec des éléments personnalisés. Vous pouvez aussi voir le style de R101 après que son empreinte ait été changée en 0.125W_Carbon_Resistor comme je l'ai suggéré au-dessus. Lorsque vous évaluez les différences de ces styles, vous remarquerez que j'ai gardé suffisament d'espace pour afficher la valeur et le texte refdes (le corps de l'élément 0.125W... est trop petit pour contenir le texte de R101) et j'ai voulu que le diamètre de la broche soit un tout petit peu plus large afin de faciliter la fabrication du circuit imprimé. L'espacement des broches de la résistance R0w4 est légèrement plus faible que pour R025 afin d'augmenter la densité de placement des composants.

images/two-sch-2.png
two.sch
images/board-6.png

Personnaliser les éléments m4 (Nécessite gsch2pcb >= 1.0)

Quelques mots d'abord, pour trouver les éléments m4 par défaut disponibles dans PCB. Je pense qu'il y a une documentation en cours d'élaboration dans le projet PCB mais à aujourd'hui, je ne peux rien vous indiquer et vous pouvez seulement jeter un coup d'oeil sur les noms de fichiers comme vous pouvez le faire avec les éléments de fichier. Non seulement ça mais plusieurs de ces éléments nécessitent des arguments et vous avez besoin de déterminer ce qu'ils sont. Donc tout ce que je peux dire est que le mieux à faire pour trouver ce qui est disponible est de lire les fichiers des éléments m4 et pour ce faire, vous devez connaitre la localisation d'installation des fichiers m4 de PCB. Dans la plupart des installations, elle sera dans le répertoire /usr/X11R6/lib/X11/pcb/m4 mais si la votre est ailleurs, vous devrez la chercher. Au fait, si ce répertoire est ailleurs, alors gsch2pcb ne trouvera pas vos éléments m4 dans les exemples ci-dessus et vous devrez ajouter ce répertoire dans votre fichier projet avec une ligne comme :
m4-pcbdir /path/to/pcb/m4
Lisez seulement les fichiers .inc dans le répertoire d'installation de m4. Par exemple, dans le fichier misc.inc, vous trouverez l'élément R025 que nous avons utilisé et il démarre avec :
# -------------------------------------------------------------------
# the definition of a resistor (0.25W) package
# $1: canonical name
# $2: name on PCB
# $3: value
define(`PKG_R025',
`Element(0x00 "$1" "$2" "$3" 120 30 0 100 0x00)
(
...
Les informations que vous pouvez extraire de ceci est qu'une macro m4 PKG_ nommée R025 est définie et demande 3 arguments. Maintenant, toutes les macros des éléments m4 de PCB prennent au moins 3 arguments et ils sont automatiquement remplis par gsch2pcb avec les attributs footprint de gschem pour le nom canonique, refdes pour le nom sur le PCB et value pour value. Le « nom canonique » utilisé dans ces fichiers m4 est simplement une ancienne manière de faire une référence à l'usage actuel des description de PCB comme cela été mentionné plus haut dans la section Terminology. Comme ces arguments sont automatiquement remplis, vous n'avez pas besoin de spécifier d'arguments supplémentaires à R025 lorsque vous l'utilisez comme footprint gschem. Mais regardons maintenant sur l'élément m4 suivant défini dans misc.inc:
# -------------------------------------------------------------------
# the definition of a SIL package without a common pin
# $1: canonical name
# $2: name on PCB
# $3: value
# $4: number of pins
define(`PKG_SIL',
`define(`MAXY', `eval(`$4' * 100 -50)')
Element(0x00 "$1" "$2" "$3" 160 10 3 100 0x00)
(
...
Depuis ceci, vous pouvez déterminer le boitier SIL que vous utilisez comme empreinte. Il a 4 arguments mais seuls les trois premiers sont traités automatiquement ; il y a donc un argument que vous devez donner lors de son utilisation. Vous venez d'avoir un flash et vous réalisez que c'est un boitier « Single In Line » ! Donc, au lieu de l'élément de CONNECTOR 2 1 spécifiant 1 colonne que nous utilisons dans notre exemple au-dessus, nous pouvons penser que nous allons utiliser un SIL 2. Mais nous aurions tord ! Car si nous lisons le corps de la macro, nous pourrions voir que si l'argument est 2, la seconde boucle ne peut pas l'utiliser. En fait, cela ne fonctionnera que pour un argument >= 4. Si vous lancez tout de même gsch2pcb et qu'il paraît bloqué dans une boucle infinie, un problème d'argument de macro m4 en est sûrement la cause. Si vous regardez dans misc.inc, vous aurez un résumé des éléments possibles que vous pourrez utiliser :
Package      Args you need to supply
SD 1 number of pins of a ZIP package
MULTIWATT15 0
R025 0
SIL 1 number of pins (we know now must be >= 4)
CSIL 1 number of pins
QFP132 0
LED 1 diameter of LED
DIODE_LAY 1 pin separation
AXIAL_LAY 1 pin separation
CRYSTAL 1 package width
OSC 0
ISA8 0
OVEN_OSC 0
RADIAL_CAN 1
SMD_BASE 2 length and width of surface mount device
SMD_CHIP 1 package length

Et ainsi de suite pour les autres fichiers .inc...

En réalité, l'initialisation de m4 est moins abordable pour les utilisateurs (vous ne pouvez pas créer les éléments graphiquement) et est plus compliquée (vous avez besoin de comprendre les macros m4) que l'approche simple des éléments de fichier. Donc pour la plupart des éléments personnalisés, je vous suggère de rester avec les éléments de fichier. Néanmoins, avec la méthode de macro m4, une seule définition d'élément qui prend des arguments vous donne un élément programmable qui peut être très utile pour les boitiers à grand nombre de broches. C'est en particulier très utile pour les boitiers d'IC avec des tailles et des nombres de broches variables, donc un bon exemple de l'utilisation d'éléments m4 serait de copier et de modifier à notre convenance les macro m4 existantes pour les boitiers d'IC (la macro DIL) dans des fichiers m4 que gsch2pcb ira chercher. Le fichier m4 peut être un de ceux-ci :

Pour ce tutoriel, j'utiliserais la première manière de pcb.inc, il faut donc copier dans le fichier macro existant :
cd /usr/X11R6/lib/X11/pcb/m4
cp dil.inc ~/gaf/myproject1/pcb.inc
cd ~/gaf/myproject1
Éditons maintenant le fichier pcb.inc que nous venons de copier et supprimons tout excepté la macro PKG_DIL. Changeons le nom du boitier en PKG_DILFAT car le changement que nous allons réaliser sera d'augmenter le diamètre des broches. Nous pouvons réellement laisser le nom seul et notre nouvelle définition écrasera l'ancienne mais pour l'instant, travaillons avec le nouveau nom. Changeons le diamètre des broches de 60 à 70 dans la ligne PIN. Une fois fait, voila ce que donnera le contenu du nouveau fichier pcb.inc :
# -------------------------------------------------------------------
# the definition of a dual-inline package N and similar types
# $1: canonical name
# $2: name on PCB
# $3: value
# $4: number of pins
# $5: package size (300, 600, 900 + 100 for socket space)
#
define(`PKG_DILFAT',
`define(`MAXY', `eval(`$4' / 2 * 100)')
define(`MAXX', `eval(`$5' + 100)')
define(`CENTERX', `eval(MAXX / 2)')
Element(0x00 "$1" "$2" "$3" eval(CENTERX + 20) 100 3 100 0x00)
(
forloop(`i', 1, eval($4 / 2),
`PIN(50, eval(i * 100 -50), 70, 28, i)
')
forloop(`i', 1, eval($4 / 2),
`PIN(eval(MAXX -50), eval(MAXY - i * 100 +50), 70, 28, eval(i + $4/2))
')
ElementLine(0 0 0 MAXY 10)
ElementLine(0 MAXY MAXX MAXY 10)
ElementLine(MAXX MAXY MAXX 0 10)
ElementLine(0 0 eval(CENTERX - 50) 0 10)
ElementLine(eval(CENTERX + 50) 0 MAXX 0 10)
ElementArc(CENTERX 0 50 50 0 180 10)
Mark(50 50)
)')
Lancez gschem one.sch et éditez l'attribut footprint des amplificateurs en DILFAT 8 300. Lancez alors gsch2pcb projet et gsch2pcb enlèvera l'élément DIL de board.pcb et ajoutez dans board.new.pcb un nouvel élément DILFAT dans notre fichier m4 personnalisé pcb.inc. Lancez pcb board.pcb et chargez board.new.pcb dans notre circuit. Déplaçons les nouveaux éléments avec les broches plus grosses à l'endroit laissé vacant par le retrait des ancien éléments.

Initialisation multi-utilisateurs (nécessite gsch2pcb >= 1.0)

Les exemples ci-dessus sont orientés pour un utilisateur seul avec plusieurs projets et des bibliothèques gschem et PCB personnelles sous son répertoire personnel. Voici comment initialiser plusieurs utilisateurs qui ont besoin de partager leurs ressources : Avec ce qu'il y a au-dessus, les utilisateurs auront accès aux bibliothèques complètes et n'auront besoin que de mettre des lignes schematics et output-name dans le fichier projet. Mais ils sont aussi libre d'avoir leur propre utilisateur additionnel et/ou des symboles et des éléments de bibliothèque spécifiques à un projet.

Fabrication d'un circuit imprimé

Un jour, je rajouterais quelques notes sur ma manière de fabriquer des circuits imprimés.

gsch2pcb Home
Bill Wilson bill--at--gkrellm.net