Ferdinand Piette

Bonjour à tous et bonne année 2014.

happyNewYear

Après un peu plus d'un an sans avoir écrit d'article, mes bonnes résolutions pour 2014 sont d’alimenter ce blog un peu plus souvent que ce que je n'ai pu faire ces derniers temps...

Ce ne sont pas, bien évidement, les projets qui manquent, mais bien le temps pour l'écriture des articles. Néanmoins, je compte reprendre en douceur avec une série d'articles qui vont décortiquer certaines puces permettant de convertir un signal audio numérique en signal audio analogique. Je pense commencer notamment avec la célèbre série de Texas Instrument : les PCM179x et PCM51xx. Ces puces sont l'élément central des cartes son et des DACs audio haut de gamme que l'on peut acheter dans le commerce. J'essayerai donc de décrire le fonctionnement et l'utilisation de ces puces. Si les résultats sont concluants, il se peut que j'essaye de designer un DAC complet autour de celles-ci.

Je souhaiterai au passage remercier le distributeur de composant Farnell qui a gentiment proposé de m'envoyer quelques-unes de ces puces afin que je puisse commencer ce projet.

A très bientôt, je l'espère !

Ferdinand Piette

Me revoilà avec un article expliquant la différence entre un amplificateur opérationnel et un comparateur.

Bien souvent, sur le net, on voit des schémas avec AOP branchés de manière à travailler en mode non linéaire, le plus souvent, en mode comparateur. Cette façon de faire est très mauvaise, car un AOP n'est pas fait pour comparer, mais, comme son nom l'indique, pour amplifier, et donc, pour travailler en mode linéaire.

L'Amplificateur Opérationnel (AOP)

Un AOP est un composant électronique qui a la particularité, comme son nom l'indique, d'amplifier la différence de potentielle entre ses deux entrées (inverseuse e- et non-inverseuse e+). Ce gain d'amplification est très très grand, souvent compris entre 80 et 120dB (soit une amplification comprise entre dix mille et un million de fois la différence de potentielle entre les deux entrées).

La première application à laquelle on peut tout de suite penser, serait de comparer deux signaux. La  différence étant amplifiée 100000 fois (dans la limite des tensions d'alimentations de l'AOP), si le premier signal est plus grand que le second, alors la sortie de l'AOP part en buté haute, sinon, la sortie part en buté basse. On a ainsi un AOP qui permet de comparer deux signaux.

Seulement, c'est la mauvaise façon de faire. En voici les raisons :

  • Un AOP possède une compensation en fréquence (filtre passe bas) pour permettre une meilleure stabilité en mode linéaire, mais du coup, l'aop nous limite en fréquence (à environ 100 - 200 kHz, des fois plus suivant le modèle de l'AOP).
  • Le temps que met l'AOP a basculer n'est pas définie. Il dépend de la compensation en fréquence (qui correspond à un filtre passe-bas d'ordre supérieur à 2). Arrivé à une certaine fréquence, non seulement la bascule prend un temps non négligeable, mais en plus, elle ne se déclenche pas instantanément, mais possède un retard.
  • Les tensions de sorties dépendent des tensions d'alimentation.
  • Enfin, les tensions de sorties ne valent pas les tensions d'alimentation, mais sont minorées par ce que l'on appelle la tension de déchet de l'AOP

Dans ces cas-là, si on ne peut pas comparer deux signaux, à quoi sert un AOP ? Et bien si on se débrouille pour connecter d'une manière ou d'une autre (fil, résistance, condensateur) la sortie sur l'entrée inverseuse de l'AOP, celui-ci va essayer de minimiser autant que possible la différence de potentielle entre les deux entrées. On dit alors que l'AOP travaille en mode linéaire.

Petit exemple tout simple, l'AOP monté en mode suiveur.

Ici, on a un signal qui arrive sur l'entrée non-inverseuse. L'entrée inverseuse est directement relié à la sortie par un fil.

Imaginons que la sortie soit initialement en buté positive. Dans ce cas-là, la tension sur l'entrée inverseuse (e-) est plus importante que celle sur l'entrée non-inverseuse (e+). L'AOP bascule alors en butée négative. Alors, la tension en e- est maintenant inférieure à celle en e+, la sortie rebascule dans l'autre sens, et ainsi de suite.

Seulement, on vient de voir qu'un AOP possède une compensation fréquentielle, ce qui fait qu'en réalité, la tension en sortie va se stabiliser et se synchroniser sur la tension sur la borne inverseuse. La sortie va donc recopier la tension sur la borne non-inverseuse. C'est ce qu'on appelle un montage suiveur.

Bien entendu, il existe plein de montage en mode linéaire, certains se comporte comme des suiveurs, d'autres, comme des amplificateurs, des intégrateurs, dérivateurs, ampli logarithmique, sommateurs, etc.
Si vous êtes intéressés par ces montages, je vous conseille de faire une petite recherche sur Google, il y a plein de site à ce sujet (par exemple : Wikipédia)

Pour en finir avec les AOP en mode linéaire, voici quelques règles qui permettent de calculer la tension de sortie en fonction des tensions d'entrée (en mode linéaire uniquement !)

  • Règle 1 : Il n'y a pas de courant qui entre dans l'AOP
  • Règle 2 : La différence de tension entre les deux entrées tend vers zéro (e+ = e-)

Avec ces deux règles là, il vous suffit bien souvent d'appliquer le théorème de Millman sur l'entrée inverseuse (e-), (en posant e- = e+), afin de trouver la sortie en fonction des entrées.

Le Comparateur

On a donc vu précédemment que l'on ne peut pas utiliser d'AOP pour comparer deux signaux. Heureusement, il existe pour ça des composants spécifiques, ce sont tous simplement des comparateurs. Contrairement à un AOP, un comparateur ne peut pas travailler en mode linéaire, mais uniquement en non-linéaire. Les avantages d'un comparateur sont :

  • Un temps de bascule fixe (souvent quelques nanosecondes)
  • Des tensions de sorties qui ne dépendent pas des tensions d'alimentation
  • Pas de compensation en fréquence, donc plus de problèmes lors d'une comparaison

Le seul inconvénient, c'est que l'on doit rajouter quelques composants (bien souvent une simple résistance de pull-up suffit) pour avoir une sortie exploitable. En effet, contrairement à un AOP, le comparateur ne fourni pas de puissance en sortie.

Voici le schéma du comparateur LM311. On remarque qu'il possède un transistor en sortie. C'est ce transistor qui vous permettra de choisir les tensions de bascule.

Ainsi, pour avoir une sortie qui vaille soit Vee, soit Vcc, il faut brancher l'émetteur (EMIT OUT) à Vee et relier le collecteur (COL OUT) à Vcc au travers d'une résistance (dit résistance de pull-up). La sortie du comparateur se fait au niveau de la sortie collecteur. On a donc le montage suivant.

R1 fait office de résistance de pull-up afin d'imposer un état haut à Vcc. Néanmoins, avec ce montage là, l'impédance de sortie n'est pas nul comme avec un AOP, elle vaut la valeur de la résistance R1.

Si vous voulez une impédance de sortie très petite, il vous faudra rajouter un transistor comme dans le schéma ci-dessous :

Ici, on retrouve notre résistance de pull-up, mais celle-ci va venir driver le transistor. Lorsque l'état est haut, le transistor est passant et la sortie est aussi à l'état haut (Vcc), avec une faible impédance de sortie.

Lorsque l'état est bas, alors le transistor est bloqué, le courant passe à travers la diode et la sortie est donc à l'état bas (Vee).

Petite comparaison

Pour illustrer mes dires, voici une petite comparaison entre un comparateur et deux AOP en mode non-linéaire.

Le comparateur est un LM311, branché en émetteur commun (émetteur de sortie à Vee plus une résistance de pull-up sur la sortie collecteur). Les deux ampli-op sont un TL081, qui possède un slew-rate plutôt correct (13V/µs), et un LM318 qui lui est environ quatre fois plus rapide.

Vcc et Vee sont les tensions d'alimentations (respectivement 12V et -12V). Un sinus à 100kHz est comparé à une référence à 0V. Les AOP et le comparateur sont donc censés basculer en buté positive lorsque le sinus est inférieur à 0V, et en buté négative lorsque le sinus est positif.

Ici, on constate en effet les problèmes. On n'est qu'à 100kHz, mais avec les deux AOP, le temps de bascule est non négligeable. Pire, avec le TL081, il y a un délai entre le passage à 0V du sinus et le basculement de la sortie. Dans ces deux cas, les tensions de sorties ne valent pas les tensions d'alimentation, on voit clairement apparaitre les tensions de déchet.

Alors qu'avec le comparateur, il n'y a aucun de ces soucis.

Conclusion

Maintenant vous savez pourquoi utiliser un comparateur plutôt qu'un AOP en mode non-linéaire.

Retenez donc ceci  : un ampli-op amplifie alors qu'un comparateur compare !

Bonjour à tous !

J'ai rédigé, il y a quelques temps déjà, un article expliquant comment implémenter un asservissement de type PID sans faire de calculs ! Après plusieurs retours de lecteurs, je me suis rendu compte que cet article, qui se voulait simple et compréhensible, n'était pas assez pratique. Il manquait un exemple concret ! C'est donc pour remédier à ce manque que je rédige l'article suivant.

Je me baserai donc sur ce que j'ai écrit dans l'article Implémenter un PID sans faire de calculs pour implémenter réellement l'asservissement d'un moteur à courant continu à l'aide d'une Arduino.

Lire la suite »

Voici un petit billet pour vous expliquer comment placer un via sur un PCB avec le logiciel Kicad. J’ai passé pas mal de temps à trouver la solution alors que celle-ci est toute simple.

Tout d’abord, qu’est-ce qu’un via ? Dans un circuit imprimé, il se peut que deux composants ne peuvent pas être reliés sans se croiser une piste. La solution consiste à placer un via de part et d’autre de la piste. Un via est donc un simple trou qui servira à placer un bête fil. Ainsi, on résout le problème de croisement des pistes.

Voici un exemple qui requiert un via :

Ici, R2 et R3 ne peuvent pas être reliés directement sans croiser la piste qui les sépare. Pour placer un via, commencez à tracer la piste à partir de R3, puis faites un clic droit=>Place Via.

Vous remarquerez que la couleur de la piste est passée de vert à rouge. La couleur rouge correspond à une piste tracé sur la face supérieure du PCB. Refaites un clic droit=>Place Via à l’endroit où il faut recommencer à tracer la piste sur la face inférieur. Terminez votre piste comme vous le faites d’habitude.

Vous avez placé votre via !

Lors de la gravure du PCB, seul les pistes vertes seront présentes (si vous gravez en simple face). Il vous faudra percer un trou au niveau des vias et y souder un fil pour faire le raccord.

Kicad fourni des bibliothèques d’empreintes afin que vous puissiez associer facilement une empreinte à la majorité des composants. Il vous suffit donc de trouver un composant réel ayant la même empreinte que celles proposées par le logiciel. Néanmoins, il est fréquent que vous ayez à utiliser un composant précis dont l’empreinte n’existe pas dans les bibliothèques fournies par défaut avec Kicad.

Nous allons donc voir dans cet article, comment créer une empreinte pour un composant réel. J’ai choisi de reproduire l’empreinte d’un potentiomètre de BiTechnilogies : le modèle P160KN-0QD15B10K pour être précis.

La datasheet du composant se trouve à cette adresse, mais je vais remettre ci-dessous les parties de la documentation qui nous intéresse.

Les étapes qui nous permettrons de créer l’empreinte de ce composant sont, à quelques différences près, semblable aux étapes de création du schéma d’un composant.

Commencez par lancer le logiciel d’édition de circuits imprimés PcbNew. Cliquez sur le bouton «Ouvrir Editeur de module» (cinquième icône en haut à gauche).

La fenêtre de l’éditeur s’ouvre. Cliquez sur le bouton «Nouveau Module» (cinquième icône en haut à gauche). Une fenêtre de dialogue apparait pour vous demander le nom du module.

Zoomez un peu sur la feuille de travaille et passez les unités de mesures en millimètre dans le menu latéral.

Commencez à placer les trous pour les pattes des composants. Cliques sur le menu Placer=>Pad cliquez sur l’écran. Placez ainsi les 3 pads séparés de 5mm chacun. Afin de mesurer l’espacement entre les pads, aidez-vous des indications de mesures en bas de la fenêtre, dans la barre de statut.

D’après la documentation, chaque patte du composant possède un diamètre de 1mm. Faites un clique droit sur les pads récemment créés et indiquez 1mm dans la ligne «Perçage pad X». Profitez-en pour élargie un peu le pad. Mettez 1,7mm dans la ligne «Forme dim. X». Regarder un peu toutes les options : vous pouvez, par exemple, modifier la forme du pad ainsi que la forme du trou de perçage.

Vous devriez avoir quelque chose qui ressemble à ceci :

Maintenant que les trous sont placés, il faut dessiner l’allure du composant pour que l’on ait une information sur son encombrement. La vue de la feuille de travail est une vue du dessus (et non du dessous !!). Tracez donc les contours des composants en fonctions des informations contenus dans la datasheet de ce composant. Le niveau de détail n’est pas très important. Le principal, c’est que l’on puisse reconnaitre le composant et que les proportions soient globalement respectées. Pour tracer les contours, utilises les outils de traçages disponibles dans le menu Placer.

Voilà le rendu final. Faites bien attention au numéro des pads ! Ils doivent être cohérent par rapport au composant !

Il nous reste maintenant à enregistrer le composant dans une bibliothèque.

Si vous souhaitez créer une nouvelle bibliothèque pour y mettre votre empreinte, cliquez sur le bouton «Créer une nouvelle librarie et y sauver le composant». Entrer le nom de la bibliothèque et choisissez l’endroit dans lequel vous voulez l’enregistrer.

Attention ! Après cette opération, l’empreinte du composant n’est pas encore enregistrée ! Seule la nouvelle bibliothèque a été créée. Il vous faut maintenant dire à Kicad où se trouve cette nouvelle bibliothèque. Pour cela, retournez sur la fenêtre principale de PcnNew et cliquez sur le menu Préférences=>Librarie. Cliquez sur le bouton Ajouter du bloc «Fichiers libraries modules» et indiquez où se trouve votre nouvelle bibliothèque.

Cliquez sur OK  et retourner sur la fenêtre de l’éditeur d’empreinte. Cliquez sur le premier bouton en haut à gauche «Sélection de la librarie active» et sélectionnez votre nouvelle bibliothèque (ou une autre déjà existante).

Vous pouvez maintenant enregistrer votre empreinte en cliquant sur le menu Fichiers=>Sauver le module en librarie active.

Votre empreinte est maintenant prête à être utilisé dans un de vos projets ! Si vous ne trouvez pas votre empreinte dans le logiciel CvPcb, pensez à inclure votre bibliothèque d’empreinte en cliquant sur le menu Préférences=>Librarie.

Kicad fourni des bibliothèques de composants afin que vous puissiez dessiner vos schémas de principe facilement. Néanmoins, il se peut que vous ayez besoin d’un composant qui n’est pas disponible avec les bibliothèques de bases de Kicad.

Nous allons donc voir dans cet article, comment créer un composant de type connecteur Jack stéréo.

Lire la suite »

Bonjour à tous !

Après une très longue période sans avoir écrit d'articles, je me remet tout doucement dans le bain en vous proposant un nouveau dossier qui a pour but de vous faire découvrir la suite de logiciel Kicad qui permet de concevoir ses propres circuits imprimés.

 

La première partie, composée de 5 articles, vous expliquera à l'aide d'un exemple, les différentes étapes de la conception d'un PCB.

La seconde partie regroupe des articles concernant certains points spécifiques du logiciel comme par exemple, la création d'empreintes ou de composants.

 

Découvrez dès maintenant le Dossier : Concevez vos PCB avec Kicad !

Cet article fait parti du dossier Concevez vos PCB avec Kicad

Jusque maintenant, nous avons réussi à réaliser un PCB de façon logicielle, mais maintenant, il faut le réaliser en vrai ! Pour cela, il vous faut générer des fichiers en fonction de la méthode de gravure.

Gravure chimique

La gravure chimique est le procédé le plus couramment utilisé par un amateur pour graver ses circuits imprimés. Pour ce type de gravure, vous avez besoin d’un seul fichier qui s’appelle le « typon ». Ce typon représente en couleur noir le cuivre qui devra rester sur la plaque et en blanc le cuivre qui devra être enlevé. Pour générer ce fichier, toujours dans le logiciel PcbNew,  cliquez sur le menu Fichiers=>Imprimer.

Vérifiez bien que la face du «Dessous» est sélectionnez, choisissez une «Echelle Précise 1» afin de respecter les proportions, puis cliquez sur «Imprimer». Vous obtenez ainsi le typon (directement imprimé sur un transparent ou alors dans un fichier PDF si vous avez une imprimante PDF virtuelle).

Gravure numérique

Si certains d’entre vous ont la possibilité d’utiliser une fraiseuse numérique pour graver le PCB, il vous faudra générer toute une série de fichiers en fonction du logiciel de votre fraiseuse.

Premièrement, il serait peut-être intéressant de tracer le contour de votre PCB. Pour cela, sélectionner «Contours_PCB» dans la liste à droite du logiciel.

Cliquez sur le menu Placer=>Ligne ou polygone et tracer les contours du PCB (en suivant la zone du plan de masse).

Pour générer les fichiers en questions, cliquez sur le menu Fichiers=>Tracer.

Sélectionnez les options en fonction de ce que demande votre graveuse (en général, il vous faut des fichiers de type Gerber). Voici un exemple de configuration pour la fraiseuse disponible sur mon lieu de travail :

Pour générer les fichiers, cliquez sur «Tracer».

S’il vous faut aussi les fichiers de perçages, cliquez sur «Créer Fichier de Perçage». Comme précédemment, sélectionnez les options en fonction de votre graveuse. Par exemple :

Cliquez sur OK pour générer le fichier de perçage. Il ne vous reste plus qu’à envoyer les fichiers à votre fraiseuse numérique !

Cet article fait parti du dossier Concevez vos PCB avec Kicad

La dernière étape consiste à disposer les composants sur le PCB et à tracer les pistes reliant les composants sans que celles-ci ne se touchent !

Pour cela, lancez le troisième logiciel «Pcbnew» à partir de la fenêtre principale de Kicad.
Rebelote, le logiciel vous dit que le fichier en «.brd» n’existe pas encore. Faites donc un Ctrl+S.
Vous arrivez sur un écran vierge.

Afin d’afficher les empreintes de vos composants, il vous faut charger la netlist du projet. Pour cela, cliquez sur le bouton «Lire Netliste» (bouton en haut à droite).

Cliquez sur «Lire Netliste Courante» puis fermez la fenêtre. Toutes les empreintes se retrouvent alors en haut à gauche de la feuille de travail, en vrac.

Il va donc falloir retenir quelques raccourcis clavier qui vous faciliterons grandement la vie :

  • «M» pour déplacer une empreinte
  • «R» pour la faire pivoter

Disposez les empreintes comme ci-dessous :

Les traits blancs symbolisent les liaisons entre les composants. Il nous faut maintenant tracer les pistes afin de relier les composants selon les traits blancs.

Dans la barre de tâche à gauche de l'écran, si le bouton «In» (Unité en pouces) est sélectionné, choisissez le bouton du dessous «mm» (Unités en millimètres).
Toutes les mesures sont donc passés en millimètres.

D’une manière générale, ne tracez pas de pistes trop petites. Une piste de 1mm ou plus est souvent un bon choix.

Si vous regardez la taille des pistes par défaut (liste déroulante en haut à gauche), vous remarquerez qu'elles sont d'épaisseur 0.2mm, ce qui est trop petit.

Pour changer la taille des pistes, cliquez sur le menu Règles de Conception=>Règles de Conception puis allez dans l’onglet «Règles Générales».

Dans cet onglet, rajoutez une épaisseur de piste de 1mm puis cliquez sur OK.

En haut à gauche du logiciel, cliquez sur le menu déroulant et sélectionnez «Piste 1,001 mm»

On est maintenant fin prêt à tracer nos pistes !

A droite du logiciel, vous pouvez voir une liste de «Couche». Pour tracer les pistes, il nous faut sélectionner la couche du «Dessous». Dans notre exemple, nous allons créer un PCB à une seule couche, mais sachez qu’il est possible de faire du double face (pour peu que vous disposiez d'un moyen de gravure double face) !

Cliquez sur le menu Placer=>Piste et reliez les composants entre eux SANS vous occuper de la masse pour le moment.

Un clique sert à commencer une piste et un double clique sert à terminer la piste. Deux pistes ne peuvent pas se croiser. Essayez, quand vous le pouvez, de ne pas faire d’angle aigue, mais de toujours y aller progressivement.

Maintenant, il ne nous manque plus qu’à relier les masses entre-elles. Pour cela, au lieu de les relier manuellement, nous allons créer un plan de masse : tout ce qui n’appartient pas à une piste sera alors considéré comme appartenant à la masse.

Pour cela, cliquez sur le menu Placer=>Zone et cliquez en haut à gauche du circuit. Une fenêtre apparait et vous permet de choisir les options de la zone.

Cette zone sera le plan de masse. Elle recouvrira donc toute la face inférieure du PCB. Sélectionnez donc «Dessous» dans la boite «Couche». Le plan de masse correspond à la masse du montage. Sélectionnez donc «GNDPWR» dans la boite «Net» et cliquez sur Ok.

Tracez maintenant un rectangle autour du montage. Faites un double clique pour valider la zone.

Faites un clique droit sur la zone et cliquez sur « Remplir Zone ».

Et voilà ! Votre plan de masse relie maintenant tous les points de masses du montage.

Créer un plan de masse est une bonne habitude à prendre pour TOUS vos montages ! Ça permet d’une part d’utiliser moins de composants chimiques ou moins d’outils lors de la gravure car tout le cuivre restera sur le PCB et ne sera pas enlevé ! De plus, avoir un grand plan de masse permet une plus grande stabilité vis-à-vis des parasites.

Vous avez réalisez votre premier PCB ! Kicad vous permet de visualiser le rendu final en 3D. Pour cela, cliquez sur le menu Affichage=>3D Visu. (Dans notre cas, le modèle 3D du régulateur n'existe pas.)

Vous avez donc terminé la conception du circuit imprimé ! Il ne vous reste plus qu'a générer les fichiers qui permettront de réaliser la gravure du circuit.

Cet article fait parti du dossier Concevez vos PCB avec Kicad

Nous passons maintenant à la seconde phase qui consiste à lier à chacun des composants du schéma une empreinte. L’empreinte d’un composant représente la place qu’il occupe sur le PCB ainsi que l’emplacement de ses pattes.

Pour cela, il vous faut lancer le second logiciel de la suite Kicad en cliquant sur l’icône «CvPcb» dans la fenêtre principale de Kicad. C'est ce logiciel qui va nous permettre d'associer empreintes et composants.

Comme pour le premier logiciel, vous êtes informé qu’il est impossible de trouver le fichier «.cmp». Cliquez sur ok et cliquez sur l’icône «Sauver fichiers netlist et cmp» (second bouton en partant de la gauche) pour remédier au problème.

A gauche, vous avez la liste des composants que vous avez placés sur votre schéma et à droite, une liste d’empreintes qui pourrait potentiellement répondre à vos besoins.

Pour visualiser l’empreinte que vous avez sélectionnée dans la liste de droite, cliquez sur le bouton «Affichage empreinte sélectionné» (quatrième bouton en partant de la gauche).
Une nouvelle fenêtre apparait alors vous permettant de visualiser l’empreinte.

J’ai donc choisi des condensateurs chimique à sorties axiales pour les capas polarisées

  • L’empreinte CP8 pour la capa 100 microFarad
  • L’empreinte CP6 pour la capa 10 microFarad

Pour les capas non polarisés, j’ai pris des modèles à film plastique

  • L’empreinte C2 pour les capa 10 nanoFarad

Pour les autres composants :

  • L’empreinte D3 pour les deux diodes
  • L’empreinte LED-3MM pour la LED (ou LED-5mm si vous n’avez que des leds 5mm classiques)
  • L’empreinte R4 pour la résistance
  • L’empreinte LM78XXV pour le régulateur 7805
  • L’empreinte PIN_ARRAY_2X1 pour les deux connecteurs

Une fois vos empreintes sélectionnées, sauvegardez et quitter le logiciel.

Il ne vous reste plus qu'a commencer la réalisation de PCB en tant que tel !

© 2011-2012 Ferdinand Piette