Source de tension variable / Alimentation de précision

Bonjour à tous,
En cette période de farniente estival, loin du fer à souder et afin de ne pas me rouiller les neurones, j’ai réfléchi à une application autour de la référence de tension AD587 url=https://www.analog.com/media/en/technical-documentation/data-sheets/AD587.pdf[/url].

Grâce à LTSpice, il n’a pas fallu longtemps pour mener cette étude et en simuler le fonctionnement.

Ce circuit pourra servir d’alimentation de précision ou de source de tension qui permettra l’étalonnage de nos voltmètres.

Voltage source.jpg

Dans sa version câblée, les décades de tension pourront être choisies par 3 commutateurs rotatif 1 circuit / 10 positions.

0 à 10 V
0 à 1 V
0 à 100 mV

permettant d’étager la tension de sortie de 0 V à 11.1 V par pas de 10 mV (comme sur les images des 2 simulations) ci-dessus

Le courant de sortie pourra atteindre 1A avec l’utilisation d’un TCA0372 url=https://www.onsemi.com/pub/Collateral/TCA0372-D.PDF[/url].

L’alimentation symétrique pourra être basée sur le couple 7815 / 7915. On trouve des modules tout faits chez les chinois pour quelques poignées de riz…

Nota : on pourrait de même utiliser le circuit REF102C comme référence de tension url=https://www.ti.com/lit/ds/symlink/ref102.pdf[/url].

Variante du schéma avec le AD857 câblé en référence de tension négative (source datasheet du AD857) afin de gagner un AOP

Voltage source ref neg.jpg

Edité :

Nouvelle simulation avec une référence de tension LT1236-10 en référence de tension négative.

Voltage source LT1236.jpg
Toutes les suggestions sont les bienvenues…

Bonsoir JP, bonsoir à tous.

Pourquoi ne pas transformer le TCA0372 des deux premiers schémas en buffer inverseur/non inverseur?
Cela permet, pour la même tension de sortie en valeur absolue, d’inverser sa polarité à la demande pour seulement le coût d’un switch inverseur!

Ci-dessous le schéma inverseur/non inverseur préconisé par Sylvain dans une discussion précédente.

Bonjour à tous, bonjour Gérard,

Je trouve un peu dangereux de pouvoir inverser la polarité de sortie.
Une étourderie est vite arrivée…

D’autre part, j’ai résolu le problème en câblant la référence de tension en valeur négative.
Je pense que je vais faire mes essais réel à mon retour de vacances avec un LT1236-10 url=https://www.mouser.fr/datasheet/2/609/lt1236-1270037.pdf[/url] qui ne coûte que 4 à 5 euros.

Prochain challenge, comme le LT1236 n’a pas besoin du rail positif de la tension d’alimentation dans cette configuration, je vais cogiter pour une alimentation simple.

Bonjour
Sylvain réapparaît avec bien sur une autre manière d’aborder ce problème (mes excuses et bonjour a JP et Raffou)
Soit un compteur 16 bits 65536 et un comparateur 16 bits que l’on compare, superieur ou pas, le résultat, après mise en forme, est intégré et le résultat est proportionnel a U/n
ex: si la mise forme sort un signal de 65,536 volts et nous aurons une tension de sortie de 0 …65,535 volts avec un pas de 1mV
A discuter…

Bonsoir Sylvain, bonsoir JP, bonsoir à tous.

Sylvain, ton intervention vient de me suggérer une autre idée :

  • Soit 3 comparateurs logiques (4 bits) assujettis au même compteur décimal, chacun d’entre eux ayant sa propre consigne (0…9) imposée par une roue codeuse. Donc une roue pour les volts, une autre pour les dixièmes et la dernière pour les centièmes.
  • On dispose alors de 3 générateurs PWM programmables indépendamment bien que pilotés par la même horloge (sortie « > » ou « < » des comparateurs), générateurs qui peuvent avantageusement remplacer le pont diviseur avec ses résistances de précision et ses commutateurs 1 circuit 10 positions.
  • Il ne reste plus qu’à filtrer chaque source PWM. La moitié droite du dernier schéma publié par JP peut même être reconduite à condition d’appliquer une structure de Sallen-Key (de 2 ou mieux du 3ème ordre) aux 3 amplificateurs à gain unitaire (LM324) afin de les transformer en filtre passe-bas.
  • Le sommateur à résistances précédant le TCA0372 doit être conservé tel quel.

PWM.PNG

Bonjour,
Bien vu, attention à la précision des résistances pour garantir une bonne monotonicité
Tiens bon JP, ne te laisse pas déborder par nos spéculations
Bonne journée
Sylvain

Salut vous 2, bonjour aux autres,
Vous partez sur une voie sans issue pour moi qui cherchait un circuit simple.
Avec ma solution, en utilisant des résistances à 0.1%, j’arrive à une erreur globale de +/- 0.1% en théorie et ça sans aucun réglage, le circuit devrait être fonctionnel dès la dernière soudure terminée.
Je ne sais pas quelle sera la précision finale de vos élucubrations neuronales et je suis curieux de voir ce que vous allez pondre.
A vous lire…
Bon dimanche

Bonjour JP, bonjour à tous.

Avec des commutateurs à 1 circuit 10 positions, il va falloir faire un choix:
? soit choisir une plage de 0 à 9,99 volts [0…9],
? soit choisir une plage de 1,11 volt à 11,1 volts [1…10].
Pour obtenir une plage de 0 à 11,1 volts comme souhaitée initialement, il faut utiliser des commutateurs à 11 positions [0…10].

Heureusement, il existe dans le commerce le genre de commutateur ci-dessous à 1 circuit 12 positions que l’on peut verrouiller mécaniquement à 11 en déplaçant une butée. Ce modèle existe en version pour montage sur circuit-imprimé ce qui dispense de câbler pas moins de 36 fils volants si le modèle à cosses à souder lui était préféré.

090_8404-1c[1].jpeg

Salut Gérard,
Effectivement je me suis trompé dans mon texte, je parlais bien de 10 valeurs de tension, soit 11 positions autant pour moi.
Et effectivement, il suffit de modifier un commutateur Lorlin 12 positions pour CI.
Sinon, ça avance ton projet avec roues codeuses et comparateurs 4 bits qui me semble plus complexe que mon schéma (fortement inspiré d’un article paru dans la revue Nuts & Volts) https://www.nutsvolts.com/magazine/article/build-a-variable-voltage-reference

Bonsoir,
compteurs + compateurs sont pour éliminer des resistances de precision.
Avec un FPGA en 1 circuit c’est réglé
Mais pour continuer pourquoi pas avec microprocesseur programmé par arduino qui commande un DAC de 16bits
Tu vois Jean Paul tu attise en nous notre esprit orthogonal
Bonne soiree et tiens bon dans ta solution qui est bonne
Sylvain

Bonsoir.

Puisqu’il est question d’Arduino et de DAC…

Un Arduino nano c’est 22 « digital I/O pins ».

  • Les 3 commutateurs 1 circuit 10/11 positions peuvent s’organiser en matrice de contacts distribués entre 10/11 horizontales et 3 verticales.
    Cela monopoliserait 13/14 pins de l’Arduino:[list][*]10/11 pins déclarés en entrée avec résistances de pull-up (les horizontales),
  • 3 autres déclarés aussi en entrée (les verticales) mais forcés fugitivement à tour de rôle en sortie et à zéro pour scruter cycliquement les contacts (les pins déclarés en sortie n’étant pas configurables en drain ouvert).
    [/:m][]Un DAC 12 bits (c’est plus que confortable pour 1000 ou 1331 échelons de tension) pour remplacer les résistances de précision du pont diviseur et du sommateur. De préférence un AD7845 car les données d’entrée sont latchées et de plus il dispose en interne d’un amplificateur de sortie à gain pré-programmable.
    Cela ne monopoliserait qu’un à deux pins supplémentaires à condition de :* Multiplexer les entrées du DAC avec les horizontales du matriçage des commutateurs. La scrutation de ceux-ci serait arrêtée pour que les pins impactés puissent être déclarés temporairement en sortie afin de pouvoir transférer les données dans le latch du DAC.
  • Un pin supplémentaire serait indispensable pour activer la mémorisation dans le latch, un autre facultatif pour le 12ème bit des données (dans le cas où ce LSB ne serait pas utilisé et forcé à zéro) et circonstanciellement un dernier pour éviter de valider le DAC en permanence.
    La référence de tension nécessaire au DAC pouvant être une de celles déjà pressenties.[/*:m][/list:u]Ainsi, on utiliserait que de 14 à 17 pins parmi les 22 disponibles sur l’Arduino nano, le reliquat restant disponible pour ajouter des fioritures.

Bilan :
? 1 référence de tension (AD587),
? 3 commutateurs 1 circuit 12 positions,
? 1 Arduino nano,
? 1 DAC AD7845,
? 1 buffer de sortie (TCA0372).
Étonnant, non ?

Bonjour à tous,
J’ai trouvé un peu de temps pour simuler la proposition de Raffou basée sur des comparateurs 4 bits.
Je n’ai simulé que les Volts ainsi que les 1/10 ème de Volt.
Les résultats de la simulation ci-dessous

reference tension.jpg

Le calcul du filtre :

filtre.jpg

Bonjour à tous,

Simulation de ce matin :
J’ai ajouté les 1/100 de Volt et utilisé une référence de tension « boostée » en courant avec un transistor.
J’ai aussi ajouté un AOP en inverseur afin de retrouver une tension positive en sortie.
Petite remarque au sujet de cette idée de schéma proposé par Raffou : l’excursion de tension va de 0 V à 9.99 V (en utilisant 3 roues codeuses 0-9).
Pour rappel, mon schéma initial permet une excursion de tension de 0 V à 1.110 V avec 3 commutateurs rotatifs 1 circuit / 11 positions.
reference tension.jpg

Bonjour JP, bonjour à tous.

Le problème avec cette configuration, qu’elle soit à 2 ou à 3 comparateurs logiques, c’est qu’elle produit en sortie une tension négative pour des signaux PWM essentiellement positifs. Et malencontreusement, c’est la tension d’alimentation des CMOS qui sert de référence.

Une solution simple serait d’insérer un amplificateur inverseur comme c’était le cas dans les deux premiers schémas publiés dans le premier message de cette discussion. Ce qui ne couterait rien de plus en composant si un quadruple ampli op était utilisé pour réaliser les filtres de Sallen-Key, mais le problème d’une tension de référence propre et stable subsisterait.

Une autre solution plus élaborée serait de reprendre la référence négative du 3ème ou 4ème schéma et de la découper en 3 signaux PWM grâce aux switches d’un 4053:
? Chaque switch serait commandé par la sortie du comparateur associé,
? Avec le 0 volt et le -Vref appliqués sur les entrées de ces switches, on obtiendrait en sortie (donc sur l’entrée des filtres passe-bas) un signal PWM de polarité négative et d’amplitude calibrée (ne dépendant plus d’une tension d’alimentation).
Plus besoin alors d’insérer un amplificateur inverseur intermédiaire (à moins d’employer une référence de tension positive), avec une vraie référence de tension stable pour le coût d’un boitier CMOS 4053 en plus!

Bon au final, ça fait beaucoup de composants pour remplacer un pont de 10 résistances de précision et 3 commutateurs…

Bonjour Gérard,

Sur ma dernière simulation publiée, il y a cet ampli inverseur (simulation à 9.99V)

Tout à fait d’accord avec toi, mais l’exercice intellectuel en valait la peine.

Désolé, cette simulation a été publiée pendant que je rédigeais mon dernier message sinon je l’aurais vue.

Reste la solution avec Arduino nano et ADC pour minorer le nombre de composants et se passer des résistances de précision, est-ce une option pertinente?

Le problème avec le AD7845 proposé plus haut, c’est qu’il coûte cher… (environ 15€) :mrgreen:
Et il y a la programmation en C++ du nano à faire.
Je n’ai pas connaissance d’un simulateur permettant cette option (à part peut-être les dernières versions d’Isis qui sont hors de portée de ma pension de retraite :laughing: )
Attendons Mister Sylvain et sa solution basée sur un FPGA.
Aucune solution n’est à mon avis ni meilleure ni moins chère que celle que j’ai proposée initialement.

Si le schéma initial en intéresse certains, je veux bien faire le dessin du PCB et m’occuper d’en faire graver une certaine quantité (10 minimum).
Dites moi si vous êtes intéressés par MP.

En recherchant un DAC 12 bits économique, j’ai trouvé le MCP4821-E/P à moins de 2€60 TTC la pièce (par paquet de 2) chez RS particuliers: boitier DIP8, référence de tension interne, bus SPI donc ne monopolise que 2 pins de l’Arduino nano
? forum.arduino.cc/index.php?topic=571712.0
? arduinoos.com/2017/10/direct … ds-part-7/

plaindds_mcp4921_a[1].jpg
Sur ce schéma il s’agit d’un MCP4921, c’est quasi le même avec un MCP4821 hormis le fait que la référence est interne.
Sinon il existe des « breakout boards » à base de MCP4725, pour 1€ Fdp inclus, dont le bus I2C ne monopolise que 2 ou 3 pins de l’Arduino. Le hic, c’est que c’est la tension d’alimentation qui sert de référence!
Alimenté par la référence de tension « boostée » du dernier schéma publié, ce dernier écueil devrait pouvoir être éliminé!

Screen_Shot_2014-09-10_at_12.21.12_PM[1].jpg

Adafruit et Sparkfun commercialisant aussi cette plaquette, on devrait pouvoir trouver des exemples de programme tout fait sur le net:
? learn.adafruit.com/mcp4725-12-b … th-arduino
? learn.sparkfun.com/tutorials/mc … -guide/all

MCP4725-Arduino-Module-Tutorial-Hook-Up[1].png

Ces nouveaux arguments devraient permettre de réduire certaines réticences!

En attendant les évolutions d’autres solutions, je bosse sur le futur PCB issu des premiers schémas avec le pont diviseur.
Voilà une ébauche de celui-ci en vue 3D (dimensions 100 x 70)

Référence 3D.jpg

Et le schéma sous un format plus conventionnel que celui de la simulation
référence schéma.jpg

Dimensions du PCB et implantation des composants :

reference board.jpg