Diviseurs de tension et ADC

13

Je veux lire une tension de 0-30V avec un MCU ADC qui a une entrée maximale de 3V.

Au départ, j'ai pensé à utiliser un diviseur 100k-10k (donc 33V se traduit par 3V) mais selon les réponses à l'impédance d'entrée ADC sur les MCU , cela ajoutera une erreur de 3% en raison du courant de fuite d'entrée; Je recherche une erreur maximale de 0,5%. Cependant, à des valeurs inférieures pour le diviseur, je risque d'endommager les entrées du MCU en raison d'une surtension (les résistances agissent en tandem avec les diodes de serrage sur l'entrée.) J'augmente également la dissipation de puissance dans mes résistances, qui sont de minuscules appareils 0603, conçus pour 0,063 W maximum. Comment puis-je éviter ça? l'impédance d'entrée nb n'est pas critique.

Je ne m'inquiète pas de la vitesse d'échantillonnage, il surveillera la tension de la batterie à un maximum de 100 échantillons par seconde.

Thomas O
la source
avez-vous construit le précédent? 3% était le pire des cas basé sur les fuites les plus graves, sauf si vous en fabriquez beaucoup, vous pouvez les calibrer.
Kortuk
Kortuk, pensez-vous que je pourrais ajuster l'une des résistances de 3% ou la gérer dans le logiciel (échelle de 1,03x?)
Thomas O
Vous dites que vous voulez une grande précision, une faible consommation d'énergie, à très peu de frais supplémentaires. Je ne suis pas sûr que ce soit possible. Vous pouvez calibrer dans un logiciel comme kortuk l'a mentionné, mais dans un processus fabuleux qui prend du temps qui sera égal à l'argent.
Kellenjb
Conduire une entrée MCU ADC avec une grande impédance est mauvais de toute façon. Il augmente le temps de stabilisation et provoque une distorsion, etc. "L'ADC est optimisé pour les signaux analogiques avec une impédance de sortie d'environ 10 kΩ ou moins. Si une telle source est utilisée, le temps d'échantillonnage sera négligeable. Si une source avec une impédance plus élevée est utilisé, le temps d'échantillonnage dépendra du temps nécessaire à la source pour charger le condensateur S / H, ce qui peut varier considérablement. Il est recommandé à l'utilisateur de n'utiliser que des sources de faible impédance avec des signaux variant lentement, car cela minimise le transfert de charge requis. au cap S / H "
endolith

Réponses:

10

Utilisez ensuite le diviseur de tension avec des résistances et un suiveur d'opamp. Vous pouvez également utiliser un circuit ampli pour réduire la tension et vous pouvez effectuer un filtrage anti-alias en une seule étape!

smashtastic
la source
+1 utiliser l'ampli op avec un gain de 0,1 et le doubler comme filtre anti-aliasing
ajs410
Je ne peux pas me permettre un ampli op. Je n'ai malheureusement pas assez d'espace. Je peux peut-être me permettre un CI tampon, s'ils sont suffisamment petits et disponibles avec 8 canaux.
Thomas O
Habituellement, vous achetez juste un minuscule ampli opérationnel et vous le connectez en tant que tampon. national.com/mpf/LM/LMC7111.html SOT23 est trop grand?
endolith
Oh, vous voulez 8 canaux.
endolith
1
l'utilisation de résistances de plus grande précision réduira l'erreur du diviseur de tension, le deuxième problème est de conduire ce signal dans un ADC. C'est là que les inexactitudes se produiront, d'où la proposition d'utiliser un tampon.
smashtastic
14

D'accord, d'après votre réponse à mon commentaire, je pense que je peux vous aider davantage avec une réponse complète.

Construit le!

Construisez votre simple diviseur résistif. Cela présente de nombreux avantages, pour une taille, une autre est le coût.

Caractérisez-le!

Maintenant, vous allez également utiliser un microcontrôleur, c'est là que vous devez caractériser votre erreur. utilisez un générateur de tension très précis, vérifiez maintenant les tensions et voyez quelle erreur l'uC mesure réellement.

Analysez-le!

C'est maintenant que ça devient amusant. Il y a un certain nombre de choses que vous pourriez mesurer.

Exactitude et précision

La plus grande chose à mesurer ici est de savoir si l'erreur aux points est répétable. SI chaque fois que vous balayez, vous obtenez une erreur différente, ou si votre balayage suivant un chemin différent donne une erreur différente au même point, ce n'est pas une option. Cela se produit souvent avec des courants de fuite. La partie importante ici est que vous n'avez pas besoin d'une grande précision, juste d'un haut degré de précision. Si vous pouvez caractériser votre erreur, votre uC peut la corriger. Si vous avez un écart important, vous devez changer votre solution.

Qu'est-ce qu'un étalonnage du point X?

Maintenant, si vous avez une grande précision, comme indiqué précédemment, vous pouvez passer à la correction de la précision. Maintenant, si lorsque vous représentez graphiquement votre tension d'entrée par rapport à votre tension de sortie, vous allez devoir décider du nombre de "points de référence" dont vous avez besoin. Les bons appareils permettent un 1 point (ou zéro, pas besoin d'étalonnage). De nombreuses sondes de température.

Étalonnage en un point

Les deux lignes ont la même pente, mais un décalage, il vous suffit donc de trouver la valeur que vous devez ajouter à un point de données pour la corriger. C'est une situation idéale, car tout nouvel étalonnage n'a besoin que d'un seul point de données pour étalonner à nouveau.

Étalonnage en deux points

les deux courbes linéaires, éventuellement un décalage et il y a une différence de pente, vous n'avez besoin que de deux points de référence et d'une interpolation linéaire pour extraire votre décalage. C'est encore relativement facile, il suffit de prendre n'importe quel point, de le multiplier par un scalaire et d'ajouter un décalage.

Comme vous pouvez le voir, il devient plus compliqué plus vous avez besoin de points. À un moment donné, il est plus facile de simplement prendre chaque point de données et de le corréler à la valeur réelle. Par exemple, trouver que 0000 est 1V, 0001 est 2V, 0002 est 1,5V. C'est désordonné et cela ne fonctionne toujours que si les décalages sont répétables. Cela peut arriver cependant.

En résumé

J'espère que cela vous aide, dites-moi si vous avez besoin de plus de clarté. Si vous vous retrouvez avec un courant de fuite variable qui n'est pas fiable, il est temps de se contenter d'avoir besoin d'un tampon, ou quelque chose de similaire.

Je peux voir une possibilité d'erreur élevée due à une fuite, mais je parierais que l'erreur est relativement faible sur la majeure partie de la plage, et lorsqu'elle est là, elle peut être facilement corrigée.

Kortuk
la source
1
En remarque, cela semble être une tonne de travail, mais c'est en fait une quantité de travail relativement faible pour réduire le coût des composants.
Kortuk
bon commentaire! une manière brillante de le faire dans le logiciel. Votre dernière méthode de recherche de table est probablement la meilleure méthode. Le seul inconvénient est la ROM qu'il consomme, mais pour un ADC 8-10 bits sur un MCU, cela devrait être faisable.
smashtastic
Cela dépend des données, j'ai de nombreux cas différents, un étalonnage en 1 point était suffisant. Juste un décalage. Et puis, l'intégration du matériel pour calibrer porte ses fruits automatiquement.
Kortuk