Convertisseurs A/D artisanaux, entièrement sculptés à la main
Répondre à la discussion
Affichage des résultats 1 à 30 sur 30

Convertisseurs A/D artisanaux, entièrement sculptés à la main



  1. #1
    Tropique

    Convertisseurs A/D artisanaux, entièrement sculptés à la main


    ------

    Hello,

    Me revoici, pour vous proposer d'explorer certains recoins d'un domaine que l'on se contente généralement d'examiner sur un plan théorique:
    On en étudie les principes, les topologies, mais il ne viendrait jamais à l'idée de quelqu'un de sensé d'aller plus loin, et de se concocter soi-même son petit convertisseur sur mesure: on achète la fonction toute faite, que ce soit dans un chip dédié, un sous-ensemble, ou faisant partie d'un microcontrôleur.

    Cela ne s'applique pas à moi, puisque je ne suis pas sensé, et je vais donc vous montrer comment créer des convertisseurs à partir de rien, ou presque: des portes, des AOP, et autres fonctions de base.

    Cette démarche a un intérêt didactique évident: elle permet de "plonger les mains dans le cambouis" et de se familiariser intimement avec le fonctionnement détaillé de ces circuits.

    Il ne faut sûrement pas espérer arriver à un résultat utilisable pratiquement: au XXIème siècle, les modules convertisseurs millivoltmètres se trouvent à 5€, et chaque µcontroleur ou presque inclut un convertisseur A/D. Il doit être impossible de rivaliser en coût, résolution, performances, nombre de canaux, avec quelques pincées de composants standard.

    Vraiment?

    -----
    Images attachées Images attachées
    Dernière modification par Tropique ; 30/12/2009 à 17h13. Motif: PJ ne passent pas
    Pas de complexes: je suis comme toi. Juste mieux.

  2. #2
    invite0fa31f40

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Bonjour,ce topm'interresse!!!Mais je ne sais pas si je pourrais contribuer.

  3. #3
    Tropique

    L'élément de base, le moteur de conversion

    Nous allons entrer dans le vif du sujet, et examiner le bloc de construction élémentaire qui se trouvera à la base de toute cette série de convertisseurs.
    Avant de s'attaquer à l'implémentation physique, voyons d'abord quel algorithme sera utilisé:

    Il est simple.
    Soit Vin la tension d'entrée à convertir, Vref la tension de référence, Vout la tension de sortie appliquée éventuellement aux étages suivants, et Bn le bit converti. Pour un étage, l'algorithme s'énonce comme suit:
    Code:
    Comparer Vin et Vref
        Si Vin > Vref, alors Vout = Vin-Vref et Bn = 1
        Si Vin < Vref, alors Vout = Vin et Bn = 0
    Et c'est tout...

    Cela suffit cependant, prenons un exemple:
    On veut convertir une tension de 1.234V, avec une tension de référence égale à 1V.
    1.234 étant > que 1, le premier bit est mis à 1, et on passe le reste de 0.234V à l'étage suivant.
    Comme nous sommes en binaire, le poids des tensions pour cet étage, et donc de Vref sera divisé par deux: on compare 0.234 à 0.5; c'est plus petit, le bit correspondant est donc à 0, et la valeur de 0.234 est passée telle quelle à l'étage suivant.
    Celui-ci la compare à 0.25; c'est à nouveau plus petit => bit à 0, et passage du reste inchangé.
    On compare à 0.125; cette fois, 0.234>0.125, le bit est donc à 1 et le reste vaut 0.234-0.125=0.109.
    Et ainsi de suite....
    Le résultat de la conversion s'écrit donc: 1001 (si on se limite à 4 bits).
    La résolution (valeur d'un point) est dans ce cas de 0.125. Si on multiplie cette résolution par la valeur binaire du résultat, on obtient 0.125 x 9 = 1.125 ~= 1.234. Ce n'est pas tout à fait égal, puisqu'on s'est limité à 4 bits, et le reste de 0.109 n'a pas été pris en compte.
    Si on le rajoute, on retrouve la valeur initiale.
    La valeur fond d'échelle de ce convertisseur sera égale au produit de la résolution par 2n-1, dans ce cas ci 0.125 x (24 - 1) = 1.875V
    Si on souhaite plus de bits, il suffit d'ajouter autant d'étages que nécéssaire.

    Cet algorithme est implémentable tel quel en hardware, mais il peut être modifié et amélioré pour uniformiser les étages: ici, chaque étage fonctionne avec une tension de référence différente.
    Pour conserver la même tension tout au long de la chaîne, il suffit de multiplier par deux le résultat avant de le passer à l'étage suivant.
    Cela a en outre l'avantage de faciliter la soustraction de Vref et de permettre aux comparateurs de toujours travailler avec une dynamique homogène et suffisante.
    L'incarnation hardware de cette méthode est montrée dans "1bit ADC": elle est construite autour d'un ampli non inverseur d'un gain de 2, dont le point froid de la résistance de gain est connecté ou non à la tension de décalage 2Vref, en fonction de l'état du comparateur. La raison du facteur 2 est que le gain par l'entrée inverseuse n'est que de 1.

    Il est intéressant de noter qu'aucune clock n'est nécéssaire: la conversion s'effectue dès que la tension d'entrée est appliquée, de manière "combinatoire". Si on cascade plusieurs étages identiques, la tension et sa conversion vont se propager d'un étage à l'autre, à une vitesse qui n'est limitée que par les délais de propagation des éléments actifs: c'est ce qu'on appelle un "ripple through converter".

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

  4. #4
    gcortex

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Pourquoi ne mets tu pas toutes tes idées sur un site avec copyright ?


  5. A voir en vidéo sur Futura
  6. #5
    gcortex

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    avec les delta-sigma, double rampe etc ya de quoi hésiter
    d'autant que maintenant ya des DAC 24 bits...
    Dernière modification par gcortex ; 01/01/2010 à 11h24.

  7. #6
    bertrandbd

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Bonjour

    Très bon tropique, pardon topic. J'aime bien l'approche didactique de compréhension du montage

    merci

  8. #7
    Tropique

    Un regard critique sur l'architecture

    Pourquoi ne mets tu pas toutes tes idées sur un site avec copyright ?
    Pourquoi pas? Mais si on réfléchit dans l'autre sens, pourquoi?
    avec les delta-sigma, double rampe etc ya de quoi hésiter
    J'en ai aussi quelques uns dans mes cartons, mais ce n'est pas au menu du jour... à l'occasion d'un autre topic peut-être?


    Reprenons:
    Nous avons notre cellule de conversion 1bit, empilable à l'infini pour arriver au format souhaité.
    Cette unité de base n'est pas très compliquée en elle-même, mais mine de rien, un convertisseur de taille confortable va vite nécéssiter un nombre certain de composants:
    Si on voulait monter à 16 bits, pour 4 digits BCD p.ex., il faudrait 16 comparateurs et 16 AOP rien qu'en circuits analogiques: déjà 8 boitiers, plus les switches, les circuits de support, de transcodage....

    Si on veut arriver à un résultat d'une simplicité acceptable, il est clair qu'il va falloir bosser encore un petit peu plus.

    Autre point qui mérite un complément de réflexion, la précision.
    A première vue, il ne semble rien y avoir de très critique: on travaille à des niveaux confortables, et cela tout au long de la chaine, puisque les résidus sont chaque fois amplifiés avant d'attaquer l'étage suivant.
    Le problème, c'est justement ça: si on fait une erreur apparemment minime dans les premiers étages, elle va se trouver amplifiée en descendant la chaîne, au point peut être de valoir autant qu'un des incréments de niveau inférieur.
    Et là, les choses vont tourner à l'aigre: cela va causer des codes manquants, des erreurs de monotonicité, et autres joyeusetés.

    En plus, les causes possibles d'erreurs sont nombreuses:
    - les offsets de l'AOP et du comparateur
    - les erreurs du diviseur résistif
    - les erreurs sur le gain de l'amplificateur

    Si chacun des étages ajoute son petit cocktail d'erreurs, le résultat en bout de chaîne, vers le LSB, sera tout à fait anarchique, et totalement imprévisible: c'est déjà compliqué d'analyser l'effet isolé d'un type d'erreur sur un étage, mais quand on met tout ensemble, c'est la bacchanale intégrale.
    Pour éviter cela, une seule méthode sûre: conserver toutes les erreurs à un niveau prudemment inférieur à la valeur du LSB.
    Il faudra donc développer des techniques et des topologies garantissant cette condition.

    Parmi les spécificités de cette architecture, on note que sa sortie est parallèle. Ce qui n'est pas nécessairement un inconvénient, mais si on souhaite faire de l'affichage, un format série, multiplexé, serait plus avantageux.

    Autre spécificité de cette version, le produit de la conversion s'exprime en binaire naturel. Là encore, pour un affichage, il serait préférable de disposer de BCD.

    Enfin, il faudra mettre tout cela "en musique" de manière harmonieuse, pour n'utiliser qu'une tension d'alimentation unique, pour pouvoir formater le gain librement, et n'utiliser qu'un minimum de circuits courants "s'emboîtant bien" entre eux.

    Bref, encore un petit peu de pain sur la planche.....

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

  9. #8
    gcortex

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Mais si on réfléchit dans l'autre sens, pourquoi?
    pour en faire profiter + de gens et pour avoir un petit espoir de négocier avec un industriel

    le gros défaut de ton ADC, c'est que si çà passe de 0111 à 1000 le µC risque de lire 1111


  10. #9
    Tropique

    Circulez! Y a rien à voir

    Nous allons commencer à traiter les remarques vues lors de la livraison précédente.

    La première concernait la "BOM" (Bill Of Material), la quantité de composants nécéssaire: la multiplication des bits entraine celle des étages et donc du nombre de composants.
    Il existe un remède radical à ce souci: ne pas multiplier le nombre d'étages.
    Pour cela, on devra réutiliser le même étage pour tous les bits.

    Comment faire?

    Lorsqu'on fait une conversion élémentaire, il va falloir accumuler le résultat et le reste; ensuite à l'étape suivante, on reprend le reste, et on le réinjecte à l'entrée du convertisseur. Il ne reste qu'à répéter le processus autant de fois que nécéssaire pour arriver à la résolution souhaitée.
    Cela semble plus facile à dire qu'à faire: le résultat est sous forme digitale et peut facilement être accumulé dans un registre, par contre, le reste est analogique, et pour le stocker, il faudra utiliser un condensateur, donc un circuit de sample/hold.
    Il y a encore une difficulté: lorsqu'on débute le processus, l'entrée du convertisseur est connectée à la tension à convertir, et sa sortie charge le condensateur de mémorisation. Quand la conversion du premier bit est terminée, on va brancher ce condensateur à l'entrée, mais il va également falloir accumuler quelque part le nouveau reste en cours de calcul. Il n'est pas possible d'utiliser le même condensateur à la fois en entrée et en sortie, et il faudra donc un second condensateur.

    On va finalement aboutir à l'architecture montrée en "Rec ADC": c'est un convertisseur à résidu recirculant.

    Les condensateurs C1 et C2 sont branchés chacun alternativement à l'entrée puis à la sortie, l'un maintenant la tension à convertir pendant que l'autre se charge de mémoriser le residu de conversion. Les switches S1 et S2 alternent le rôle un coup d'horloge sur deux, grâce au flip flop de commande.
    Sans rien d'autre, le résidu pourrait circuler à l'infini dans le système: il faut un moyen d'injecter initialement la tension d'entrée: c'est le rôle de S0, qui se ferme au début de la conversion. Ensuite, le signal circule en boucle fermée, jusqu'à ce que tous les bits soient convertis.
    La sortie du comparateur présente les bits sous la forme d'un mot série, qui peut être exploité avec l'horloge du convertisseur et le top de début de conversion pour la synchronisation.

    En résumé: on a réussi à diviser le nombre de composants au prix d'une certaine complexification de la logique de contrôle.
    Cependant, cette complexification reste modérée, et n'est "pas perdue": il faut garder à l'esprit les autres objectifs, notamment celui d'obtenir un résultat sous une forme multiplexée, et la présentation des données sous forme d'un flux série est un premier pas dans cette direction.

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

  11. #10
    Tropique

    Circulez!, etc: la pratique

    Le schéma du message précédent était assez... schématique.

    J'ai promis du cambouis, on va mettre les mains dedans. Ce n'est pas encore tout à fait la "vraie réalité", mais ça s'en rapproche: Working ADC.

    Ici le principe est mis en application, avec quelques aménagements pour simplifier la simulation. Il y a notamment la circuiterie de support, qui permet de séquencer tout le fonctionnement.

    Au milieu, on reconnait le convertisseur de base. Le comparateur est du même type que l'AOP, vu la vitesse de la clock qui n'est que de 1KHz.
    Le switch qui permet de soustraire la valeur de la référence en fonction de l'état du comparateur est un simple buffer CMOS connecté au 10V de référence.

    Le compteur U4 génère l'alternance de commutation des condensateurs par "phi", et séquence le circuit pour 16 états, donc autant de bits: la trace rouge est l'état "0" décodé par une porte à diode.
    Cet état débute la séquence de conversion en introduisant la tension d'entrée dans le convertisseur grâce à S7:
    On voit qu'à ce moment (curseur), la tension sur TP1 (entrée du convertisseur, trace verte) vaut exactement les 6.789V d'entrée .
    Ensuite, le processus de conversion continue pour les 15bits restant: on voit l'évolution du résidu pour chaque instant: cette trace est la même que l'oscillogramme réel montré au début

    La trace magenta est le résultat de conversion, les 16 bits série

    Ces bits viennent "s'empiler" par paquets de 4 dans le registre U5: voir "Timing ADC".
    A chaque 4ème coup d'horloge, une impulsion dérivée du compteur/séquenceur vient latcher les sorties Q0 à Q3 dans un registre parallèle U7, qui récupère à chaque fois un digit hexadécimal.
    La trace verte représente la valeur du digit, multipliée par un coéfficient permettant de la comparer à la valeur d'entrée du convertisseur: à l'entrée, la résolution vaut 5V/8, et le pseudo-convertisseur de sortie a des incréments valant 5V/(24-1). Il faut donc multiplier cette sortie par 15/8 pour retrouver la valeur d'entrée: pour le premier digit, on obtient 6.25V, càd #Ax0.625. La différence entre 6.25V et la valeur d'entrée de 6.789V se retrouve dans les digits suivants, pondérée à chaque fois d'un facteur 16, puisqu'on est hexa (ou binaire).

    On a bien progressé: nos 16 bits sont non seulement convertis, mais ils sont groupés en digits série, prêts à être envoyés vers un affichage multiplexé.
    Reste le léger problème de la conversion hexa -->BCD....

    C'est ce que nous verrons au prochain épisode!

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

  12. #11
    Tropique

    Où allons-nous, et autres questions existentielles

    Avant de continuer, il serait bon de cerner un peu mieux les buts de cette entreprise.

    Nous souhaitons aboutir à un convertisseur de démonstration, basé sur des fonctions simples. Il ne s'agit donc pas de créer un engin de course, mais d'arriver à un circuit réaliste et pratique, ayant des performances suffisantes pour prouver le concept.

    Il ne faut pas se montrer trop ambitieux, sous peine de se casser les dents, mais il faut malgré tout arriver à se hisser à un niveau meilleur que le "tout-venant": ce serait déprimant de créer une usine à gaz ayant des performances minables.
    Elektor s'était une ou deux fois livré à ce genre d'exercice, pour accoucher de "machins" sortant laborieusement 2 ou 3 digits. Si c'est pour en arriver là, autant rester couché.

    Le "tout-venant" actuel est représenté par les millivoltmètres premier prix de 2000 points, ou les convertisseurs 12 bits des microcontrôleurs de base.
    Pour être un peu au-dessus, nous allons opter pour 4 digits, soit 10000 points. On va aussi inclure plusieurs canaux, deux ou quatre p.ex., et quelques exigences:
    -Tension d'alimentation unique
    -Sortie d'affichage multiplexée
    -Performances potables
    -Inventaire minimaliste, tant en qualité qu'en quantité
    -Constructibilité raisonnable sans acrobaties excessives

    Ces caractéristiques permettront de réutiliser le prototype pour servir d'afficheur tension/courant à une alim de labo p.ex.

    Le projet étant maintenant mieux défini, nous sommes prêts à entamer la suite.

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

  13. #12
    invite0fa31f40

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Tropique,merci pour ce fil,je l'adore!

  14. #13
    Tropique

    Le binaire en BCD, ou les Shadoks vont au Groland

    .
    Dans le cadre d'un programme d'amitié Grolando-Shadokienne, la municipalité Grovilloise a décidé d'inviter une délégation Shadok à venir séjourner, en couples, dans la ville.
    A cet effet elle met à la disposition de chaque couple un appartement de 100m².
    Malheureusement, les stipulations des règlements shadoks sont très claires et inflexibles: la surface d'habitation réservée à un couple doit être de 160m², ni plus ni moins.
    La visite d'amitié va-t-elle tomber à l'eau? C'est sans compter sans le bon sens et le pragmatisme proverbiaux des Shadoks.
    Ils ont aussitôt trouvé une solution à ce problème.
    Saurez-vous faire de même?

     Cliquez pour afficher


    Les shadoks sont rompus aux systèmes de numération exotiques, et leur expertise peut, comme nous allons le voir, s'appliquer à des problèmes d'électronique quotidienne.

    Il reste un obstacle principal à la réalisation de nos objectifs: la conversion binaire/BCD. Les problèmes annexes, d'alimentation et autres, sont surtout une question de cuisine interne, de bonnes pratiques et de redesign.
    Passer du binaire au BCD est plus délicat.
    S'il faut commencer à mettre des convertisseurs de code entre le convertisseur et les afficheurs, le concept perdra tout son intérêt: il faudra un µcontrôleur ou un composant programmable quelconque.

    Il faut trouver une solution plus astucieuse et plus légère.

    Examinons deux digits BCD consécutifs, disons les unités et les dizaines pour faire simple.
    Le poids du MSB des unités vaut 8, et celui du LSB des dizaines est de 10 par définition, donc un rapport de 1.25. Si nous étions en hexadécimal, ce rapport serait de deux, ce qui est logique, puisque l'hexadécimal n'est qu'une méthode commode de représentation du binaire, de base 2.
    Le BCD est donc un système de numération dont la base est non-homogène et non-entière: la plupart du temps, la base est de 2 comme en binaire naturel, mais lors d'un saut de digit, elle est de 1.25.
    Ce sont ces particularités qui rendent sa conversion délicate. Du moins par des méthodes digitales.
    Notre circuit de base, le moteur de conversion 1 bit, fonctionne en binaire, parce qu'il a été créé pour cela: la base 2 est définie uniquement par le gain de 2 de l'étage, lui-même fixé par le rapport des résistances de gain de l'AOP:
    http://forums.futura-sciences.com/at...n-1bitadcoegif
    Cette valeur n'est pas coulée dans le bronze, et on peut l'altérer comme on le souhaite. Evidemment, travailler avec des bases non-binaires voire non-entières présente en général un intérêt limité.
    En général.
    Mais ici, cela permet de créer un saut de digit BCD en fixant le gain à 1.25 au lieu de 2. Il ne faut appliquer ce gain qu'au passage entre digits: à l'intérieur d'un digit, il reste normalement à 2 comme en binaire.
    En pratique, bien qu'il soit possible de travailler ainsi, il est préférable de laisser les blocs de conversion inchangés, et d'appliquer un coéfficient d'atténuation entre les étages. Puisque le gain est de 2 et qu'il doit être ramené à 1.25, ce coéfficient doit valoir 2/1.25=1.6

    La version linéaire, ripple-through ressemblerait donc à "BCDripple"

    Le principe est applicable tout aussi facilement à la version séquentielle, à résidu recirculant: il suffit d'intercaler l'atténuateur en sortie une période d'horloge sur quatre, ce que le séquenceur déjà présent permet de faire facilement en décodant un état supplémentaire.

    Cela montre qu'un problème relativement ardu dans un domaine (le digital) est parfois d'une trivialité confondante dans un autre (l'analogique). Pourquoi s'attaquer à un rempart épais de trois mètres, alors qu'il suffit de pousser une poterne pour entrer dans la forteresse. C'est un principe bien connu des (bons) hackers.

    Cela fonctionne-t-il?
    Oui, et pour le vérifier, il suffit d'un peu d'arithmétique: la tension à l'entrée de chaque digit est divisée par 1.6, y compris, de manière implicite pour le premier (cela se vérifie d'ailleurs dans la constante de conversion). L'étendue initiale du convertisseur 16 bits binaires était de 65536 points, et après les quatre divisions par 1.6, elle est divisée par 1.64=6.5536: on se retrouve bien avec les 10000 points des 4 digits BCD.

    Quelques références:

    http://www.techno-science.net/?ongle...finition=11988
    http://fr.wikipedia.org/wiki/Les_Shadoks
    http://www.lesshadoks.com/
    http://www.youtube.com/watch?v=fQ8rPlksAu8

    A suivre....
    Images attachées Images attachées  
    Dernière modification par Tropique ; 04/01/2010 à 21h53. Motif: Oubli d'un lien
    Pas de complexes: je suis comme toi. Juste mieux.

  15. #14
    Tropique

    Imaginer, c'est bien; réaliser c'est mieux

    .
    Nous avons vu un certain nombre de bases théoriques, mais seront-elles applicables pratiquement?

    La réponse est oui, mais à condition de s'en donner les moyens:

    Un certain nombre de composants sont essentiels au bon fonctionnement de ces convertisseurs. Nous allons pour l'instant laisser de coté les aspects purement technologiques, et examiner le problème sous un angle conceptuel.

    Les composants concernés sont les résistances des unités de conversion 1 bit, et celles qui vont déterminer le rapport de 1.6 entre les digits. Il est clair que des erreurs sur ces résistances vont avoir un impact déterminant, non seulement sur la précision ou la linéarité, ce qui est déjà suffisamment déplaisant, mais surtout sur la monotonicité et la présence de codes manquants, ce qui est vraiment intolérable.

    Normalement, la fonction de transfert d'un convertisseur est un escalier régulier; si les poids des différents incréments n'ont pas les bons rapports, cet escalier aura l'air d'avoir subi un séisme de force 8 et, par exemple, le code succédant à 7973, qui devrait normalement valoir 7974 pourra aussi bien être 7972 que 7978.
    Pas très réjouissant.
    Un lien pour ceux qui veulent rafraichir leur notions:
    http://www.national.com/an/AN/AN-156.pdf

    Il est donc impératif d'avoir des résistances de précision suffisante, mais heureusement, il ne s'agit pas de précision absolue: il suffit qu'elles aient le bon rapport.
    Cela fait une grande différence, car on va pouvoir s'arranger pour utiliser des résistances identiques à l'intérieur de chacune des fonctions.
    Pour le convertisseur, c'est assez trivial puisque les valeurs sont identiques.
    Pour les atténuateurs inter-digits, il va falloir ruser un peu: il faut des résistances dans un rapport de 0.6 à 1, ou de 1 à 1.6666 selon la façon de considérer le problème.
    Celui-ci peut être résolu par une combinaison de 5 résistances.
    "BCD rec ADC" montre l'arrangement, avec Rc (si quelqu'un trouve un moyen de le faire avec moins de résistances, il est bienvenu). On voit par la même occasion comment cela s'intègre à la version séquentielle du convertisseur: le switch S3 sélectionne la sortie atténuée une période d'horloge sur 4.

    Avoir des résistances identiques permet de faciliter l'appariage au moyen d'un pont rudimentaire, avec une bonne précision, et garantit également que toutes les résistances vont varier de la même manière en fonction des conditions environnementales (si elles proviennent du même lot).

    On remarque au passage que la version à résidu recirculant est avantageuse, puisqu'elle ne nécéssite que la sélection d'un seul set de résistances.

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

  16. #15
    Tropique

    Encore quelques soucis à résoudre....

    .
    Il va encore falloir adapter quelques valeurs de résistances.

    Le circuit actuel pourrait en principe fonctionner, mais pas avec la liste d'exigences établie au #11:

    Il ne faut qu'une seule tension d'alim, et celle-ci devra donc également servir de référence; le problème, c'est que lorsque le convertisseur va voir une tension d'entrée proche de Vref (=Valim/2), la sortie de l'ampli X2 va être proche de 2Vref, et donc de Valim.
    Le meilleur rail-to-rail du monde ne peut donner que ce qu'il a, et ce ne sera pas Valim: il y aura toujours un déchet, inacceptable ici.

    Le problème est quelque peu auto-infligé, mais c'est notre choix, et il faut par conséquent le résoudre.

    BCD rec ADC final montre une possibilité:

    Au niveau de Ra, une résistance est rajoutée au pied du diviseur, ce qui amène Vref à Valim/3.
    Pour la soustraction de Vref, la tension est amenée à 2Valim/3, en créant un diviseur avec deux Rb supplémentaires, et le gain de l'ampli est corrigé en mettant en contre-réaction la résistance de Thévenin du diviseur, càd, les trois Rb en parallèle.
    Avec ces modifications, tout est cohérent, des variations identiques de résistances resteront sans effet, et le "swing" exigé en sortie de l'AOP ne sera plus que de 0.6666 x Valim, ce qui autorisera l'utilisation confortable d'un ampli normal, non rail-to-rail.

    Toutes ces modifications semblent entraîner une multiplication débridée des résistances, à rendre J.C. jaloux (pas Vandamme, l'autre).
    Mais ce n'est pas tellement grave, les résistances, même de qualité décente (il ne faut pas du haut de gamme) ne sont pas très coûteuses, et il faut relativiser: après tout, il n'y aura qu'un seul étage.

    A suivre.....
    Images attachées Images attachées  
    Dernière modification par Tropique ; 03/02/2010 à 19h12. Motif: Rectification schéma
    Pas de complexes: je suis comme toi. Juste mieux.

  17. #16
    polo974

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Donc en toute logique, le nom du générateur aurait dû devenir 3Vref...

    Plus sérieusement, quand divisé par 1.6, il y a une constante de temps qui risque ralentir la conversion (un buffer résout la chose mais ajoute un offset).
    Jusqu'ici tout va bien...

  18. #17
    Tropique

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Citation Envoyé par polo974 Voir le message
    Donc en toute logique, le nom du générateur aurait dû devenir 3Vref...
    C'est vrai que ce n'est plus très cohérent; je vais essayer de réparer cet oubli et de corriger la figure à l'occasion.

    Plus sérieusement, quand divisé par 1.6, il y a une constante de temps qui risque ralentir la conversion (un buffer résout la chose mais ajoute un offset).
    A ce stade, les schémas sont surtout conceptuels et de haut niveau, ils montrent les blocs de fonction sans encore entrer dans les détails électroniques au composant près.
    Le schéma électronique tiendra compte de cela:
    Il est de toute manière souhaitable de mettre une résistance avant les échantillonneurs, pour éviter des pointes de courant de charge dans les switches électroniques au moment de la commutation. Il y aura donc également une résistance dans la voie directe du switch 1 - 1:1.6, calculée pour valoir la résistance de Thévenin du diviseur (et suffisamment faible pour que le temps de charge reste acceptable).
    Pas de complexes: je suis comme toi. Juste mieux.

  19. #18
    f6bes

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Bjr Tropique,
    Je m'y intéresse (ton montage) ,because neige, juste à l'instant.

    Ce qu'il y a de "marrant", c'est qu'on va dire aux débutants :cablage court, éviter les pistes et détours inutiles, etc...
    et pourtant ça .....fonctionne:
    http://forums.futura-sciences.com/at...n-closeupoejpg

    Et bien sur ,tu fais "propre" et t'es.....enmouscaillé !
    Bon W E

  20. #19
    polo974

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Ce qui est somme tout assez effrayant, c'est la précision du gain de la boucle complète!
    Si on veut un 4 digit full scale, 0,003% d'erreur de gain dans la boucle, et c'est un demi lsb qui saute...

    Sans parler d'offset!
    Un offset de 0,24mV et c'est la même chose.

    Les 2 combinés, chaud devant...
    Jusqu'ici tout va bien...

  21. #20
    Tropique

    Un schéma complet, enfin

    Voici, après une période de calme, la matérialisation des principes évoqués précédemment.

    La période de gestation a été nécessaire, principalement pour mettre au propre le schéma général....

    Le circuit tient toutes ses promesses: deux voies indépendantes de 4 digits à LEDs, tous multiplexés, une seule alimentation d'environ 12V (fonctionne de 5 à 15V), une complexité acceptable, et des composants très communs.
    Cette variante n'est qu'un des nombreux exemples possibles, et je donnerai des infos permettant de modifier les caractéristiques, nombre de voies, etc.

    La tache la plus importante, pour garantir le succès de ces convertisseurs, est la sélection de certains des composants. Ce n'est pas très difficile, mais c'est une étape indispensable, et qu'il faut effectuer très soigneusement.

    C'est ce que nous verrons au prochain épisode, lors de la description du circuit.


    A suivre.....
    Images attachées Images attachées  
    Dernière modification par Tropique ; 04/02/2010 à 17h52. Motif: Rectification du schéma
    Pas de complexes: je suis comme toi. Juste mieux.

  22. #21
    Tropique

    Les nouveautés du schéma

    Dans l'ensemble, le circuit reprend les principes et les éléments déjà évoqués.

    Certaines références de composants sont adaptées, pour permettre une meilleure utilisation des fonctions:
    C'est le cas du registre, CD4015, dont la deuxième section sert maintenant à piloter les digits multiplexés. Il est clocké au rythme digit, et synchronisé par son entrée sur l'état 11, un digit sur 4.

    Un décodeur BCD/7 segments, le CD4543 se charge également de latcher les données converties qui apparaissent tous les 4 coups d'horloge en sortie de la première section du registre.
    Il attaque directement les LEDs, ce qui est tolérable pour des afficheurs petits, ou ayant une luminosité suffisante.

    Pour créer les deux voies, un bit supplémentaire du compteur/séquenceur controle la commutation des entrées, ainsi que des groupes de transistors de commande digit, grâce à deux transistors de "super-multiplexage", l'un PNP, en collecteur commun, et l'autre NPN, en émetteur commun.
    Attention à la succession des digits, qui est un peu déroutante: la conversion débute par le MSD, c'est celui qu'on s'attendrait à voir en premier, mais l'état décodé pour la synchro est le dernier, donc le LSD, et au moment où l'impulsion de clock arrive, ce sont ses données qui sont latchées dans le 4543. D'où la succession D0, D3, D2 et D1.

    Un amplificateur, U5, est inséré dans la partie commune de l'entrée, pour amener la sensibilité fond d'échelle à la valeur souhaitée, ici 1V.
    Une autre section, U1 fonctionne en oscillateur pour clocker l'ensemble, à environ 1600Hz.

    On remarque également que la sortie de U2, le convertisseur élémentaire, est connectée à un inverseur de tension par une résistance R33. Le but est de permettre à la sortie de descendre réellement à 0, même quand elle subit un courant positif provenant des résistances de contre-réaction. Cette résistance tire la sortie avec un courant négatif légèrement plus élevé que le courant positif maximum possible.
    Cet arrangement permet à l'ampli de garder le controle de sa sortie jusqu'à 0, ce qui est normalement impossible, même pour un AOP rail-to-rail. Cette performance est essentielle au bon fonctionnement du convertisseur, et ne pourrait normalement pas être atteinte sans alim négative, ce qui était exclu ici.

    On constate que les résistances entourant U2 sont affublées de signes + ou -. Cela sera à prendre en compte lors du tri des résistances, de manière à compenser certains effets parasites, la résistance de sortie de U3, et le gain fini de U2.
    Je reviendrai en détails sur ce point.

    La photo montre le proto correspondant au schéma: le précédent avait des composants légèrement différents pour le controle des digits, un ULN2803 plutot que des transistors discrets.

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

  23. #22
    Tropique

    Sélection des composants

    .
    Nous abordons un chapitre crucial pour le bon fonctionnement du convertisseur: certains des composants doivent avoir des tolérances qui semblent impossiblement serrées.

    Mais en réalité, avec un peu de soin, de méthode, et un matériel de mesure minimal, c'est presque une formalité.

    Voyons d'abord l'appariement des résistances.
    Pour être à l'aise dans les marges, il faudrait qu'elles soient appariées à +/- 1/40000ème, càd 25ppm.
    Il est clair qu'un multimètre 2000 points est très loin du compte. Pour contourner la difficulté, on va juste s'en servir pour controler l'équilibre d'un pont. La première figure de ""sélection ADC" montre comment cela se passe:
    • Initialement, on démarre avec 4 résistances de 10K 1%, l'ajustable de 100 ohms étant centré. Le multimètre connecté en millivoltmètre va afficher une valeur quelconque, positive ou négative. On la note.
    • Ensuite, on bascule le switch dans l'autre position; on additionne la nouvelle valeur à celle précédemment notée et on divise par deux: cette moyenne représente l'écart de la moitié gauche du pont par rapport à l'équilibre.
    • On fait ensuite, la soustraction de cet écart de la valeur lue actuelle: le résultat est la valeur cible du réglage que l'on doit faire pour revenir à l'équilibre; on règle donc pour afficher cette valeur.
      Exemple: la valeur mesurée en position 1 est de 22mV; en position 2 on a -10mV. La somme est de 12mV, l'écart de 6mV. On soustrait 6mV à -10mV, ce qui donne -16mV. Si on rebascule dans l'autre sens, on doit retrouver +16mV, preuve que le réglage est bien fait: les valeurs sont symétriques.
    • On peut ensuite peaufiner en reprenant le même processus, pour être sûr d'avoir fait un réglage parfait. Pour cette phase, qui est la calibration de notre "instrument", il faut être particulièrement soigneux et exigeant. La tension d'alim peut être montée plus haut, jusqu'à 40V, pour avoir un maximum de précision. Avec 40V et une résolution de 0.1mV, on peut équilibrer la branche du pont avec une précision de 10ppm.
      Pour cette phase, une tension de 12V est le strict minimum, idéalement il vaut mieux plus.

  24. Cette phase terminée, on peut passer à l'appariement proprement dit:
    • On prend une résistance de 10K, 330K, ou 1K selon le groupe choisi et on l'installe en "référence" (R3).
    • On teste ensuite chacune des résistances du lot en "R.U.T.", et on note la valeur de l'écart donnée par le millivoltmètre. En pratique, on peut coller une étiquette, mais le plus simple est de prévoir des bacs de rangement (ou bacs à glaçons), avec une case pour chaque incrément: 0, 0.1, 0.2mV.... etc, et la même chose en négatif.

    Quelques remarques pratiques:
    -Le lot doit être homogène (même fabricant et même type évidemment, mais aussi même lot de fabrication, donc toutes sorties du même conditionnement) et doit compter suffisamment d'exemplaires, p.ex. 50.
    -Prendre des résistances qualité potable (pas des carbones!), et faire attention aux effets de température: les metal-film de base ont un coéfficient de 200ppm, et si une résistance a vraiment ce coéfficient (improbable, mais..), elle sera très sensible à la chaleur des doigts, de l'haleine, aux courants d'air, etc.
    -Controler de temps à autre que la référence du pont n'a pas bougé, en manoeuvrant le switch: la valeur indiquée doit exactement changer de signe, sans plus (ne pas oublier de revenir à la position initiale).
    -Pour les 10K et 330K, faire le test à une tension de 30V ou 40V, si disponible. Pour les 1K, ne pas dépasser 12V: la précision exigée est moins élevée, et il ne faut pas causer d'auto-échauffement excessif.
    -Les valeurs données sont indicatives: le circuit fonctionnerait aussi bien avec des 1.2K, 6.8K et 390K p.ex. Il faut rester dans le même ordre de grandeur, mais la valeur exacte n'est pas importante.

    Lorsqu'un groupe est fait, on peut choisir les exemplaires "élus".
    Ce peuvent être ceux du bac le plus peuplé, mais pas nécéssairement: pour de faibles deltas, comme ici, il est acceptable de grouper deux résistances en série ou parallèle pour arriver à la valeur voulue.
    Par exemple, si on a R23 à +2, R11 et R12 peuvent aussi valoir +2, mais la combinaison -7/+9 est également acceptable. Ce qui facilitera les "mariages" avec un échantillonnage réduit ou défavorable.
    Pour les 330K, il faut en plus tenir compte d'autres facteurs: d'une part, la résistance de U3, qui est typiquement de 190ohms, et le gain fini de U2.
    Voyons d'abord ce dernier point.
    Pour compenser cet effet, il faut que l'ensemble R5, R6, R7 soit marginalement plus élevé que R8, R9, R10, environ 30ppm. La valeur précise n'est pas critique, et en fait la compensation consistera surtout à éviter que le bilan se fasse dans le mauvais sens: si on n'arrive pas à équilibrer les ensembles de résistances à l'unité près, on met le plus élevé en CR de U2.

    Pour compenser U3, il faut être plus déterministe.
    Soit on choisit l'ensemble R5, R6, R7 pour qu'il vaille 2/3 de 190ohms de plus que R8, R9, R10, soit on les choisit toutes égales (à ce qui précède près), et on met une résistance supplémentaire de 190ohms en série avec R5, R6.
    Si on joue uniquement sur les deltas de résistances, il faut traduire la valeur lue en mV en ohms. L'atténuation du pont est de 1/4: p.ex., avec 40V d'alim, un écart de 1/1000ème se traduit par 10mV, autrement dit,



    Tout cela a l'air bien compliqué....
    En fait, c'est surtout compliqué à expliquer: une fois que l'on a compris la procédure, on la suit de façon logique et naturelle, elle n'est pas très difficile.
    Et puis, il faut mériter d'une façon ou d'une autre la résolution et la précision que l'on crée à partir de "rien".
    Rien n'est gratuit en ce bas monde.

    A suivre....
Images attachées Images attachées  
Dernière modification par Tropique ; 22/01/2010 à 18h23. Motif: image corrigée
Pas de complexes: je suis comme toi. Juste mieux.

  • #23
    Tropique

    Sélection des composants (suite)

    .
    Le processus de sélection des résistances était laborieux, mais en lui-même il est intéressant. Il montre que l'on peut, à partir de composants standards, "converger" progressivement vers une précision d'appariement arbitrairement élevée.
    C'est une technique qui peut trouver son utilité dans bien d'autres situations, pour créer des atténuateurs de précision p.ex.. Ici, le détecteur d'équilibre n'avait que 0.1mV de résolution, il serait possible d'aller beaucoup plus loin en faisant précéder le multimètre par un ampli X100, alimenté sur pile.

    Voyons maintenant le candidat suivant, l'AOP, sur la seconde figure du dessin précédent.
    Ici, les choses sont beaucoup plus simples: il s'agit de vérifier que les deux sections critiques de l'AOP ont une tension d'offset suffisamment faible.
    Pour cela, on les câble en ampli X1000, pour leur faire amplifier leur propre tension d'offset. Les µV deviennent ainsi des mV, et les mV des volts, ce qui permet d'évaluer confortablement cet offset.
    Il serait possible de prendre directement des amplis de précision, ayant un offset garanti de 100µV ou moins, ce ne sont pas les modèles qui manquent sur le marché, mais cela ruinerait tout l'amusement et le côté "sportif" de l'entreprise.
    Les TLC 274 sont assez précis; la famille comporte d'ailleurs le TLC277 qui est garanti à 0.5mV. J'ai testé un certain nombre d'exemplaires, et les valeurs étaient comprises entre quelques µV et 1mV. Un seul opérateur atteignait 1mV. C'est bien sûr un "coup de sonde" sans valeur statistique, mais cela augure bien.
    Il faut tester l'AOP du convertisseur, ainsi que celui travaillant en comparateur
    L'opérateur servant d'oscillateur est indifférent à la présence d'offset, mais le préampli, s'il est utilisé, devrait aussi être à faible offset.
    On peut aussi lui adjoindre un réglage de 0, pour compenser non seulement sa tension, mais aussi les autres sources éventuelles de décalage.
    On n'est pas non plus obligé de s'en tenir à un AOP quadruple: deux doubles, p.ex. un TLC272 et un TLC277 pourraient convenir et faciliter éventuellement la sélection.
    Idéalement, l'offset maximal devrait être de 150µV; à la rigueur, 200 ou 250µV sont encore acceptables.
    Pour les essais, on peut mettre un circuit non-trié dans le support, le fonctionnement ne sera pas affecté.

    Il reste encore deux composants critiques, C2 et C3: étant donné leur rôle dans les échantillonneurs de précision, ils doivent avoir une très faible absorption diélectrique.
    Ce n'est pas un paramètre qu'il est facile de définir simplement: les conditions de mesure ont une importance déterminante, et il n'est pas facile d'extrapoler ces chiffres à d'autres conditions de fonctionnement.
    Ce que l'on peut dire avec certitude, c'est que les mylars standard ne conviennent absolument pas.
    Les polycarbonates sont marginaux, et plutot du mauvais côté de la marge: on constate parfois des "bizarreries" dans le fonctionnement.
    Les polystyrènes et polypropylènes conviennent parfaitement: les PS sont théoriquement meilleurs, mais pour ce circuit, cela ne fait aucune différence, et les PP, beaucoup plus courants, sont le choix idéal.

    Certains se sont inquiétés de la précision vertigineuse exigée pour le bon fonctionnement du circuit:
    Ce qui est somme tout assez effrayant, c'est la précision du gain de la boucle complète!
    Si on veut un 4 digit full scale, 0,003% d'erreur de gain dans la boucle, et c'est un demi lsb qui saute...

    Sans parler d'offset!
    Un offset de 0,24mV et c'est la même chose.

    Les 2 combinés, chaud devant...
    On peut examiner quel serait l'impact sur le fonctionnement d'une précision moins que parfaite.

    Pour évaluer différents scénarios, un convertisseur de test a été simulé. Il est réalisé de manière linéaire, pour éviter les complications d'un séquenceur, qui en plus consommerait les ressources déjà fort sollicitées du simulateur.
    Une première passe est faite sur toute l'étendue de conversion; ce sera la seule: il a fallu une nuit à LTspice pour la sortir, et les résultats (compressés) font quelques gigas!

    Sim Schema montre le circuit utilisé: tous les étages ont des paramètres d'erreur programmables, mais identiques, puisqu'en séquentiel, c'est toujours le même moteur de conversion qui convertit l'ensemble des bits.
    Full span montre le résultat: la trace magenta est la tension d'entrée, la trace verte le résultat (synthétique) de la conversion obtenu en sommant les bits de sortie avec leur pondération respective.
    On constate que la trace verte est assez "hérissée": c'est normal, il faut le temps que les reports se propagent jusqu'au bout du convertisseur avant que la valeur finale ne s'établisse, ce qui génère des glitches dans l'intérim.
    Globalement, le résultat a l'air assez convaincant, mais il est impossible de juger précisément: la trace couvre plus de 10K points, et les détails "intéréssants" sont invisibles.
    A partir de maintenant, on ne va plus s'intérésser qu'à une zone réduite de la fonction de transfert: une vue globale n'apporte pas d'informations suffisantes, et consomme des ressources informatiques monstrueuses.
    Zoom normal montre une zone intéréssante: le report vers le bit le plus significatif, autrement dit le passage de 7999 à 8000, qui est la transition la plus "violente" possible dans ce convertisseur. A cet instant, tous les bits changent en même temps, et la moindre erreur de pondération est immédiatement apparente.
    On voit, vers le centre, après le "glitch" majeur, une marche de l'escalier un peu plus large: c'est le résultat des erreurs résiduelles, sans défaut volontairement introduit. Pas de quoi fouetter un chat, mais c'est normal.
    Delta R/1000 montre ce qui se passe si une résistance de gain de l'AOP a une erreur de 1/1000ème par rapport à sa valeur nominale:
    Le résultat est un solide "accident" dans l'escalier. Il faut relativiser cependant: dans l'absolu, cela ne représente que quelques marches, et 1/1000, c'est 10x la résolution, 40x la tolérance recommandée sur les résistances. C'est donc une erreur vraiment massive.
    Vref 2mV montre le résultat d'une erreur de 2mV sur la référence du comparateur; cela pourrait être causé par un offset, ou une erreur sur le diviseur. Cela se traduit par un bloc de codes manquants, une grosse marche au lieu de quelques petites.
    Offset 2mV simule un offset sur l'ampli du moteur de conversion: le résultat est un décalage de zéro, pratiquement sans impact sur la fonction de transfert: c'est donc relativement bénin.
    Enfin, Zoom multi est là à titre documentaire: cela illustre le fonctionnement du convertisseur, ce sont les sorties des amplis des derniers bits, en présence d'une erreur. Les sorties de poids les plus faibles (celles dont la pente de la rampe est la plus forte) "s'enfoncent" progressivement, jusqu'à saturer, ce qui cause les erreurs et les codes manquants.
    Pour se faire une idée plus réaliste de l'effet des erreurs dans un cas réel, on peut les combiner:
    Medley montre l'effet de toutes les erreurs précédentes simultanément actives, mais à un niveau plus raisonnable:
    Une erreur de gain de 2/10000, un offset et un décalage de référence de 1mV. C'est tout de même plus de 10x les tolérances recommandées, mais l'impact est à peine visible, une translation de la caractéristique, et une marche de l'escalier un peu plus haute.
    Cela montre en fait que le système a une bonne dose de résilience..... ce qui n'est pas une raison pour cochonner les tâches de tri et d'appariement!

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

  • #24
    Tropique

    Re : Convertisseurs A/D artisanaux, entièrement sculptés à la main

    Suite des figures:
    Images attachées Images attachées
    Pas de complexes: je suis comme toi. Juste mieux.

  • #25
    Tropique

    Particularités

    .
    Avant d'examiner les variantes et adaptations possibles, faisons un petit point sur les spécificités de cette famille de convertisseurs.

    Si des coeurs vaillants et des âmes téméraires ont l'intention de dépasser le stade didactique, et veulent réaliser "pour de vrai" un convertisseur, ils sauront à quoi s'attendre....

    Pour avoir des points de repère, on peut le comparer à un modèle plus classique: la paire CA3161 et CA3162 convient bien pour cela, bien qu'elle soit maintenant plus ou moins obsolète.
    Ils ont pas mal de points communs:
    -Tous les deux sont destinés à piloter des afficheurs à LEDs, bien adaptés à des appareils de labo: l'exemple le plus typique étant l'affichage de la tension et du courant sur une alim variable.
    -Dans les deux cas, les sorties sont multiplexées, ce qui facilite l'interfaçage aux afficheurs.
    -Leur gamme est unipolaire, ce qui cible leur utilisation vers des applications "instruments"*.
    -Une seule tension d'alimentation est nécéssaire.
    -Il n'y a pas d'autozéro, l'offset doit être compensé par un ajustable**.

    Les divergences commencent à apparaître lorsqu'on compare les chiffres:
    -Les CAxxxx n'ont besoin que d'une paire d'ICs par canal; ici les deux canaux en exigent 7, presque le double. Le nombre de composants discrets est également plus élevé, ce qui signifie une complexité globalement doublée.
    -La résolution est 10x plus élevée que pour les CA: un digit de plus. Pour des alims, c'est un avantage substantiel: il est rare que l'on se limite à 10V, et on peut bénéficier d'une résolution de 10mV sans passer par un changement de gamme.
    -Malgré le nombre de composants plus élevé, le coût est largement plus faible: les ICs sont standards et bon marché, et ne risquent pas de devenir obsolètes à moyen terme.
    -On bénéficie de plus de flexibilité: la tension pleine échelle n'est pas rigidement fixée à 1V, et peut être adaptée dans une large plage en modifiant une résistance. Les afficheurs peuvent être à cathode ou anode commune, en modifiant la polarité de drive des digits. On peut utiliser si on le souhaite une tension de référence externe, pour travailler de manière ratiométrique par exemple***.
    On pourrait aussi passer à 4 voies avec un minimum de complications, en décodant des digits et des entrées supplémentaires.
    -La réalisation nécéssite un tri de composants, qui est superflu pour les CA, et qui implique un solide supplément de travail.

    Et enfin, LA particularité majeure:
    Les convertisseurs A/D destinés à l'affichage travaillent généralement à un rythme compris entre 3 et 6 conversions par seconde: plus lent et c'est énervant, plus rapide et c'est exaspérant.
    Mais ici, le rythme de conversion est indissolublement lié à celui du multiplexage: à chaque fois qu'un digit est converti, il doit être affiché.
    Il n'y a dans le circuit aucun registre, latch, compteur ou autre élément mémoire qui pourrait servir de tampon. A part le registre qui désérialise les bits convertis, et le latch qui garde le digit affiché stable pendant que le suivant est converti, bien sûr.
    Ce qui signifie que les conversions et les cycles d'affichage se passent à la même vitesse, et comme il n'est pas possible de descendre sous 50Hz pour le multiplexage, il n'est pas possible de descendre sous 50 conversions/seconde. Un cas typique où l'abondance de biens nuit....
    Si le dernier digit hésite exactement entre deux valeurs, il va flashouiller à 25Hz. Si c'est entre 1234 et 1235, c'est ennuyeux; si c'est entre 4999 et 5000, c'est franchement c***ique.

    Il faut rester réaliste malgré tout: c'est rare d'avoir une hésitation bien symétrique, c'est rarissime qu'en plus cela se produise pour ces valeurs particulières. Mais rarissime ne signifie pas absent. Vous voila prévenu.
    L'affichage ultra-rapide est plutot déconcertant. Mais certains le trouveront peut être à leur goût...
    C'est en tous cas une des données du problème, et il faut accepter de vivre avec si l'on opte pour ces convertisseurs: l'adjonction d'un tampon est parfaitement envisageable, mais ruinerait la belle simplicité de départ.

    * Moyennant quelques switches analogiques supplémentaires, il serait possible de rendre le convertisseur bipolaire.
    ** Une phase d'autozéro pourrait également être créée, à nouveau avec des switches, et en exploitant les condensateurs de hold différemment.
    *** Il suffit d'échanger U3 et le 4053 qui sert d'inverseur pour le registre de multiplexage, et d'entrer la référence variable sur la voie x.

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

  • #26
    Tropique

    Les variantes

    .
    L'architecture de base:

    Jusqu'ici, nous avons vu deux déclinaisons de ces convertisseurs: la version "linéaire", 100% parallèle, et la version "recirculante", 100% séquentielle.
    Il est possible d'adopter une configuration intermédiaire. Bien sûr, grouper les bits par 3 ou par 5 n'aurait pas beaucoup d'intérêt, mais si on choisit de convertir 4 bits d'un coup, cela permet d'obtenir chaque digit directement, sans désérialistion. Cela permet également de diviser par 4 le rythme des échantillonneurs-bloqueurs, ce qui peut être bienvenu si on convertit beaucoup de canaux, 4 ou 8 p.ex.
    En pratique, il suffit de reprendre une des "lignes" de "Sim Schéma", plus haut, et de la reboucler via les échantillonneurs.
    Il faut aussi une adaptation mineure du séquenceur.
    En pratique, cela se traduit par une petite simplification de la logique, au prix d'une complexification analogique, notamment 4 fois plus de résistances à trier (mais avec moins de précision).
    Il est également possible de convertir les 4 digits, et de tout multiplexer, pour créer le nombre de canaux souhaités.

    Pour augmenter le nombre de canaux, la recette est simple: prendre le nombre de bits nécéssaires sur le compteur X2, et les décoder en analogique pour les entrées (avec un CD4051 ou CD4052 p.ex.), et en digital (avec un CD4514 p.ex.) pour générer les commandes digits. Pour deux voies, l'expédient du registre avec des transistors de sélection de groupes est acceptable, pour 4 canaux ou plus, "l'arborescence" prendrait des proportions excessives, et il vaut mieux utiliser un décodeur dédié.

    Détails

    Voyons maintenant une variante avantageuse, si l'on ne souhaite pas s'en tenir à une tension d'alimentation unique.
    Si l'on choisit d'avoir une tension de référence séparée (plus basse que la tension d'alim principale), on n'est plus obligé d'avoir des valeurs de résistances différentes autour du convertisseur, ce qui simplifie le tri.
    "Variante" montre le principe: Vref est maintenant suffisamment bas par rapport à l'alim (10V pour 12V p.ex.), ce qui permet de choisir des résistances identiques autour du convertisseur, sans risque de saturer l'ampli U2. Il ne faut donc plus de groupements //, mais en plus, comme U3 est échangé pour le 4053 qui servait d'inverseur, il n'est plus nécéssaire non plus de choisir des résistances un peu plus élevées ou un peu plus basses pour compenser sa résistance de sortie. Toutes les résistances sont maintenant identiques (par groupes), et nominales.
    Attention à l'inversion des entrées de U4.

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

  • #27
    Tropique

    Dernières réflexions sur les variantes

    Affichage

    Je l'ai déjà signalé, ce circuit peut s'accomoder d'afficheurs anode ou cathode commune.
    Le schéma est dessiné pour des cathodes communes. Pour en changer, il suffit de mettre la pin "PH" du CD4543 à 1, de supprimer l'inverseur entre la sortie de U7 et le registre de scanning, et de "changer le sexe" de tous les transistors.
    Si l'on souhaite mettre des afficheurs de grande taille ou peu lumineux, l'attaque directe par le CD4543 est un peu limitée, et il faudrait intercaler des drivers, ULN2003 ou similaire, d'une polarité adaptée aux afficheurs (et mettre PH au niveau adéquat). Il faut, le cas échéant, intercaler des résistances de limitation correctes sur les segments.
    Noter que des circuits comme le 4547 ont directement des sorties haut courant.
    C'est particulièrement nécéssaire si on opte pour un nombre de canaux élevé, 4 ou 8.
    Huit est la limite supérieure: le rapport de multiplexage devient alors de 1/32, et les échantillonneurs doivent "pédaler" à des vitesses qui deviennent déraisonnables; il est d'ailleurs souhaitable de diminuer les condensateurs à 10 ou 15nF si on conserve la topologie 1 bit. En 4 bits, les marges sont bien plus confortables, et la valeur peut rester à 47nF.

    Précautions

    Comme avec tous les convertisseurs A/D multiplexés, il convient de faire attention à ce que les variations de courant digits ne se retrouvent pas mixées au signal à convertir, p.ex. couplées par une piste de masse commune. Le résultat serait un affichage erratique, et un crosstalk apparent entre les canaux.
    Ces symptômes peuvent se retrouver également en cas de couplages électrostatiques, couplage parasite sur l'entrée - de U2 ou injection de charge sur les condensateurs des échantillonneurs.
    Une absorption diélectrique excessive de ces mêmes condensateurs donne des effets très similaires.

    Les résistances que l'on a soigneusement triées doivent rester physiquement groupées, et éloignées de toute source de chaleur, pour garantir un bon tracking.

    Un très bon découplage est également indispensable, pour minimiser l'effet d'injection de parasites sur l'alimentation.

    Tensions d'alimentation

    La valeur "recommandée" est de 12V: une valeur assez élevée donne une bonne dynamique et une meilleure immunité au bruit, et minimise les résistances de sortie des CMOS.
    D'autres valeurs sont envisageables, et le circuit reste fonctionnel de 5 à 15V, mais aux limites des problèmes commencent à apparaitre, et le 4543 faiblit à 5V, et commence à chauffer de manière appréciable à 15V.
    Si on travaille à 5V, il vaut mieux opter pour des 74HC, qui ont des performances bien meilleures que les CD4000.
    Si la tension de référence est séparée, on peut en principe choisir librement sa valeur; en pratique, pour des raisons de dynamiques, il vaut mieux ne pas descendre trop bas non plus. Il ne faut pas oublier que l'on a affaire à un 10000 points. Si on souhaite plus de sensibilité, il est préférable d'agir en amont, au niveau de U5, puisqu'il est de toutes manières inclus.


    Derniers rappels importants

    Deux points sur lesquels il est bon d'insister, pour éviter des déconvenues, avant de cloturer le sujet.

    -Si le circuit est réalisé avec des composants non-triés, il ne fonctionnera pas correctement, ce n'est pas la peine d'essayer, même avec des résistances à 0.5%.
    -La vitesse de rafraîchissement de l'affichage, de 50Hz, est vraiment déroutante...

    En conclusion

    Peut-on encore faire ses convertisseurs soi-même au XXIème siècle?
    Je ne donne pas de réponse définitive, il y a du pour et du contre. A vous de juger.
    Quoiqu'il en soit, ces circuits sont relativement facile à construire et à modifier, et leur fonctionnement est tout à fait fascinant (voir les oscillogrammes publiés ci-dessus).
    Leur valeur pédagogique ne fait aucun doute.
    Ils sont également utilisables pratiquement: j'en ai réalisé bon nombre de versions depuis plus de 15 ans, et ils ont passé le test de "réalité". Mais avec les réserves mentionnées.

    Fin?
    Pas de complexes: je suis comme toi. Juste mieux.

  • #28
    Tropique

    Re : Dernières réflexions sur les variantes

    .

    Déplacement en "Projets"

    Attention, les schémas ont été rectifiés.
    Pas de complexes: je suis comme toi. Juste mieux.

  • #29
    Antoane
    Responsable technique

    Re : Sélection des composants

    Bonsoir,
    concernant l'apairement des résistances (méthode géniale, soit dit en passant), pourquoi prendre des 10k 1%alors que le potentiomètre permet justement de régler une valeur précise ? Parce que 100ohm ne couvrent pas les 5% de 10k du pont ? auquel cas deux résistance à 5% bien choisie pourront convenir ?

    Quels problèmes posent les carbones ? pas seulement une stabilité dans le temps ?
    Merci d'avance.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  • #30
    Tropique

    Re : Sélection des composants

    Ces résistances vont servir de référence pour toutes les opérations d'appariement ultérieures, il est donc préférable qu'elles aient une stabilité correcte.
    En principe, des résistances à 1% sont généralement meilleures sur ce point (puisque la somme de toutes les dérives possibles doit rester sous 1%).

    Accessoirement, les 100ohm du potentiomètre ne couvrent même pas le pire des cas de 1%, mais c'est un peu voulu: quand des résistances arrivent à des extrêmes de leur tolérance, c'est qu'elles ont un problème, et il vaut mieux les écarter pour des applications sensibles.

    En plus, le meilleur des potentiomètres n'est jamais d'une stabilité parfaite, et il vaut mieux minimiser le plus possible son impact en réduisant sa valeur.

    Les résistances carbone sont d'une stabilité assez moyenne, et ont un fort coéfficient de T° négatif: environ 300ppm/°C. Autrement dit si on approche le doigt de l'une, elle va augmenter de 0.1°C, et sa valeur diminuera de 30ppm, ce qui va déjà commencer à faire beaucoup pour cette application.
    Ce n'est pas impossible, mais il faut prendre des précautions extraordinaires, aussi bien à la sélection qu'à la construction, pour rester dans des limites acceptables.
    Des résistances metal-film n'ont rien d'exceptionnel à l'heure actuelle, il n'y a donc pas de raison de se "punir" en mettant des carbones.
    Pas de complexes: je suis comme toi. Juste mieux.

  • Discussions similaires

    1. Convertisseurs LM331
      Par invite64946c12 dans le forum Électronique
      Réponses: 8
      Dernier message: 14/03/2009, 16h05
    2. idée d'isolation entièrement écologique et économique
      Par invite158583bb dans le forum Habitat bioclimatique, isolation et chauffage
      Réponses: 4
      Dernier message: 14/10/2008, 21h40
    3. Recherche d un robot entierement constructible et programmable
      Par inviteaebdcd80 dans le forum Technologies
      Réponses: 3
      Dernier message: 05/10/2007, 21h03
    4. LCD_OUT ou LCD_Char et remplie entièrement la ROM
      Par invite99eb5770 dans le forum Électronique
      Réponses: 3
      Dernier message: 11/02/2007, 17h04
    5. génome non entièrement séquencé
      Par invite4e91896d dans le forum Biologie
      Réponses: 2
      Dernier message: 08/04/2005, 12h57
    Découvrez nos comparatifs produits sur l'informatique et les technologies.