Répondre à la discussion
Page 1 sur 3 12 DernièreDernière
Affichage des résultats 1 à 30 sur 78

[Terminé] Générateur de fonctions "junior"




  1. #1
    Tropique

    [Terminé] Générateur de fonctions "junior"

    ATTENTION!

    Pour ceux qui ne sont pas interressés par la discussion du projet, mais uniquement par la réalisation, celle-ci commence en #45 ici:
    http://forums.futura-sciences.com/sh...post1904222#45





    Hello,

    Depuis que les XR2206, ICL8038 et autres MAX038 ont cruellement été "obsolétisés" par leurs parents respectifs, c'est toute la communauté des amateurs d'électronique qui est en deuil...

    Pour pallier à ce manque, je vais vous proposer un petit projet de vacances qui permettra d'émuler ces circuits, et de construire un petit générateur, simple mais de bonne qualité, avec une démarche minimaliste: pas de fioritures, pas de fonctions compliquées, pas de décoration à base de LEDouilles qui flashouillent, rien que l'essentiel.
    Ce projet n'utilisera que des composants standards, bon marché, sourcés par des dizaines fabricants, pour éviter les mésaventures des circuits précités.
    Toujours dans l'optique amateur-débutant, l'alimentation devra se faire avec une tension basse, unique, et sera donc éventuellement compatible avec une alimentation par piles ou un adaptateur mural bon marché.
    Le résultat sera un appareil sans prétention, mais fiable et efficace, couvrant 99% des besoins en génération de signal de l'expérimentateur, depuis la BF jusqu'à la HF.

    Pour ce projet, je vais adopter une démarche différente de celle des projets que j'ai déjà proposés: il s'agissait toujours de travaux aboutis, réalisés au préalable, et éprouvés, parfois durant des années.
    Ici, rien de concret n'existe à l'heure actuelle, et je vais créer les différentes parties du projet en temps réel, et en interagissant avec ceux qui le désirent. Je souhaite donc que ce soit une oeuvre participative et collective, et chacun est invité à mettre sa pierre à l'édifice, ou au moins à faire des remarques (constructives).

    Je rassure tout le monde, en particulier les modérateurs, ce projet ne tournera en aucun cas en "eau de boudin", même si la participation n'est pas celle escomptée, j'ai les épaules assez larges pour mener l'entreprise à son terme, et même si rien de concret n'existe actuellement, j'ai dans la tête une idée assez précise de ce que je compte obtenir.


    Il est temps d'entrer dans le vif du sujet.

    Voyons d'abord comment est construit un générateur de fonctions:

    Intégrateur
    A la base, il y a un oscillateur créant des triangles grâce à un intégrateur. Celui-ci peut-être réalisé de différentes manières, les deux plus courantes étant l'intégrateur opérationnel, utilisant un ampli inverseur à grand gain, et la charge/décharge d'un condensateur par des courants constants.
    Quand un fonctionnement à fréquence élevée est requis, c'est généralement cette dernière solution qui est retenue: à fréquence élevée, les caractéristiques d'un ampli opérationnel se dégradent, et ne permettent plus la génération d'un triangle correct.
    C'est la première méthode que nous utiliserons.

    Détecteur de niveau / Trigger
    Pour détecter quand le triangle a atteint le niveau correct, il faut un circuit qui fasse la détection, et inverse périodiquement le processus de charge/décharge. Ce peut être un trigger de schmitt, ou un comparateur à fenêtre associé à une bascule. Nous utiliserons un trigger de schmitt.

    Conformateur sinus
    Nous avons maintenant le triangle (sur le condensateur), le carré (en sortie du trigger), il reste à synthétiser le dernier élément de la trilogie classique: le signal sinus.
    Traditionnellement, cette fonction est basée soit sur des conformateurs à diodes, qui approximent le sinus par des segments de droites, soit sur des éléments non linéaires. Pour cette fonction, à peu près tout ce que l'électronique compte de non-linéaire a été mis à contribution dans le passé: jFETs, diodes zener, MOS, paires différentielles, multiplicateurs analogiques, etc.

    Ampli de sortie
    Il faut ensuite amener la forme d'onde sélectionnée au niveau et à l'impédance correcte. C'est le rôle de l'ampli de sortie, associé à son atténuateur. L'impédance de sortie est traditionnellement de 50ohm, et c'est aussi cette valeur qui sera retenue ici.

    Dans la suite, nous commencerons à examiner plus en détail les blocs de fonction.

    A bientôt...

    -----

    Dernière modification par gienas ; 29/09/2008 à 15h14. Motif: Ajouté le "warning" du début
    Pas de complexes: je suis comme toi. Juste mieux.

  2. Publicité
  3. #2
    letitandu01

    Re : Générateur de fonctions "junior"

    salut
    un gbf miniature et facile a réalisé existe deja, c'est avec le max38
    et j'ai mis un lien vers la doc dans le sujet outils du forum projet electronique.
    et il y en a pour moins de 100€.
    la vie est un long chemin plein d'obstacles

  4. #3
    Tropique

    Re : Générateur de fonctions "junior"

    Certes, mais une fois que les revendeurs auront épuisé leurs stocks, ce sera fini pour de bon:
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.


  5. #4
    PIXEL

    Re : Générateur de fonctions "junior"

    il est sur que ce fabuleux circuit , qui était ajusté UN PAR UN à la sortie de fonderie avant encapsulage , est devenu un dinosaure à cette époque de produits cheaps et tongs...

    bon courage pour cette étude !

  6. #5
    Tropique

    Oscillateur

    A tout seigneur, tout honneur, voyons en premier lieu le coeur du générateur.

    Il va falloir sélectionner un type de trigger de schmitt à la fois rapide, précis.... et peu coûteux. C'est probablement la décision technique la plus importante du projet, car c'est en grande partie de cet élément que vont dépendre les performances du générateur.
    J'ai opté pour un trigger en techno HCMOS, l'humble 74HC14.
    C'est un choix qui peut surprendre, mais voyons objectivement le pour et le contre:

    Pour:
    • Prix
    • Disponibilité
    • Haute impédance d'entrée
    • Rapidité
    • Stabilité
    Ces deux derniers points demandent un éclaircissement: ce circuit peut être considéré comme rapide, car rebouclé directement sur lui-même, il oscille facilement à plusieurs dizaines de MHz. Réaliser l'équivalent avec du discret ou des comparateurs rapides demanderait des efforts significatifs.

    La stabilité ne semble pas à priori un des points forts de ce circuit: tous les paramètres, tels que temps de propagation et résistance de sortie varient avec la température. Il y a par contre un fait peu connu, inhérent à la technologie CMOS, c'est que les seuils de trigger ont une extrême stabilité en température. Donc, si l'on a une tension d'alimentation bien stable et que les composants externes sont également de qualité, on aura un oscillateur très stable.

    Contre:
    • La dispersion initiale des seuils
    C'est le seul inconvénient sérieux, mais il est de taille. On ne sait pas à priori quelle va être l'amplitude du triangle, ni à quelle fréquence exacte il va osciller.
    C'est assez ennuyeux, mais comme c'est le seul souci, on va faire le nécéssaire pour s'en accommoder. En pratique, chaque gamme aura un condensateur d'appoint qui permettra d'arriver à la fréquence souhaitée quel que soit le circuit utilisé, et en aval, un ajustable "normalisera" l'amplitude pour la suite du traitement. Rien de réellement catastrophique donc, en regard des avantages apportés par cet IC.

    Il va maintenant falloir créer un oscillateur adéquat autour de cet élément. Pour cela, examinons d'abord le fonctionnement d'un oscillateur simple, classique, et les modifications à apporter pour en faire un vrai générateur de fonctions: voir SchmittOsc

    On constate un certain nombre de choses:
    -Le triangle n'est pas linéaire: les charges/décharges du condensateur sont faites avec une simple résistance, et il en résulte des segments d'exponentielle.
    -Le triangle n'est pas symétrique: les seuils n'étant pas symétriques autour de 2.5V, les courants de charge et de décharge sont aussi différents, d'où l'assymétrie.

    Ces deux problèmes pourront trouver un remède unique: si les charges/décharges se font par des sources de courant, on va à la fois linéariser les pentes, et les rendre indépendantes du niveau, et donc des seuils.

    Il va également falloir songer à une méthode de réglage de la fréquence: il ne serait pas pratique de rendre le condensateur ou la résistance variable, et de plus, tout générateur qui se respecte a une commande en tension.

    Voici donc le circuit modifié pour tenir compte de ces points: CmosVCO .
    Q1 et Q3 sont les sources de courant (+) et (-), et elles sont commutées via leurs émetteurs et les résistances R5 R6. Le fonctionnement en base commune et la commutation par les émetteurs permettent de n'ajouter qu'un délai négligeable comparé à une simple résistance.
    D'autre part, la très haute impédance de sortie en base commune permet de garantir une linéarité excellente du triangle, comme le montre la simu. Je souhaite arriver à une linéarité globale de 0.1%, objectif qui est ici facilement atteint.
    La fréquence va être fixée par le courant dans R1 R3, et donc par la tension à leurs bornes.
    Dans le cas de R3, cette tension est l'image de celle sur R4, puisque les deux transistors ont la même tension de base, or la tension sur R4 est asservie par l'AOP pour égaler exactement la tension d'entrée (et de contrôle) V2. D'autre part, le courant dans Q2 est "mirroré" par Q3 et Q4, ce qui assure la symétrie des courants de charge/décharge, et donc celle de la forme d'onde.
    En résumé, la tension V2 va contrôler linéairement la fréquence de sortie.

    A suivre....
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  7. A voir en vidéo sur Futura
  8. #6
    letitandu01

    Re : Oscillateur

    merci pour la precision pour le max38 car quand j'ai ergardé (en mai) ils en produisaient encore, il est possible que ce soit due à un manque de demande,
    car le mien il es sur plaque a essay et je suis monté a 36Mhz, il fait de des triangle parfait en plus.

    mais bon au final ton sujet est bien utile car il faut bien pouvoir séquipé.

    je suppose que tu l'as deja réalisé???
    la vie est un long chemin plein d'obstacles

  9. #7
    Tropique

    Oscillateur: suite

    Petite précision avant de continuer: le MAX038 était un circuit remarquable, mais pas tellement bon marché: autour d'une trentaine d'euros. Ici, le but est de réaliser le générateur complet pour environ la moitié de ce prix. Il ne faut pas oublier que, pour beaucoup d'amateurs jeunes et peu fortunés, 100€ représente un budget significatif (que les gros salaires quittent la salle!).

    Continuons avec notre oscillateur. Car nous n'en avons pas terminé, loin de là. En électronique, comme dans tout domaine technique, il ne faut pas être trop vite satisfait. Nous allons donc "jouer" un petit peu avec notre montage, pour évaluer ses performances. Pour le moment, cela va se faire sur simulateur, puisque c'est plus simple, et qu'on en est qu'au stade du dégrossissage. Lorsque les résultats simulés seront satisfaisants, il sera temps de passer à une maquette physique, pour voir quelles corrections sont nécéssaires.

    On va d'abord "toiletter" un peu le circuit d'hier afin de l'adapter à nos exigences.

    En effet, je désire atteindre une fréquence maximale de 10MHz, et je souhaite que la commande du VCO se fasse de 0V à 1V fond d'échelle. Pourquoi ces valeurs, et pourquoi même se préoccuper d'avoir des valeurs nettes et rondes? Après tout, il s'agit d'une commande interne, et si elle se faisait p.ex. entre 1.244V et 4.37V, cela ne changerait rien.
    Si je tiens à normaliser ces valeurs, c'est pour permettre d'utiliser facilement le VCO en tant que tel, comme bloc de fonction autonome. Cela peut être très utile lorsqu'on fait "sur table" une maquette de PLL p.ex.: les équations ont des beaux coéfficients bien propres, et on ne risque pas la migraine en faisant des calculs mentaux pour changer un paramètre p.ex.
    En plus, un tel VCO peut aussi se montrer utile si on s'intéresse à la musique électronique et au bio-feedback, entre autres.
    Et comme ça ne coûte pas un eurocent de plus, on aurait tort de s'en priver.
    La gamme de 0-1V semble faible, mais elle peut facilement être adaptée avec un simple diviseur résistif, pour faire du 0-10V p.ex. Le contraire exigerait un ampli.
    Autre adaptation, l'alimentation va se faire en 6V: c'est le maximum pour le 74HC14, et ça permettra d'optimiser la vitesse et la dynamique. Et c'est compatible avec une pile de 9V, moyennant un régulateur LDO.

    Voici donc le circuit adapté, NewVCO.
    On peut constater, que pour 0.3V d'entrée on a bien 3MHz de sortie.
    Nous allons continuer en testant les extrêmes de la gamme. On commence par le bas, avec 0.1V: NewVCO l.
    Et là, premier couac: on s'attendrait à obtenir 1MHz, au lieu de cela, on est à 538KHz....
    Ne nous décourageons pas, et testons le haut de la gamme, 1V: NewVCO h.
    Et là, nouvelle déconvenue, au lieu des 10MHz escomptés, on n'est qu'à 8.46MHz...
    Et oui, c'est ça la vraie vie: la route est longue, la pente est forte, et rien n'est simple ni acquis d'avance.
    On va faire une petite pause, le temps de vous laisser réfléchir aux problèmes, et peut-être de trouver une solution...

    A+
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  10. Publicité
  11. #8
    thomas84

    Re : Oscillateur: suite

    Bonjour,

    ce projet m'interesse et j'essaie de le suivre en même temps que ton avancement. J'aurais deux questions sur les simulations.
    1) Tout d'abord au niveau de l'alimentation 6V. J'aimerais avoir la certitude que VCC est utilsé pour récupérer le signal provenant de V1 pour être réinjecter sur l'alim du LM324

    2)Ensuite sur mes simulation j'obtiens un résultat différent du tien. Mon signal est disymétrique (cf image jointe). A mon avis cela vient du modèle du 74HC14 que j'utilise (celui de mon simulateur). Aurais tu le modèle que tu utilise pour ta simulation ou alors mon schéma comporterais-il une erreur (a priori non mais bon).
    Comme dfférence j'ai : différence des niveaux de tensions, A 1volt de commande j'ai bien une fréquence propre de 10MEG par contre à 0.1 volt j'ai rien du tout

    Merci
    Images attachées Images attachées
    Dernière modification par thomas84 ; 07/08/2008 à 12h10.

  12. #9
    Tropique

    Re : Générateur de fonctions "junior"

    Tu as inclus deux fois le schéma, je ne vois pas ta forme d'onde. Le modèle de 74HC14 est le suivant:
    Code:
    *
    *
    * Schmitt-inverter gate
    * tpd 41n/15n/12n
    * tr 19n/7n/6n
    * VT+ 1.18/2.38/3.14
    * VT- 0.52/1.4/1.89
    .SUBCKT 74HC14  A Y  VCC VGND  vcc1={vcc} speed1={speed} tripdt1={tripdt}
    .param td1=1e-9*(15-3-3)*4.0/({vcc1}-0.5)*{speed1}
    *
    XIN  A Ai  VCC VGND  74HC_IN_S_1  vcc2={vcc1} speed2={speed1}  tripdt2={tripdt1} 
    *
    A1  Ai 0 0 0 0  Yi 0 0  BUF  tripdt={tripdt1}  td={td1}
    * 
    XOUT  Yi Y  VCC VGND  74HC_OUT_1X  vcc2={vcc1} speed2={speed1}  tripdt2={tripdt1}
    .ends
    *
    Et le 324 est bien alimenté par les 6V.

    Continuons, et essayons d'analyser ce qui cause les défauts constatés. Voyons d'abord ce qui se passe dans le bas de la gamme, voir défaut l:
    Si l'on examine le signal carré, on remarque que les niveaux sont différents de la tension d'alimentation: il y a un décalage d'environ 456mV de part et d'autre. L'origine de ce décalage est facile à comprendre: la sortie est chargée par R5 et R6, qui la tirent vers l'état opposé. Comme les transistors de sortie ont une résistance non-nulle, cela se traduit par cette tension de 456mV.

    Comment cela peut-il influencer la fréquence?
    Supposons p.ex. que la sortie soit à l'état bas: Q3 est mis hors service par R5, et la source de courant basée sur Q1/R3 est active. Si la sortie de porte avait une résistance nulle, R6 viendrait se mettre en parallèle avec R3 et tendrait à augmenter le courant. Mais, en réalité, le potentiel de 456mV se trouve appliqué à l'entrée du diviseur résistif formé par R6 et R3, et va appliquer une tension résiduelle sur l'émetteur de Q1. Cette tension va donc valoir 0.456*100/(100+390), soit environ 93mV. Donc, en principe, lorsque cette tension sera atteinte, aucun courant ne devra circuler, et la fréquence sera égale à 0.

    On est donc confronté simplement à un décalage de zéro. Un certain nombre de remèdes sont envisageables:

    -On peut laisser les choses en l'état, et ajuster la butée basse du réglage de tension pour tenir compte du décalage. J'exclus cette option, puisque je désire "normaliser" la tension d'entrée.
    -On peut additionner un décalage opposé à la tension de contrôle. Je préfère ne pas utiliser cette solution pour deux raisons:
    -En l'absence d'alimentations négatives, il faudrait chipoter un peu et rajouter un étage à AOP.
    -La tension d'offset va dépendre de la résistance de sortie de la porte, qui possède un coéfficient de T° positif assez élevé. Il en résulterait une stabilité du zéro et des basses fréquences assez médiocre.
    -Enfin, on peut mettre les résistances R1 et R3 hors circuit lorsqu'elles sont inactives grâce à des diodes. Puisque la tension de déchet vaut au maximum 0.5V environ, il suffira d'en mettre une seule pour que le courant devienne négligeable. On peut voir le résultat sur NewVCO1: la fréquence est maintenant de 1.289MHz, donc trop élevée, mais n'oublions pas que c'est l'ensemble des fréquences qui a été décalé vers le haut, ce n'est donc pas nécéssairement incorrect, et par la suite, il sera toujours possible de rectifier l'ensemble des fréquences.

    A suivre....
    Images attachées Images attachées
    Dernière modification par gienas ; 07/08/2008 à 16h00. Motif: Rétabli image récalcitrante
    Pas de complexes: je suis comme toi. Juste mieux.

  13. #10
    Tropique

    Re : Générateur de fonctions "junior"

    Il reste maintenant à rectifier le second défaut.
    Pour en identifier la cause, il suffit d'examiner attentivement les images NewVCO l et NewVCO h du message #7: on remarque que l'amplitude du triangle passe de moins de 1.4V càc en l, à 2.3V en h.
    Il est clair que c'est cette augmentation d'amplitude qui cause des soucis: si la pente du triangle est correcte, mais que son amplitude augmente, sa fréquence ne peut que baisser.

    S'agit-il d'une modification des seuils du trigger à fréquence élevée?
    Non, c'est tout simplement le temps de propagation qui est en cause: quand l'entrée détecte qu'un seuil est atteint, elle transmet l'information vers la sortie, mais ce transfert n'est pas instantané, et pendant tout ce temps, le condensateur continue à intégrer; il y a donc un dépassement, d'autant plus élevé que la pente est forte.
    Ce problème n'est pas particulièrement lié à ce générateur: il existe depuis que les générateurs de fonction existent. La solution traditionnelle est de modifier dynamiquement les seuils du trigger de schmitt, de façon à anticiper le temps de propagation.
    Dans les designs discrets, c'était fait en général en mettant un petit condensateur d'avance de phase en parallèle avec une des résistances du trigger de schmitt. Dans les circuits intégrés, on utilise des techniques ayant des effets similaires.

    Malheureusement, ici, rien de tout cela n'est possible: le trigger est une "boîte noire" à l'intérieur de laquelle on n'a pas accès. Les corrections traditionnelles ne sont donc pas applicables.
    Comment allons-nous pouvoir arriver au même résultat par des moyens non classiques?

    Vous le saurez en lisant le prochain épisode.

    A suivre....
    Pas de complexes: je suis comme toi. Juste mieux.

  14. #11
    letitandu01

    Re : Générateur de fonctions "junior"

    c'est vrais que le max 38 coute cher mais le reste ne coutte pratiquement rien.

    tu parle en épisode, c'est de la sf? ha non du FS electronique.

    bon j'attend patiament la suite.
    la vie est un long chemin plein d'obstacles

  15. #12
    Kr3st

    Re : Générateur de fonctions "junior"

    Citation Envoyé par letitandu01 Voir le message
    c'est vrais que le max 38 coute cher mais le reste ne coutte pratiquement rien.

    tu parle en épisode, c'est de la sf? ha non du FS electronique.

    bon j'attend patiament la suite.
    Le max038 n'est plus fabriqué, donc je ne vois pas l'intérêt de continuer à développer des circuits l'utilisant.
    Impossible à dépanner puisque pratiquement plus disponible.


    Projet très interessant, j'attend la suite également

  16. #13
    thomas84

    Re : Générateur de fonctions "junior"

    Salut!

    Alors j'ai une idée pour résoudre le problème, même si je pense être dans le faux je me lance.

    N'est-il pas possible de mettre un "circuit de commande" (transistor ou autre) sur le trigger pour empécher la capa d'intégrer quand le seuil est atteint?
    Si la solution va dans ce sens là j'avoue que je n'ai aucune idée de comment placer cette commande dans le schéma.
    Si la réponse ne va pas dans ce sens je m'excuse pour les absurdité que j'ai dites mais j'essaye de pas laisser tout le boulot à tropique lol.

    Cordialement

  17. #14
    Tropique

    Re : Générateur de fonctions "junior"

    Résumons le problème de l'épisode précédent:

    Il nous faut trouver une méthode pour modifier les seuils du trigger, de façon proportionnelle à la fréquence, précise, et sans accéder à la circuiterie interne du trigger. Exigences subsidiaires: il faut que cette méthode soit simple et ne coûte pas plus de trois sous.

    L'altération des seuils peut se faire grâce à l'addition de contre-réaction: un trigger de schmitt est fondamentalement un dispositif à réaction positive, et si on lui applique une réaction négative, on va réduire l'hystérésis et donc l'écart entre les seuils. C'est vite dit, mais en pratique, cela semble horriblement compliqué de venir greffer un tel "machin" sur l'oscillateur existant sans tout bouleverser.
    Et pourtant, avec un peu d'astuce, il est possible de trouver une solution lumineusement simple: voir VCO 10Meg.
    Une simple résistance a été rajoutée en série avec le condensateur; elle ne change rien aux courants de charge, puisque ceux-ci sont déterminés par les sources de courant. On peut voir par contre l'effet sur l'entrée du trigger (trace rouge): le courant de charge qui passe par cette résistance y développe une chute de tension, alternativement positive et négative, qui vient s'opposer à l'hystérésis. L'effet est d'avancer les instants de commutation, et donc de compenser les délais internes.
    La beauté du procédé, outre sa simplicité, c'est qu'il s'adapte précisément et automatiquement à la fréquence de commande, puisque celle-ci dépend du courant, et que celui-ci passe par la résistance.
    On voit que la fréquence est de 13.57MHz, donc sensiblement trop élevée, mais à ce stade, nous nous intéréssons aux rapports de fréquences, plutot qu'à la valeur absolue.
    Voyons ce qui se passe à 0.1V d'entrée: VCO1Meg.
    La fréquence est maintenant de 1.38MHz, on est donc à peu de chose près dans le bon rapport.

    Maintenant que notre "moteur" de génération est fonctionnel, il va falloir s'intérésser aux détails pratiques: le dimensionnement des composants pour aboutir aux valeurs cibles, mais aussi les circuits périphériques: comment exploiter valablement les signaux de sortie, comment générer la tension de commande, quelle structure de sélection de gamme adopter, etc.

    C'est ce que nous verrons dans le prochain épisode de:

    ------------The Generator----------

    Et en attendant, pour patienter, voici un autre "Generator":
    http://generatorblog.blogspot.com/

    A suivre...
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  18. #15
    Tropique

    Re : Générateur de fonctions "junior"

    Alors j'ai une idée pour résoudre le problème, même si je pense être dans le faux je me lance.
    Il n'y a pas de honte à essayer de proposer des solutions constructives....


    Continuons, avec une version qui commence à s'approcher du circuit final: VCOprov.

    Les valeurs de sources de courant sont adaptées, le condensateur de timing a été scindé, C3 représentant un condensateur qui sera ajustable dans le circuit réel; la résistance de compensation R9 a une valeur assez biscornue, on verra à quoi on aboutira avec le modèle physique.
    Les valeurs modifiées donnent à peu près les bonnes valeurs de fréquence, à quelque pourcents près. Au stade de la simulation, il serait stérile de se ruiner le pas de vis à essayer d'obtenir des valeurs exactes au millième près, tout serait de toutes manières à recommencer au niveau de la maquette. Concentrons nos efforts sur des choses utiles.

    On peut discuter des valeurs de courant/capacité qui ont été choisies pour arriver aux fréquences correctes: on peut en théorie arriver aux mêmes résultats avec un condensateur plus petit ou plus grand, à condition de modifier le courant, et donc les résistances R1 à R4 dans les mêmes proportions.
    Un condensateur plus petit aurait l'avantage de réduire le courant, et donc la consommation; à priori, quelque chose d'utile, puisqu'on envisage une alimentation par piles.
    On ne peut cependant pas aller trop loin dans cette voie: si l'on diminue la capacité, cela veut dire que la proportion de la capacité parasite dans la capacité totale va augmenter. Or, la capa parasite est moins controlable qu'un composant, et elle des propriétés médiocres, notamment sur le plan de la stabilité en T°.
    D'autre part, une capacité plus faible sera plus sensible aux effets de couplage et d'injection de charge, notamment en provenance du signal carré.
    Pour ces raisons, il serait imprudent de descendre sous une centaine de pF. Ici, j'ai choisi d'être confortablement au-dessus, mais rien n'empêche ceux qui le souhaitent de se livrer à des expérimentations: par exemple, si on désire une fréquence maxi plus élevée.


    Un mot à propos des diodes.
    On peut remarquer qu'elles sont non spécifiées; en fait ce sont les diodes par défaut du simulateur. Ce sont de petites diodes, à très faible surface, typiques des processes de circuits intégrés. Ce qui n'a rien d'anormal, puisque LTspice est à la base un outil de simulation et de conception de circuits intégrés. Mais le problème, c'est qu'il est impossible d'acheter de telles diodes, du moins en tant que composant individuel. il faudrait donc les remplacer par des diodes de type 1N4148 p.ex. Mais là, il y a un problème: les modèles de diodes semblent mal rendre compte de certaines propriétés des diodes ultra-rapides, qui sont dopées à l'or pour controler la durée de vie des porteurs de charge.
    En commutation "naturelle", càd quand aucune polarisation inverse n'est appliquée après une phase de conduction, les diodes des modèles évacuent une charge importante vers l'extérieur, qui se traduit par la présence d'une tension aux bornes de la diode pendant 10 à 50ns, selon le modèle utilisé. Dans une diode physique, ce phénomène est pratiquement absent. C'est donc un aspect de la simulation qui risque de poser des problèmes lorsque le schéma sera traduit dans la réalité. Cela dit, pas de panique, même si les diodes réelles se comportent en définitive plus ou moins comme leurs modèles, il est possible de trouver des solutions, en ajoutant une diode schottky supplémentaire en série p.ex. On verra ce qui se passe au niveau de la maquette, et quels remèdes appliquer si nécéssaire.


    Il va aussi falloir extraire les signaux de sortie, et les extraire "proprement".
    Ce n'est pas une tâche aussi simple qu'il y parait: pour le carré, il n'y a pas vraiment de difficulté, puisque c'est un signal robuste et à faible impédance, mais le triangle est plus délicat, et il va falloir le prélever sous une impédance très élevée pour ne pas le dégrader.

    L'option la plus évidente, un AOP en suiveur, n'est pas réaliste dans notre cas: ce n'est pas avec un LM324 qu'on va y arriver, et si les ICs capables de le faire sont nombreux, ce sont des spécialités plutot que des commodités, et en choisir un signifierait un "mariage" avec un fabricant précis, ce que je souhaite éviter.

    La solution discrète traditionnelle est un suiveur composite, avec un FET à l'entrée: voir FetBuff.
    La linéarité est suffisante, de même que la bande passante: environ 38MHz, voir FetFreq. Et grâce au FET, le courant d'entrée (aux basses fréquences) est négligeable. Les inconvénients sont une consommation non-négligeable (4mA), même avec un suffixe A, et une dispersion inhérente aux FETs, même lorsqu'ils sont triés, comme ici.

    J'ai essayé d'explorer d'autres voies, comme le circuit "répéteur". Cette variante de buffer peu connue est un composite un peu particulier, dans lequel le transistor d'entrée fonctionne à Vbc=0. C'est une condition qui ne convient pas à tous les transistors, mais le BC557 est parfaitement à l'aise: voir BipBuff. La linéarité est bonne, et la bande est plus élevée que dans le cas précédent: plus de 200MHz, voir BipFreq. La consommation est de 2.8mA.
    Le mode de fonctionnement "boostrappé" du transistor d'entrée annule ses capacités parasites, ce qui explique la bonne bande passante et la faible capacité parasite d'entrée malgré l'utilisation d'un transistor BF ayant des capas importantes, comme le BC557.
    Le prix à payer est un courant d'entrée non-nul: environ 190nA.
    Un autre avantage de ce circuit est sa prédictibilité: il n'y aura pas de variation du niveau DC de sortie avec des transistors différents.

    A suivre....
    Images attachées Images attachées
    Dernière modification par azer ; 08/08/2008 à 15h56.
    Pas de complexes: je suis comme toi. Juste mieux.

  19. #16
    Tropique

    Re : Générateur de fonctions "junior"

    Bon, on dirait qu'il y a eu un glitch, et on a perdu FetBuff en route; cinq d'un coup, c'était peut-être un peu optimiste.

    Re:
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  20. #17
    Tropique

    Gammes et controle de fréquence

    Il est temps d'aborder cet aspect.

    Dans le but d'alléger au maximum la réalisation, j'ai décidé de tenter une simplification: les gammes vont être dans un rapport de 100 au lieu des 10 habituels. Cela permettra de couvrir toute l'étendue de 10Hz à 10MHz en seulement trois gammes, et l'organe de sélection pourra être un simple switch miniature à position centrale neutre.
    Une telle étendue de réglage peut sembler acrobatique, mais je compte utiliser un potentiomètre logarithmique pour le réglage, assisté éventuellement d'un réglage fin.
    On verra en pratique ce que cela donne; si ce n'est pas jouable, il sera toujours temps de revenir en arrière, vers des solutions plus classiques et plus lourdes.

    Il y aura donc trois condensateurs définissant les gammes: le premier, constitué d'un fixe de 180 ou 220pF assisté d'un ajustable de 60pF, qui restera tout le temps en place. Le deuxième et le troisième seront commutés par le switch, et vaudront 22nF et 2.2µF, plus un appoint à définir.

    La tension de controle devra pouvoir varier entre 10mV et 1V. En fait, il faudra plus que ça, on va prévoir un recouvrement des gammes de 10% en bas et en haut, on ira donc de 9mV à 1.1V. Ce recouvrement est nécéssaire, non seulement pour faciliter l'utilisation, mais aussi pour monter à 11MHz. Cela permettra de couvrir les 10.7MHz, la fréquence FI FM, ce qui peut être utile en dépannage et en mise au point. Il serait dommage de se priver de cette possibilité pour 700KHz.

    Sur FreqContr, on voit une possibilité d'implémentation. Ce n'est certainement pas la seule, mais elle été conçue dans l'optique de maximiser les fonctions avec un minimum de connecteurs et commutateurs.
    Par défaut, avec le switch en position centrale neutre, la modulation FM est appliquée au sommet du pot de controle de fréquence via un condensateur de liaison et une résistance, qui forme un diviseur 1:10 avec la résistance interne, et fixe l'impédance d'entrée à 10K. Cette façon de faire permet de conserver un taux de modulation relatif constant et indépendant de la fréquence: ça n'aurait pas beaucoup de sens d'essayer de forcer une porteuse de 100KHz à faire une excursion de 1MHz (sauf si on envie d'allumer Bessel).
    L'ajustage de butée basse est réalisé de manière inhabituelle afin de ne pas avoir à utiliser un ajustable de moins de 100ohms.
    En mode "Wobbulation", l'entrée controle directement la fréquence. La tension interne n'est pas coupée, à priori le géné de wobbulation aura une impédance de sortie négligeable et forcera l'entrée. Le but de laisser la tension interne est de permettre d'utiliser l'entrée FM en sortie, pour pouvoir mesurer la tension, qui est exactement proportionnelle à la fréquence: c'est une sorte de fréquencemètre implicite.

    Il restera vraisemblablement un 324 libre, qui pourra être utilisé comme générateur interne de modulation, à 800Hz par exemple.
    L'entrée du VCO est protégée par une cellule RC R7/C2. R8 équilibre les résistances d'entrée de l'AOP.

    A suivre.....
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  21. #18
    Tropique

    Un premier "Reality Check"

    Le temps est venu de se confronter à la réalité physique.
    J'ai donc commencé un proto qui, pour l'instant, se résume au VCO. Pour la réalisation pratique, j'ai créé ma propre plaque d'expérimentation "blindée", en partant de circuit imprimé vierge que j'ai foré en utilisant une plaque d'expérimentation classique comme "patron" (voir photos). Les trous effectivement utilisés sont chanfreinés avec un foret afin d'isoler la queue de composant de la masse. Pour avoir un maximum de flexibilité, j'ai mis tous les composants devant éventuellement être modifiés sur support: ce sont des tulipes de supports d'IC directement forcées dans des trous de 1.3mm. Le 74HC14 est aussi monté de cette manière, pour minimiser capas et inductances parasites. Le 324 est monté sur un support normal, ces aspects étant sans importance pour lui.
    Pour les premiers tests, je n'ai pas accordé d'importance au choix des composants, c'est essentiellement ce qui m'est tombé sous la main. Le but est surtout de tester la fonctionnalité, les performances et les réglages précis viendront à un stade ultérieur. Le potentiomètre est bien logarithmique, mais il est connecté de manière simplifiée, sans butée basse, et avec une butée haute fixe.

    Première mise sous tension:
    Apparemment, pas d'erreur de câblage, ça oscille, la fréquence peut être variée par le potentiomètre. Première chose qui saute aux yeux à l'oscillo: une forte asymétrie, surtout dans les fréquences basses, mais restant visible dans le haut également. Je sais que ça ne peut pas être causé par les résistances des miroirs de courant, bien que ce soient des 5% non triées: celles de ce lot sont toujours à mieux que 1%. Il reste donc les transistors: désinsertion. Les BC558 ont 1.7mV d'écart de Vbe; rien d'anormal pour des transistors pris au hasard (j'ai quand même pris soin de les choisir du même fabricant). Même test sur les BC548, et là stupéfaction: l'écart est de près de 35mV... Du coup, je teste tous les transistors Philips du casier, et je constate que tous se situent dans une fourchette de +/- quelques mV, sauf un de ceux que j'ai pris pour le proto, et qui est une trentaine de mV plus bas. En plus, son compère "normal" est parmi ceux qui ont une des tensions les plus élevées. Comme quoi Murphy est toujours à l'affût de la moindre faille...
    Après remplacement par un exemplaire plus ordinaire, plus de problème de symétrie flagrant. La mesure des fréquences donne des valeurs trop élevées: un peu plus de 11.5MHz pour le maximum, ce qui est encore raisonnable, mais plus de 25% de trop pour les fréquences sous 1MHz. Pourtant, le condensateur de timing est de 270pF, auxquels s'ajoutent les 13pF de la sonde d'oscillo. La raison n'est pas à chercher bien loin: l'amplitude est juste en-dessous de 1V càc. Le 74HC14 de Texas a un hystérésis de seulement 900mV, c'est donc logique. Il faut dire que ça faisait partie des données du problème, on savait qu'il allait falloir tenir compte d'une dispersion initiale importante.
    Dans les basses fréquences, l'excès est en partie causé par ce facteur d'échelle global, en partie par un certain offset de l'AOP, mais ce n'est pas suffisant pour tout expliquer: cela signifie que la résistance de correction en série avec le condo est insuffisante, bien que j'aie mis 62ohms (avec le simulateur, on était vers 59ohms).
    Stade suivant: passage à 330pF et 68ohms. Cette fois, les basses fréquences sont justes à très peu de chose près, mais la fréquence maxi est un peu courte: 10.5MHz. A ce stade, je ne vais pas essayer de peaufiner: je n'ai de toutes façons pas l'intention de laisser les BC en place: ce sont des transistors BF, pas idéalement adaptés aux vidéofréquences. Je verrai ce que ça donne avec des types un peu plus rapides.

    Qualité du triangle:
    En regardant bien, on voit que le triangle se déforme un peu pour certaines valeurs de fréquences. Je sais où chercher, je n'ai pas fait mes devoirs: j'ai omis un condensateur de compensation sur l'AOP, pour neutraliser le pôle introduit par R9/C2, et il y a des résonances à certaines fréquences. Avec 82pF, les choses rentrent dans l'ordre.
    Près des sommets des triangles, on devine un soupçon de quelque chose: celà a à voir avec le problème de diode, qui était flagrant avec le simulateur, mais à peine détectable en réalité. Un essai de mise en série de BAT82 additionnelles change subtilement quelque chose, mais difficile de dire quoi, ni même si c'est une amélioration. A creuser par la suite.

    Ergonomie
    Une des inconnues était la validité pratique d'un réglage de fréquence couvrant un rapport de 1 à 100. A première vue, quand on tourne le potentiomètre, simplement en regardant l'oscillo, sans chercher une valeur précise, ça a l'air très satisfaisant. On a même l'impression que le potentiomètre fait bien plus qu'un tour. Quand on se fixe une valeur, p.ex. atteindre une période de 4 carreaux sur l'écran, c'est rapide, instinctif et direct, sans avoir besoin de chipoter ou de revenir en arrière.
    Quand on fait le même test au fréquencemètre, les choses se corsent: je me fixe un but de 455KHz, et là, c'est plus épineux: il y a plus de résolution, et puis surtout, il y a le délai d'acquisition du fréquencemètre qui gêne considérablement. En plus, le cerveau doit faire la traduction entre la rotation de l'axe et les chiffres qui défilent, c'est nettement moins intuitif que de positionner un flanc sur un écran. A 1 ou deux KHz près, c'est faisable sans chipoter excessivement; si on veut arriver à 100 ou 200Hz, c'est limite faisable, mais plutot horripilant.
    Conclusion:
    Si on a besoin d'une résolution/précision comprise entre 1% et 1°%, c'est acceptable; si on veut aller plus bas, il faut soit incorporer le réglage fin (dont la résolution vaut 1/20ème du principal), soit utiliser des gammes traditionnelles en décades.
    Il faut dire aussi que le test a été fait avec le potentiomètre non fixé, au bout de ses fils, et sans bouton. Il y a donc une certaine marge.

    A suivre....
    (Je prie pour les fichiers image, je sens que le bébé se présente mal...)
    Dernière modification par Yoyo ; 11/08/2008 à 15h20.
    Pas de complexes: je suis comme toi. Juste mieux.

  22. #19
    Tropique

    Re : Un premier "Reality Check"

    Ce coup-là, je le sentais venir gros comme ça.
    Bon, bis repetita etc:
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  23. #20
    Tropique

    Re : Générateur de fonctions "junior"

    Tests supplémentaires sur le VCO:

    J'ai quelque peu approfondi les points constatés précédemment.
    Première manip: changement de transistors par des 2N3904/3906, comme dans la simu.
    Très nette amélioration des rapports des gammes, bien que sur le papier, ils soient assez similaires aux BC point de vue bande. Ce point peut être considéré comme réglé.

    Quelques essais avec des diodes:
    Le remplacement des 1N4148 par des BAT82 donne des défauts très visibles au triangle, surtout dans les basses fréquences: curieusement, la charge injectée est plus élevée, bien que ce soient de petites schottky.
    Par contre, un essai avec des schottky RF, faible capacité, donne un résultat absolument parfait. Les traces de défaut que l'on devinait avec les 1N4148 ont totalement disparu. Encore une fois les différences de caractéristiques sur le papier sont assez peu significatives. Les diodes que j'ai employées sont de classiques HP5082-2800, mais je suppose que toutes les diodes UHF de 25mA et quelques volts donneraient des résultats comparables. Les schottky d'usage général sont donc à éviter.

    Linéarité du VCO:
    J'ai relevé quelques valeurs de la caractéristique fréquence/tension: on constate qu'elle est quelque peu "bombée" dans les basses fréquences, entre 100KHz et 1MHz. Les fréquences sont trop élevées de quelques pourcents par rapport à la tension d'entrée. Dans l'absolu, c'est un problème relativement mineur, puisqu'il s'agit d'un générateur et non d'un convertisseur tension/fréquence. Je ne vais donc pas investir de ressources importantes pour l'éliminer complètement, mais si des mesures simples peuvent être prises pour le réduire, autant les mettre en oeuvre.
    J'ai donc fait quelques essais en ce sens, et j'ai pu constater que la modification des densités de courant relatives dans les transistors des miroirs de courant permettait de jouer sur la linéarité dans cette région. Si on combine celà avec la résistance de compensation, qui agit essentiellement en haute fréquence, on dispose de pas mal de degrés de liberté pour se rapprocher d'une caractéristique linéaire. Il faudra un certain nombre d'essais/erreurs avant d'arriver à la combinaison optimum, mais ça ne devrait pas être trop difficile, puisque les résultats du simulateur collent bien à la réalité.
    VCOlin montre un début d'optimisation selon ces lignes. Il pourra encore être peaufiné.

    Il va falloir commencer à songer à la suite du programme: il reste deux fonctions majeures à implémenter, le convertisseur sinus, et l'ampli de sortie
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  24. #21
    DAUDET78

    Re : Générateur de fonctions "junior"

    Quelques remarques philosophiques sur le schéma :
    1/ Quel est le rôle de R7 ?
    2/ La charge au niveau bas (R1 D2 R5 avec 5V) ou au niveau haut (R6 D1 R3 avec 0V) donne un courant Isink ou Iload de 7,4 mA ce qui excède la spécification du 74HC14 qui est de 4 mA
    3/ La tension d'entrée V2 du VCO ne doit pas excéder (1,6 - VecQ1) soit environ 1V en typique et (0,9 - VecQ1) soit environ 0,3V en minimum garantie (je prend 0,6V de VecQ1 pour qu'il soit à la limite du fonctionnement en linéaire et pas encore en saturation)
    4/ Ce n'est qu'une simulation logicielle et il y a une certaine différence entre l'ordinateur et la réalité
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  25. #22
    thomas84

    Re : Générateur de fonctions "junior"

    Citation Envoyé par DAUDET78 Voir le message
    Quelques remarques philosophiques sur le schéma :
    1/ Quel est le rôle de R7 ?

    tu l'as déjà expliqué dans un post précédent:

    "Une simple résistance a été rajoutée en série avec le condensateur; elle ne change rien aux courants de charge, puisque ceux-ci sont déterminés par les sources de courant. On peut voir par contre l'effet sur l'entrée du trigger (trace rouge): le courant de charge qui passe par cette résistance y développe une chute de tension, alternativement positive et négative, qui vient s'opposer à l'hystérésis. L'effet est d'avancer les instants de commutation, et donc de compenser les délais internes."

  26. #23
    DAUDET78

    Re : Générateur de fonctions "junior"

    Citation Envoyé par thomas84 Voir le message
    L'effet est d'avancer les instants de commutation, et donc de compenser les délais internes."
    Pour ma part, je n'en suis pas persuadé .... sur un montage réel.
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  27. #24
    Tropique

    Re : Générateur de fonctions "junior"

    Citation Envoyé par DAUDET78 Voir le message
    Pour ma part, je n'en suis pas persuadé .... sur un montage réel.
    L'image VCO10Meg, du #14, explique le mode d'action de cette résistance: voir trace rouge.
    A chaque changement de polarité, on voit un saut de tension, qui vient se retrancher de l'hystérésis de l'entrée. L'effet pratique est donc de réduire la bande d'hystérésis de façon proportionnelle aux courants de commande, et donc à la fréquence.
    Quant au montage réel, il existe (voir #19), et il n'y a pas de divergence majeure avec la simulation (excepté le comportement des diodes, dont la modélisation a une lacune).
    Il y a inévitablement de petites divergences: p.ex., dans la simu, la valeur optimum de R7 est de 59ohms, alors que dans la réalité on est plus haut, à 62ohms. Mais ce genre de divergence n'a rien de choquant, et est du même ordre de ce qu'on obtiendrait en mettant des composants de provenance différente.

    2/ La charge au niveau bas (R1 D2 R5 avec 5V) ou au niveau haut (R6 D1 R3 avec 0V) donne un courant Isink ou Iload de 7,4 mA ce qui excède la spécification du 74HC14 qui est de 4 mA
    Je vais essayer d'inclure la datasheet du Texas, puisque c'est celui que j'utilise sur le proto. Si ça ne marche pas, voici le lien:
    http://www.datasheetcatalog.com/data...CD74HC14.shtml
    Les datasheets donnent deux types d'information: les ratings, qui sont les valeurs à ne pas dépasser, et les specifications, ou caractéristiques, qui sont informatives.
    Les ratings indiquent que le courant de source ou de sink à ne pas dépasser est de +/-25mA par sortie; d'autre part, les spécifications donnent certains points de la caractéristique tension/courant des sorties pour des cas présentant un intérêt particulier: les cas d'interfaçage avec une famille CMOS, et avec une famille TTL.
    Tout le reste de la caractéristique U/I de 0 à 25mA est donc autorisé, mais "inconnu". Il y a cependant dans les caractéristiques générales de la famille logique les courbes des transistors de sortie, mais il s'agit de valeurs typiques, donc en principe sans garantie.
    En toute rigueur, les seules informations "dures" (et donc fiables) sont celles données dans le tableau. Si on a l'esprit tatillon, on peut essayer de "coller" exactement à ces valeurs, mais ça revient à s'attacher une main dans le dos et à se rendre la vie très difficile: pour commencer, aucune caractéristique n'est donnée pour la valeur de la tension TTL classique de 5V p.ex.
    Dans la réalité, on fait en général preuve de bon sens, et les fabricants eux-mêmes montrent l'exemple (le mauvais): les notes d'applications fourmillent de cas "non-conformes": tout oscillateur, porte à diode, CMOS utilisé en linéaire, etc, viole un ou plusieurs principe de la rigueur logique.
    L'essentiel est de savoir jusqu'où ne pas aller trop loin.

    3/ La tension d'entrée V2 du VCO ne doit pas excéder (1,6 - VecQ1) soit environ 1V en typique et (0,9 - VecQ1) soit environ 0,3V en minimum garantie (je prend 0,6V de VecQ1 pour qu'il soit à la limite du fonctionnement en linéaire et pas encore en saturation)
    Pour 6V d'alimentation, la datasheet donne un seuil mini de 1.2V, et si on veut travailler avec Vbc>0, on est limité à 0.6V pour V2, donc on est hors spec. Conclusion, il faudra trier le 74HC14.
    En principe.
    En fait, il y a relativement peu de chances de tomber sur un exemplaire aussi marginal, et de plus, le transistor acceptera encore de fonctionner en mode linéaire dégradé jusqu'à Vcesat, ce qui veut dire que même sans tri, le circuit fonctionnera presque toujours. De toutes façons, l'exigence de tri n'est pas dramatique, puisqu'il y aura d'autres composants à trier, comme les transistors par exemple (sauf si on se paye le luxe de transistors doubles). Et pour eux, ce sera vraiment impératif.

    4/ Ce n'est qu'une simulation logicielle et il y a une certaine différence entre l'ordinateur et la réalité
    C'est un outil, utile et puissant, mais à utiliser avec discernement et circonspection. Là encore, le bon sens est le meilleur guide, et il ne faut pas tout prendre pour argent comptant.
    Le fait est que ceux à qui la simulation est la plus profitable est paradoxalement, ceux qui seraient capable de s'en passer....
    Dernière modification par Rincevent ; 13/08/2008 à 13h39.
    Pas de complexes: je suis comme toi. Juste mieux.

  28. #25
    Tropique

    Le conformateur sinus

    Encore une petite précision, avant de continuer:
    Lorsqu'il m'arrive d'entrer dans des "zones grises", comme celles évoquées par Daudet, c'est en pleine connaissance de cause. Appelons ça un risque calculé: le bénéfice, en terme de simplicité, de coût et de performances est élevé, et les risques sont faibles, sans conséquences graves, et surtout remédiables facilement: si par extraordinaire, le 74HC14 sur lequel on est tombé n'est pas satisfaisant, on en achète un autre à 0.5€ et on l'utilise pour autre chose.
    Faire la même chose avec les composants d'un pace-maker est une toute autre paire de manche.
    Le fait est que ce genre de démarche est généralisé dans l'industrie électronique, et pas seulement au niveau consumer: simplement, on est conscient qu'au niveau du test final, il pourra y avoir un certain nombre de "rejects", mais si le pourcentage est faible et que le bilan global est positif, c'est acceptable. Rares par exemple seraient les fabricants qui se refuseraient à utiliser un BD135 à 600mA parce qu'au delà de 500mA, le gain n'est plus garanti (bien qu'il accepte 2A).
    Encore une fois, dans les applications "life critical" ou "mission critical", il en va autrement: on va la plupart du temps demander au fabricant de fournir des composants testés à 100% sur un certain nombre de spécifications, mais l'ordre de prix est très différent.

    Revenons à nos moutons.
    Il va falloir sélectionner un type de conformateur afin de transformer le triangle en sinus. Comme on l'a vu dans l'introduction, tout ce que l'univers compte de non-linéaire a déjà été utilisé dans cette fonction. Ici, les contraintes de coût, de simplicité et de tension d'alimentation vont fortement limiter le choix: avec seulement 6V, il n'y a pas beaucoup de "place" pour des jFETs ou des conformateurs à diodes, et les petits MOS de puissance ont des capacités trop élevées pour les fréquences envisagées ici. L'ampli différentiel à Bjt semble donc un choix assez logique: voir diffSine.
    L'amplitude du triangle a été ajustée à 74mV crête, ce qui est proche de l'optimum, du moins pour la distorsion: la forme d'onde n'est pas très satisfaisante. On peut essayer de rendre cette forme moins anguleuse en jouant sur l'amplitude: voir diffSine+.
    C'est déjà moins choquant visuellement, mais la distorsion est grimpée à près de 4%.
    Pour arriver à progresser, il va falloir examiner plus en détail les principes théoriques de ce conformateur.
    Il est basé sur le fait que la fonction sinus peut être décomposée (entre autres) en une série en tanh; or, la fonction de transfert de l'ampli différentiel est également en tanh. Le problème, c'est qu'on a qu'une seule paire différentielle, et donc un seul terme de la série. Cette série a beau être efficace et converger très vite, c'est malgré tout un peu léger. La solution logique est évidemment d'ajouter un ou plusieurs termes, et donc autant d'étages. C'est ce qui est fait dans certains circuits spécialisés, des convertisseurs trigonométriques. C'est une méthode très puissante, qui étonnament, permet non seulement de couvrir 360°, mais nettement plus, des centaines de degrés si l'on veut.
    Nous, nous nous contenterons de -90° à +90° et retour, mais nous n'avons pas de ressources de transistors comme dans un circuit intégré. On va donc créer un terme "factice", linéaire, au moyen d'une résistance, pour avoir un terme et demi à notre série. Une approximation approximative en quelque sorte. Voir diffSine1 pour le résultat.

    A suivre...
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  29. #26
    Tropique

    Re : Générateur de fonctions "junior"

    DiffSine s'est perdu en route:
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  30. #27
    Tropique

    Re : Générateur de fonctions "junior"

    Quelques nouvelles du front:

    J'ai commencé à évaluer "physiquement" les deux types de buffer (voir #15). J'ai fait tout le montage sur tulipes, et comme les deux variantes ont la même structure, il suffit de changer les transistors et les résistances pour passer d'une variante à l'autre. Cela permet de faire des comparaisons dans des conditions identiques.
    Les résultats confirment ce que la simu avait montré: la version à Bjt est sensiblement plus performante, mais elle n'est pas tout à fait sans reproche; c'est d'ailleurs pour cette raison que j'ai organisé cette confrontation physique.
    La base du transistor NPN est très sensible aux capacités parasites: la résistance de pull-up de 33K ne fait passer qu'un courant très faible, juste suffisant pour charger les capas parasites à 11MHz. Il suffit de poser le doigt sur cette résistance pour voir que le slew-rate décroche. La marge est donc clairement trop faible. Le remède est simple: diminuer la résistance, par exemple à 15K. L'ennui, c'est que le courant de polarisation passe alors de 190 à 400nA, et la résistance d'entrée baisse dans les mêmes proportions, ce qui commence à impacter la qualité de la forme d'onde aux basses fréquences.

    Le buffer à FET n'a pas ces problèmes, puisque son courant d'entrée est nul, mais le signal est moins net, la consommation plus élevée, et il aura aussi plus de dispersion liée au FET.
    Un dilemme difficile donc, et je n'ai pas encore tranché.
    Il y aurait aussi l'option de rendre la polarisation dynamique, controlée par la fréquence du VCO. Ce serait assez facile, il suffirait d'un transistor de plus sur le miroir de courant PNP: aux fréquences basses, où le slew-rate est sans importance, le courant serait minimal, et aux fréquences élevées, où le courant d'entrée est sans importance, le courant serait maximal.
    Cela permettrait d'avoir le meilleur des deux options.... au prix d'un transistor supplémentaire. Bien sûr, un transistor, ce n'est pas grave, mais si on commence à ajouter des trucs à chaque fois qu'on bute sur une difficulté, on se retrouve vite avec une usine à gaz. Et ici, ce n'est vraiment pas le but.
    Donc pour l'instant, je laisse encore ça en suspens, en attendant une bonne idée.

    Un autre problème qui commence à me turlupiner, c'est la façon de faire la commutation entre triangle et sinus: ça a l'air assez simple, il suffit d'envoyer l'un ou l'autre sur le potentiomètre de niveau qui précèdera l'ampli de sortie.
    Comme toujours, le diable est dans les détails: il faudra par exemple garder un seul ajustable de normalisation de niveau pour les deux situations; les niveaux DC devront également être compatibles; il faudra que ça passe 10MHz facilement; il serait souhaitable de couper la consommation du conformateur en mode triangle; et enfin, il faudrait essayer de faire tout ça avec un inverseur simple.

    A propos du conformateur:
    On avait vu que la dernière version avait une distorsion assez honorable, mais une forme d'onde pas vraiment jolie. Faut-il se préoccuper d'esthétique?
    Il y a des cas où l'esthétique rejoint la technique: si le sinus est envoyé dans des circuits ayant un comportement différentiateur, comme un filtre passe-haut p.ex., des discontinuités dans le signal vont se traduire par des résultats inattendus dans la sortie, et donc une sinusoide un peu anguleuse risque de devenir méconnaissable après différentiation. Pour cette raison, il est souhaitable de "gommer" les défauts restants, même si en termes de distorsion ils ne pèsent pas lourd.
    Ici encore, plutot que d'ajouter un étage complet, on va mettre en oeuvre une demi-mesure, focalisée sur ce défaut précis: voir diffSineFinal.
    Il s'agit d'un écrêteur, qui va se contenter de "raboter" le petit résidu de triangle présent au sommet, et qu'on a été obligé de laisser pour obtenir une distorsion convenable; il ne touche à rien d'autre.
    Un avantage de ce circuit, c'est qu'il ne nécéssite pas de réglage: il s'adapte automatiquement à l'amplitude et à la tension DC. Ce sont en fait deux détecteurs de crête qui débitent l'un dans l'autre.
    Corollaire intéréssant, ce circuit a aussi permis de diminuer un peu la distorsion, même si ce n'est pas son rôle de base.

    A suivre..
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  31. #28
    Tropique

    La sortie carré

    Avant de continuer, un petit avertissement à ceux qui seraient tentés de prendre les devants et de commencer la réalisation avec les éléments déjà étudiés:
    Il vaut mieux attendre que la totalité du projet soit terminée, d'une part parce qu'à ce moment tous les éléments auront été correctement testés dans leur contexte réel, et d'autre part parce que je donnerai des indications utiles pour le choix des composants, leur tri éventuel, l'obtention d'un layout correct, les réglages etc. En plus, dans l'état actuel des choses, même les parties déjà vues ne sont pas nécéssairement figées, et il se peut qu'il y ait des "remords", et des retours en arrière. N'oublions pas que mon proto est fait de manière à être reconfigurable à 80% sans toucher une seule soudure....
    Enfin, lorsque j'étudie les différents blocs de fonction, c'est plus ou moins en isolation, même si je garde un oeil sur leur environnement futur probable. Il se peut qu'il y ait des adaptations pour pouvoir les intégrer dans l'ensemble.
    Un peu de patience donc!

    Pourquoi créer un post sur la sortie carrée? Et d'abord, pourquoi une sortie carrée spécifique?
    Souvent, on a le choix de mettre en sortie une des formes d'onde, y compris le carré.


    Ce n'est pas l'option que j'ai retenue ici, pour un bon nombre de raisons:

    Il est utile, même dans un appareil modeste, d'avoir une sortie secondaire, pour synchro, trigger, etc. La sortie carré pourra jouer ce rôle.

    Avoir un carré disponible simultanément est aussi utile dans de nombreux cas, particulièrement lorsqu'il est, comme ici, en quadrature avec la sortie principale: tests de démodulateurs, de comparateurs de phase, etc

    Le signal carré a des exigences particulières: pour être amplifié sans trop de déformation, l'ampli doit avoir une bande d'environ 10X la fondamentale; pour respecter les temps de transition, il doit avoir un slew-rate de 1KV/µs. Un ampli répondant à ces critères aurait une consommation incompatible avec l'alimentation par piles.

    Il y aussi une particularité à prendre en compte: on constate que sur les générateurs qui en sont équipés, la fonction "offset" n'est très souvent utilisée que dans un cas précis: avec le carré, et d'une valeur égale à la tension de crête. Pourquoi ces conditions? Ce sont celles qui permettent d'avoir des créneaux avec le "bas" à 0, compatibles avec les signaux logiques.
    Notre générateur ne sera pas équipé de ce genre de "luxe", et avec la tension d'alim dont on dispose, ce n'est de toutes façons pas une option réaliste.
    Par contre, sur la sortie carrée, on peut facilement choisir entre un signal AC ou unipolaire: ce sera "l'offset du pauvre", mais il suffira à couvrir 90% des cas les plus courants.

    Voyons un exemple d'implémentation dans sqrOut
    Dans la version A, le signal venant du VCO arrive sur Q1, en collecteur commun. Cet étage peut être mis hors service lorsque sa résistance d'émetteur n'est pas connectée à la masse, quand le switch est en position centrale neutre. Ce "muting" a plusieurs utilités: il permet en premier lieu de réduire substantiellement la consommation lorsque ce signal n'est pas nécéssaire.
    Il permet ensuite de limiter la "pollution" électrique: un puissant signal carré qui passe à travers 5 opérateurs logiques, du cablage et la piste d'un potentiomètre risque de rayonner pas mal, même avec une réalisation raisonnablement propre.
    Comme cet instrument pourra servir de générateur HF ou FI, il est souhaitable que le signal ne sorte que de la sortie prévue à cet effet. Comme un switch est de toutes façons nécéssaire pour choisir entre les modes logique et AC, autant en prendre un à zéro central qui fait aussi cette fonction, gratuitement.

    Les 5 opérateurs du 74HC14 inutilisés sont mis à contribution comme ampli de puissance. Le potentiomètre de niveau y est directement raccordé, en passant éventuellement par le condensateur de bloquage C1.
    La résistance R3 protège la sortie et contribue à son impédance. Celle-ci n'est pas fixe et variera entre ~33ohm aux extrêmes et 85ohms au centre. Cela peut sembler bizarre, mais la désadaptation par rapport à des lignes courantes, entre 50 et 100ohms reste acceptable.
    Cet arrangement permettra de disposer de l'entièreté des 6Vpp, avec un minimum de complication, et une puissance suffisante pour faire du bruit avec un HP p.ex.

    D'autres implémentations sont possibles: voir la version B pour un exemple plus classique.

    A suivre....
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  32. #29
    Tropique

    Re : Générateur de fonctions "junior"

    Continuons, avec la version "pratique" du convertisseur sinus et ses commutations.

    Comme prévu, ça n'a pas été de la tarte de réconciler tous les niveaux, réglages, etc. Je ne suis pas tout à fait arrivé au but que je souhaitais atteindre: il faudra un inverseur double pour passer du triangle au sinus, mais à part ça, le résultat est satisfaisant. Il faudra encore voir comment il se comporte pratiquement, puisque ce n'est pour l'instant que de la simulation. En tous cas, le terrain est déjà bien défriché.

    On voit que le circuit a été éxécuté en PNP; c'est mieux adapté à la situation, et conceptuellement, ça ne change rien. Un léger "tuning" est nécéssaire, puisqu'il est impossible de trouver de vrais transistors complémentaires.
    R18 et R19 représentent l'ajustable de normalisation de niveau de 470ohms, à mi-course. Il fait partie de la résistance de sortie du buffer vu précédemment, et est identique pour les deux versions.
    Il est connecté soit au diviseur d'entrée du convertisseur sinus (comme dessiné ici), soit directement sur le pot de niveau, matérialisé par R10.

    Le conformateur est polarisé par V2, via R16 et R17 (le générateur comprendra une référence de 2.5V). R16 sera en fait un ajustable qui permettra de modifier très légèrement la symétrie du conformateur en jouant sur le courant de polarisation. Bien que les transistors seront appariés, il faudra un réglage fin. R6 sera également ajustable, et réglera le niveau de distorsion.
    Le réseau R14/C3 permet de symétriser l'impédance vue par les deux entrées, chose importante pour de bonnes performances.

    Le courant d'alimentation du conformateur est généré par Q1, monté en source de courant. La compensation de tension de base est plus élaborée que d'habitude, en raison de la précision et de la stabilité nécéssaires ici.
    Lorsqu'une seule jonction de compensation est utilisée, la base du transistor ne la voit qu'à travers le diviseur formé par la résistance de polarisation et celle qui fixe le courant. Selon les valeurs, la compensation est donc trop faible de quelques pourcents à quelques dizaines de pourcents, ce qui tolérable pour des applications courantes.
    Le conformateur nécéssitant un courant très stable, une fraction de la tension d'une seconde diode de compensation est ajoutée via R3, ce qui permet de retrouver une compensation exacte.

    Il est possible de désactiver le conformateur en ne connectant pas R11 à la masse; il y aura donc une section de commutateur pour cela.
    Lorsque le triangle va directement sur la sortie, la tension qui revient sur l'écrêteur est trop faible pour le faire conduire, et il n'intervient plus.

    A suivre....
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  33. #30
    Tropique

    Etat d'avancement:

    Me revoici pour quelques nouvelles.

    Si je me suis fait rare ces temps-ci, c'est pour cause de "travaux pratiques": j'ai amené la maquette à peu près au niveau de la simulation. En plus, pour pouvoir évaluer correctement le convertisseur sinus, j'ai été obligé de la "mettre au propre": il a fallu que je soigne un peu plus les appariements, symétrie, etc, afin de pouvoir faire des mesures de distortion cohérentes.

    Ce faisant, je suis tombé sur un problème que je n'avais pas encore remarqué: il y a un faible résidu de carré présent dans le triangle, qui se traduit par un saut de quelques mV à chaque sommet. Ce défaut était passé inaperçu, probablement parce que la construction "cochonnée", avec des composants en l'air avait moins de couplages parasites. Une fois tous les composants montés à leur place, condo principal, condo d'appoint, résistance de compensation, etc, c'est devenu visible. C'est assez rageant, mais assez classique aussi, ce ne sont pas les vieux briscards qui me démentiront...
    J'ai d'abord cru que c'était mon problème de diodes qui était imparfaitement résolu, mais non, c'est réellement un couplage capacitif de la sortie vers l'entrée.
    J'ai donc mobilisé un des cinq inverseurs encore libres pour inverser la sortie carré, et la réinjecter via une faible capacité dans l'entrée. Comme c'était inférieur au pF, j'ai utilisé deux conducteurs de cable plat d'une longueur de 3cm environ. Pour l'instant, c'est donc réglé, ce n'est peut-être pas la stratégie de compensation optimale, on verra par la suite.


    Tout cela m'a permis d'entamer les tests sur le convertisseur sinus, et de ce côté là au moins, les nouvelles semblent bonnes: les résultats réels collent à la simulation avec une précision millimétrique: lorsque tout est correctement ajusté, les deux raies parasites principales subsistant sont l'harmonique 3 et l'harmonique 5, et elles sont environ à -58dB sous la fondamentale, ce qui correspond à une contribution individuelle de 0.13% de distortion environ, soit 0.18% pour leur somme quadratique: on est donc exactement en ligne avec la simulation. Toutes les valeurs sont celles du dernier schéma, aucune modification n'a été nécéssaire.


    Suite du programme:
    Je vais peaufiner un peu ce qui a déjà été réalisé, entre autres pour incorporer des réglages fins de symétrie du triangle, et pour essayer de trouver la méthode la plus rationnelle possible de compensation des couplages parasites.
    Je vais aussi commencer à étudier le dernier "gros morceau" de ce projet, l'ampli de sortie.

    A suivre....
    Dernière modification par Tropique ; 19/08/2008 à 12h43.
    Pas de complexes: je suis comme toi. Juste mieux.

Page 1 sur 3 12 DernièreDernière

Discussions similaires

  1. Générateur de fonctions et/ou GBF
    Par Bidule18 dans le forum Électronique
    Réponses: 5
    Dernier message: 06/03/2008, 15h42
  2. generateur fonctions Schlumberger 4415
    Par bidou38 dans le forum Électronique
    Réponses: 0
    Dernier message: 28/10/2007, 20h36
  3. thomsom acces junior
    Par esox57 dans le forum Dépannage
    Réponses: 0
    Dernier message: 12/11/2006, 11h36
  4. Générateur de fonctions triangulaires
    Par ibrale dans le forum Électronique
    Réponses: 23
    Dernier message: 22/02/2006, 17h55
  5. recherche schema generateur fonctions
    Par jeanphi dans le forum Électronique
    Réponses: 6
    Dernier message: 05/11/2003, 13h29