Résistance variable
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Résistance variable



  1. #1
    invitef1d1ec65

    Résistance variable


    ------

    oui je sais ... ce sujet a déjà été abordé mais pour d'autres applications.

    Dans mon cas, je voudrais simuler les valeurs de résistance d'une sonde de température type PT100 (2 fils) ... donc sur une plage 40-150 ohm. En général, les instruments remplaçant une sonde PT100 ont recours à des résistances fixes et à un commutateur. Je voudrais fabriquer un appareil commandé en logique (il y aura un PIC USB en amont).

    Je cherche à générer des résistances stables, pour des courants faibles (maximum 0.1 mA, max 10V). in finé, je voudrais pouvoir programmer une température arbitraire, ou encore programmer une température cible et un délai (mon PIC se chargeant alors de modifier à intervalle régulier, avec le plus petits pas possibles, la résistance simulée pour atteindre l'objectif).

    Voici mes pistes actuelles :

    (0) Un réseau de résistances en série (décade) commutées. Par exemple 8 résistances (on commence à 0.25 ohms ... hum hum) et on progresse en puissances de 2. On ajoute une résistance talon (40 ohm - epsilon).
    Sans parler de sa faisabilité (stabilité des résistances les plus fortes), ce montage pose le problème de la progression non monotone de la résistance pendant la commutation : on aura un artefact si on passe (par exemple) d'une résistance composée de 5 sous résistances à la résistance immédiatement supérieure, atteinte avec un composant unique.

    (1a) Plusieurs résistances numériques en parallèle. En utilisant 5 boitiers de type ADN2850 (dual, 50 ohms à 25 kohms en 1024 pas de 25 ohms) en daisy chaining SPI, on peut disposer de 10 résistances variables, lesquelles, mises en parallèle, donnent une résistance équivalente évoluant dans l'intervalle 5 - 2500 ohms (sous réserve qu'on programme correctement les boitiers en tenant compte d'un coefficient de résistance réelle, mesuré en usine et disponible dans un registre).
    Dans ce cas, pour une programmation grossière, on peut utiliser la connaissance théorique que l'on a des résistances numériques utilisées (les dix résistances en fonction de la valeur des dix registres). On programmera chaque résistance "au plus près de la résistance souhaitée", ce qui donnera 600 pas fins répartis (de façon sans doute peu uniforme) autour de 60 gros pas (ce qui est une résolution acceptable).

    (1b) Une variante consiste à exploiter le caractère dual des ADN2850 et l'erreur relative (faible) de 0.1% entre les deux convertisseurs (bien inférieure à l'erreur typique de la résistance maximum d'un boitier à l'autre : on peut avoir 32 kohms au lieu de 25 avec un registre à 1023). En mettant en oeuvre la moitié de chaque boitier (une des deux voies) dans un circuit de calibration, puis en propageant le résultat obtenu sur le coté "online" des boitiers.
    Ainsi, on peut peut-être (avec un comparateur précis) déterminer la combinaison de résistances qui approche le mieux le résultat escompté.
    Le comparateur comparerait la sortie d'un DAC 16 bits avec la tension aux bornes du réseau de résistances soumis au 5v extra-terrestre de notre montage.
    Dans ce cas, la difficulté consiste à programmer correctement les résistances numériques élémentaires : on n'incrémente pas (cas d'une hausse minimale) un réseau de résistances numériques comme on incrémente une résistance unique (je fais allusion à un shéma communément utilisé ...). Il faut à tout moment connaitre la résistance la plus faible (ou la plus forte). C'est elle qu'il faut incrémenter/décrémenter.

    (2) Une autre option envisagée : utiliser un DAC 16 bits (type DAC8811), un ampliop en mode suiveur pour monter à 20mA (si on suppose toujours que le 5 V est parfait) et un opto-coupleur ayant une photo-résistance en sortie (type NSL-32SR2).
    Dans ce cas, j'imagine que le pilotage en DC de l'opto-coupleur est une très mauvaise idée. Mais, avant de me lancer en modulation, j'aurais aimé connaitre vos impressions concernant ces options : laquelle vous parait la plus prometteuse en terme de stabilité/précision ?

    -----

  2. #2
    invitea3c675f3

    Re : Résistance variable

    Il me semble que le meilleur simulateur d’une sonde platine reste… la sonde platine avec un peltier et un thermomètre électronique.

  3. #3
    invitef1d1ec65

    Re : Résistance variable

    C'est peut-être la meilleure façon, mais elle ne me convient pas.

    J'ai réécrit mon messages un peu après, mais je ne pouvais plus le corriger dans le forum ... voici la dernière version :

    oui je sais ... ce sujet a déjà été abordé mais pour d'autres applications.

    Dans mon cas, je voudrais simuler les valeurs de résistance d'une sonde de température type PT100 (2 fils) ... donc sur une plage 40-150 ohm. En général, les instruments remplaçant une sonde PT100 ont recours à des résistances fixes et à un commutateur. Je voudrais fabriquer un appareil commandé en logique (il y aura un PIC USB en amont).

    Je cherche à générer des résistances stables, pour des courants faibles (maximum 0.1 mA, max 10V). in finé, je voudrais pouvoir programmer une température arbitraire, ou encore programmer une température cible et un délai (mon PIC se chargeant alors de modifier à intervalle régulier, avec le plus petits pas possibles, la résistance simulée pour atteindre l'objectif).

    Voici mes pistes actuelles :

    (0) Un réseau de résistances en série (décade) commutées. Par exemple 8 résistances (on commence à 0.25 ohms ... hum hum) et on progresse en puissances de 2. On ajoute une résistance talon (40 ohm - epsilon).
    Sans parler de sa faisabilité (stabilité des résistances les plus fortes), ce montage pose le problème de la progression non monotone de la résistance pendant la commutation : on aura un artefact si on passe (par exemple) d'une résistance composée de 5 sous résistances à la résistance immédiatement supérieure, atteinte avec un composant unique.

    (1a) Plusieurs résistances numériques en parallèle. En utilisant 5 boitiers de type ADN2850 (dual, 50 ohms à 25 kohms en 1024 pas de 25 ohms) en daisy chaining SPI, on peut disposer de 10 résistances variables, lesquelles, mises en parallèle, donnent une résistance équivalente évoluant dans l'intervalle 5 - 2500 ohms (sous réserve qu'on programme correctement les boitiers en tenant compte d'un coefficient de résistance réelle, mesuré en usine et disponible dans un registre).
    Dans ce cas, pour une programmation grossière, on peut utiliser la connaissance théorique que l'on a des résistances numériques utilisées (les dix résistances en fonction de la valeur des dix registres). On programmera chaque résistance "au plus près de la résistance souhaitée" (on essaye d'avoir 10 résistances égales), ce qui donnera 600 pas fins répartis de façon relativement uniforme, soit une résolution (acceptable) de l'ordre du quart de ohm. Cette technique a l'avantage d'atténuer les instabilités de chaque résistance numérique. Le fait de cibler des résistances égales permet d'éviter les artefacts lors de la programmation des résistances.

    (1b) Une variante consiste à exploiter le caractère dual des ADN2850 et l'erreur relative (faible) de 0.1% entre les deux convertisseurs (bien inférieure à l'erreur typique de la résistance maximum d'un boitier à l'autre : on peut avoir 32 kohms au lieu de 25 avec un registre à 1023). En mettant en oeuvre la moitié de chaque boitier (une des deux voies) dans un circuit de calibration, puis en propageant le résultat obtenu sur le coté "online" des boitiers.
    Ainsi, on peut peut-être (avec un comparateur précis) déterminer la combinaison de résistances qui approche le mieux le résultat escompté.
    Le comparateur comparerait la sortie d'un DAC 16 bits avec la tension aux bornes du réseau de résistances soumis au 5v extra-terrestre de notre montage.
    Dans ce cas, la difficulté consiste à programmer correctement les résistances numériques élémentaires : on peut procèder en approche "par défaut" puis en incrémentant.
    Avec 5 résistances, on peut atteindre une précision de l'ordre du ohm si on se limite à choix dicté par l'idée que les 5 résistances doivent avoir la valeur la plus proche possible. Mais on peut aller plus loin si, une fois le point d'équilibre grossier trouvé, on continue l'optimisation en séparant les valeurs. Par exemple, si on considère que :
    500 500 500 500 500 donne 100 ohm
    et
    500 500 500 500 525 donne 100,96 ohm

    Si on cherche précisément 100,5 ohms, on est forcé de programmer :
    425 450 550 550 575 qui donne 100,495872 ohm

    La technique de programmation des registres permettant d'obtenir automatiquement ce résultat n'est pas triviale (d'autant plus que les résistances numériques ne sont pas parfaites en pratique), mais je me sens plus apte à la programmer que si je devais trouver la technique de calcul correspondante.

    L'avantage est qu'on n'a plus besoin de calibrer les résistances manuellement (en fonction de la température) si le DAC est stable. Je ne sais pas si un comparateur peut être précis à ce point (je vais me renseigner ... des différences de 1mV sur deux tensions de 2,5V sont detectables ?), mais on peut vraiment atteindre une précision théorique élevée de cette façon.

    (2) Une autre option envisagée : utiliser un DAC 16 bits (type DAC8811), un ampliop en mode suiveur pour monter à 20mA (si on suppose toujours que le 5 V est parfait) et un opto-coupleur ayant une photo-résistance en sortie (type NSL-32SR2).
    Dans ce cas, j'imagine que le pilotage en DC de l'opto-coupleur est une très mauvaise idée. Mais, avant de me lancer en modulation, j'aurais aimé connaitre vos impressions concernant ces options : laquelle vous parait la plus prometteuse en terme de stabilité/précision ?

  4. #4
    invitef1d1ec65

    Re : Résistance variable

    Pourquoi la solution de l'élément Peltier me convient-elle pas ?

    Parce que je ne peux pas forcément attendre que la température se stabilise entre une sonde et un thermomètre (surtout en descente).
    Parce que je trouve peu pratique de souffler sur une sonde et un thermomètre quand je veux recommencer mon test (et deux faces opposées d'éléments Peltier ne me conviennent pas nonplus).
    Parce que le thermomètre utilise une sonde et que je ne voudrais pas simuler une sonde avec deux sondes ... (j'aurais l'impression de traire la vache en la soulevant).
    Parcequ'enfin, je ne simule pas que la sonde : je simule aussi le phénomène physique qui la fait chauffer/refroidir. Et je ne me vois pas contrôler assez précisément un élément Peltier + sonde + thermomètre + gros scotch enroulé autour.

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

    Re : Résistance variable

    Je précise que le boitier ADN2850 sort jeudi (d'après ce que le site d'Analog device indique). J'ai du mal à en trouver pour l'instant.

  7. #6
    invitef1d1ec65

    Re : Résistance variable

    En fait il existe depuis 2002. Je me suis laissé embourber par les dates de production de lots.
    Le truc amusant, c'est que la datasheet de la carte d'évaluation parle de broches A1 et A2, qui se transforment en V1 et V2 dans la datasheet du ship.

  8. #7
    invitef1d1ec65

    Re : Résistance variable

    En fait c'est le AD5235 qui propose les broches A1 et A2 (et l'ADN2850 les broches V1 et V2). La doc du board a été copiée/collée.

  9. #8
    invitef1d1ec65

    Re : Résistance variable

    Ca se complique ... même si la datasheet évoque une structure à 1024 résistances commutées, on voit clairement sur les graphes que la structure interne est à deux étages de 32 résistances (un étage de poids faible, composé de 32 systèmes résistant de 24,4 ohms, et un étage de 32 systèmes de 32 * 24,4 = 780 ohm). De plus, la monotonie n'est pas assurée (l'erreur peut dépasser un LSB quand on a une transition sur l'étage de poids fort : RINL de -4 à +4). Il faut espérer que ces ruptures ne se produisent qu'en transition sur l'étage de poids fort (quand l'étage de poids faible est annulé).
    L'étage de poids fort est toujours biaisé en sens inverse de celle de l'étage de poids faible.
    Va falloir en tenir compte ... par chance, avec 10 boitiers en parallèle, je n'aurai qu'une transition sur l'étage de poids fort (je ne dépasserai pas la valeur 64).
    Autre problème, la sensibilité aux variations de température de l'étage de poids faible.
    Deux possibilités ...

    Soit je mets en série les deux résistances de chaque boitier (pour avoir mes 60 pas en additif, en monotone, sans transitions négatives). Dans ce cas, l'indication de résistance globale maximale des boitiers ne me sert à rien (elle est calculée sur l'étage de poids fort), ce qui m'arrange si je fais du daisy chaining massif (impossible de lire le registre USER15 en daisy chaining). Dans ce cas, se pose le problème du calibrage/suivi de résistance.

    Soit je reprends l'idée de la mesure sur une moitié des boitiers (avec un DAC sigma delta type LCT2400) ... et je m'impose une programmation des registres qui évite toute transition sur l'étage de poids fort en phase d'approche par fractions de pas, quand j'essaye d'approcher une résistance autour de 83 ohm (il vaut mieux répartir les registres de chaque coté d'une transition de l'étage de poids fort, et y rester).

  10. #9
    invitef1d1ec65

    Re : Résistance variable

    Je n'avais pas vu qu'Analog Device proposait aussi le AD5231 ... identique à l'AD5235, mais en 10 kohm (au lieu de 25) et surtout monotone garanti (au lieu du +4 -4 LSB R-INL de l'AD5235). On a toujours deux étages de 32 résistances, mais l'étage de poids fort est beaucoup mieux aligné sur celui de poids faible.

    Il y a aussi l'AD5253 ... carrément disponible en 1kohm ... mais 256 pas (de 3,9 ohms) ... 4 voies ... monotone strict ... 32 niveaux en ligne puis 8 pour l'étage de poids fort ... mais les 32 premiers niveaux ont l'air bien moins linéaires que ceux du 5235 ou même du 5231. C'est génant pour l'étape de réglage fin par séparation (+1 -1). Mais avec 2 boitiers de ce type, on peut avoir 6 voies opérationnelles et 2 voies (une dans chaque boitier) pour une mesure de calibrage (dérive de température et de vieillissement) ... on peut donc espérer 0,15 ohm de résolution à 100 ohm avant réglage fin par séparation.
    Tout ça est très sensible à la tension donnée aux circuits (la wiper resistance varie de 50 à 200 ohm quand on chute de 5 à 3V) : il faut donc réguler très précisément l'alimentation.

  11. #10
    invitef1d1ec65

    Re : Résistance variable

    bof, le 5231 n'a qu'un canal et le 5253 n'a que 64 pas (facile de le rendre monotone si on part d'un 5254 et qu'on masque ses deux bits de poids faible) ...

  12. #11
    invite5637435c

    Re : Résistance variable

    Salut,

    comme je vois que tu parles tout seul, je peux te conseiller le AD5259 très simple à utiliser ou le AD5248 en I2C et avec 256 pas.
    Tu peux aussi associer plusieurs AD pour obtenir la résolution que tu souhaites en faisant des associations série/parallèle ou en les insérant dans un réseau résistif passif plus élaboré.

  13. #12
    invitef1d1ec65

    Re : Résistance variable

    Je crois que ça va finir avec des MAX5496 ...
    10kohms, boitier dual, monotonie, 0.05% de variation entre les canaux (le paramètre qui compte le plus, qu'on utilise un canal pour mesurer en permanence ou qu'on fasse du réglage fin par séparation de voies duales).

  14. #13
    invitef1d1ec65

    Re : Résistance variable

    Citation Envoyé par HULK28 Voir le message
    comme je vois que tu parles tout seul,
    Effectivement ... ce forum est un peu devenu mon cahier de brouillons.
    Citation Envoyé par HULK28 Voir le message
    je peux te conseiller le AD5259 très simple à utiliser ou le AD5248 en I2C et avec 256 pas.
    Le AD5259 a l'air pas mal (monotone, existe en version 5 kohms : pas de 20 ohm) mais il est monovoie ... C'est sans doute un très bon choix si on renonce au guidage par mesure sur réplique (corrigé une fois pour toutes).

    Quant au 5248, il n'est pas monotone en 2,5 kohm (pour un pas de 10 ohm). Il le devient en version 10k.

    De plus, je ne trouve pas de spec relatives aux 2 canaux (c'est la constance et l'écart maximum de R_DNL entre les 2 voies qui m'interresse). Enfin, on est limité à 4 boitiers en ligne avec un l'adressage I2C sur deux lignes. Je préfère le daisy chaining SPI : 10 boitiers en ligne avec une seule ligne /CS.

    L'AD5254 répond bien à ces problèmes.

    Citation Envoyé par HULK28 Voir le message
    Tu peux aussi associer plusieurs AD pour obtenir la résolution que tu souhaites en faisant des associations série/parallèle ou en les insérant dans un réseau résistif passif plus élaboré.
    Oui, c'est dans cette voie que je suis. Par contre, le résistif passif mixé au réseau actif, ça augmente la résistance minimum du tout.

  15. #14
    invitef1d1ec65

    Re : Résistance variable

    Un article interressant sur le daisy chaining : Comment lire des valeurs dans des chips chainés
    Ca me conforte dans l'idée que le bus SPI s'impose (si on veut piloter de nombreux boitiers, même s'ils n'ont pas la même longueur de mot). Il faut juste ne pas avoir peur d'envoyer des NOP ... et savoir anticiper un délai de lecture (si les chips ont une ligne BUSY/RDY qu'on veut éviter)... Ca permet d'envisager sereinement une version 28 broches du PIC USB (un 18F2455) ... voire le futur PIC ultralight (annoncé) : 18F13K50 (20 broches, oscillateur interne à 48 Mhz : pas besoin d'oscillateur externe pour faire de l'USB)

  16. #15
    invitef1d1ec65

    Re : Résistance variable

    Grace à ce projet, je pourrai enfin tester le module autonome de cryogénisation des mammifères (hibernatus) et d'asservissement de grille-pain (CMS at home).... à voir ...

  17. #16
    invitef1d1ec65

    Re : Résistance variable

    Article assez interressant de chez Analog Devices (même s'il n'adopte pas la même ambition "qualitative") : Coupler des résistances numériques

  18. #17
    invitef1d1ec65

    Re : Résistance variable

    A ce stade de mes investigations, et pour ceux que ça tenterait comme aventure, je voudrais quand même montrer du doigt un gros défaut des résistances numériques, ou plutôt une différence qui limitera toujours leur utilisation dans le cadre de mon projet : les potentiels (relatifs à la masse de la RN) maximum admissibles au bornes de la résistance.

    La différence de potentiel entre n'importe quelle borne de la résistance générée (wiper et borne A par exemple) et la masse de la résistance numérique doit toujours être comprise entre Vdd et Vss de la résistance numérique.

    Ca veut dire que si on alimente la résistance numérique en 0 et +5 volts, on ne pourra pas utiliser la résistance générée (la PT100 simulée si on préfère) avec un circuit de mesure (extérieur) qui fonctionne en 12 volts et qui effectue la mesure de résistance en plaçant une résistance étalon en série de 10 kohms DU COTE DE LA MASSE (pour limiter le courant à 1mA, créant un pont diviseur de tension). Pourquoi ? Parce que les tensions appliquées à notre résistance numérique (relatives à la masse) seront de +11,9 et +12volts (ce qui nous fait une DDP de 0,1 volts). Et la résistance numérique (ou même 10 résistances numériques en parallèle) ne le supportera pas.

    Certes, il parait stupide de procéder ainsi (concevoir la mesure d'une PT100 en plaçant la résistance limiteuse de courant du coté de la masse). Certes, les circuits qui fonctionnent en 12 volts sont rares ... Mais on a déjà vu des saguouins sortir le 5V alimentant leur circuit de façon peu orthodoxe (avec une masse pas vraiment à la masse). Et SURTOUT, le problème peut surgir bien plus facilement, si par exemple, le circuit de mesure est alimenté en 5,5 volts (résistance talon de précision de 5 kohms ... toujours placée du coté de la masse : on mesure entre 5,4 et 5,5 volts).

    C'est un gros problème pour qui veut réaliser un instrument utilisable dans un cadre assez général (je ne veux pas me poser la question "où se situe le potentiel appliqué à la PT100" à chaque fois que je voudrai utiliser mon simulateur sur un circuit ... j'ai pas forcément envie d'ouvrir la boite !).

    Ma question est donc : peut-on s'en sortir (ou est-ce que ça empire la situation) si on réalise une isolation galvanique de notre instrument ? (en particulier des résistances numériques)

  19. #18
    invite5637435c

    Re : Résistance variable

    Salut,

    j'utilise le AD5259 comme résistance de pied pour modifier la consigne de tension sur un circuit de commande de référence d'un étage push-pull.

    Il est assez rare de devoir utiliser une résistance ajustable seule sans résistance de pied ou/et de tête.

    Ainsi en calculant convenablement ces 2 résistances additives tu peux étendre le champ d'application pour la tension globale appliquée à la branche.

    Ce circuit possède d'ailleurs un Vlogic et un Vdd qui doivent être dans ce cas non reliées pour permettre ce type de config.
    @+

  20. #19
    invitef1d1ec65

    Re : Résistance variable

    Bon, mon projet peut éventuellement supporter une petite résistance talon ... mais l'idée est d'abord de générer des résistances sur la gamme la plus étendue possible (et pour simulter une PT100 ... je peux pas mettre 1 kohms en série
    Disons que le problème que je soulève porte plutôt sur une histoire de référentiel (de masse) vu que je veux proposer les bornes de mes résistances numériques à l'extérieur de mon montage. C'est un peu comme si on cherchait à mesurer une ddp entre des points à +30 et +30,5V d'un circuit avec un voltmètre en calibre 1V (et relié à la masse). Il faut une "masse flottante" ...
    Et je ne vois pas du tout comment rendre ma masse flottante pour un circuit proposant les bornes d'une résistance numérique au tout venant.
    J'ai compris qu'il fallait sans doute que j'isole galvaniquement l'instrument (c'est déjà un progrès !) ... bon je vais potasser un peu sur Internet ...
    Merci pour l'aide en tout cas !

Discussions similaires

  1. Résistance variable avec MOSFET
    Par invite5463318f dans le forum Électronique
    Réponses: 19
    Dernier message: 01/03/2008, 09h25
  2. probleme resistance variable
    Par invite7a67cbf5 dans le forum Électronique
    Réponses: 7
    Dernier message: 18/02/2008, 12h37
  3. Resistance variable
    Par invite31021e12 dans le forum Électronique
    Réponses: 2
    Dernier message: 20/03/2007, 21h58
  4. Resistance variable
    Par invite528b0bef dans le forum Électronique
    Réponses: 6
    Dernier message: 25/07/2006, 17h34
  5. Rhéostat et résistance variable
    Par invitee1dd47cc dans le forum Électronique
    Réponses: 2
    Dernier message: 07/12/2004, 15h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...