Intro
En réponse à cette question sur les amplificateurs adaptatifs , il a été recommandé que, pour faire face à des conditions variables, il soit plus économique d'utiliser simplement un ADC avec une résolution plus élevée afin de ne pas avoir à me soucier de l'amplification et je puisse faire une mise à l'échelle dans le logiciel.
Aperçu
J'essaie de concevoir un circuit d'acquisition de données pour les capteurs d'étirement à base de textile montés sur le corps. Le textile varie de résistance à mesure qu'il est étiré (environ 1 ordre de grandeur, 10k -100k Ω avec 30% d'étirement). Les gammes exactes changeront en fonction de la façon dont le textile est coupé, qu'il soit trempé de sueur, de la température, de l'âge du matériau, de la façon dont il est monté, etc. Le tout doit être aussi petit que possible car il est monté à la main , donc minimiser le nombre de composants est un gros plus.
De plus, j'aimerais que le circuit soit réutilisable pour d'autres applications qui peuvent avoir de moins bonnes performances. Par exemple, si j'utilise une version moins chère du textile, ma plage de résistance peut être aussi mauvaise que 100 à 300 Ω .
Chemin du signal
[textile] -> [Wheatstone bridge] -> [lowpass] -> [ampli instrumentation] -> [ADC] -> [AVR]
Exigences
Je recherche donc un ADC qui répondra à mes besoins. L'ADC devrait être:
- 16bits +
- Aussi simple à utiliser que possible: bien mieux s'il y a déjà du code d'interface pour AVR / Arduino ...
- ... mais en même temps aussi complet que possible: j'ai vu des ADC avec des filtres passe-bas et des PGA intégrés - tant mieux tant que cela ne rend pas la configuration pénible
- 8+ canaux, ou si c'est assez facile à mettre en œuvre, 2x 4+ canaux. EDIT: Si j'utilise un pont Wheatstone, je veux peut-être 8 canaux d'entrée différentiels (donc 16 canaux) ...
- Je ne pense pas que la tension de fonctionnement importe ... (mieux que pas au-dessus de 5V)
- Montage en surface
- N'a pas besoin d'être bon marché (c'est unique)
- SPI vs I2C n'a pas d'importance je pense ...
- 100+ Hz
Recherche
Jusqu'à présent sur Google, j'ai trouvé les puces suivantes:
- Les appareils linéaires offrent divers ADC sigma delta 16-24 bits, dont certains que j'ai vus recommandés: http://parametric.linear.com/html/no_latency_delta_sigma_adcs?p=5312974
- Microchip dispose d'une gamme d'options, dont certaines que j'ai vues recommandées: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=11022&mid=10&lang=en&pageId=79
- Les appareils analogiques ont un certain nombre de puces d'acquisition de données complètes avec des amplificateurs et des filtres (pas besoin de trucs de traitement de signal externe):
- Je n'ai pas encore regardé les puces TI ...
et les tutoriels suivants:
- http://arduino.cc/blog/2010/11/29/tired-of-a-10-bit-res-hook-up-a-better-analog-to-digital-converter/ (LTC2400)
- http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1275676171 (TI ADS8341)
- http://forums.adafruit.com/viewtopic.php?f=31&t=12269 (MCP3424)
- http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1248751435 (LTC2410)
Référence de tension?
Enfin, certaines personnes ont recommandé une référence de tension de précision, comme la série Analog Devices REF19x . Pensez-vous que cela soit nécessaire? La résolution est définitivement importante pour moi.
Conclusion
Faites-moi savoir si vous avez des recommandations! Je ne sais pas non plus exactement ce que je recherche, donc des conseils sur la façon de décider sont également appréciés.
Réponses:
L'ADS1256 de TI possède huit canaux 24 bits asymétriques avec un tampon d'entrée haute impédance et PGA. Le projet OpenEXG a un code PIC pour l'interfacer (ils utilisent la version à deux canaux ADS1255, mais il devrait être le même).
Si vous voulez des entrées différentielles, il y a l' ADS1298 , avec 8 canaux, PGA et A / D, référence interne, plus un circuit ECG / EEG que vous pouvez ignorer. Je ne suis pas sûr que vous puissiez trouver un exemple de code pour celui-ci, cependant.
Si vous recherchez une résolution, une référence précise et à faible bruit est un must.
la source
Une idée peut-être non conventionnelle, je suis curieux de savoir ce que vous en pensez:
Un ordre de grandeur semble un changement suffisamment important pour le mesurer directement dans un circuit diviseur de tension.
Vous pouvez ensuite utiliser un ADC plus petit et faire varier le courant à travers le capteur. Une source de tension PWM filtrée + un suiveur de tension (peut être un transistor NPN si vous êtes dans l'espace) peut considérablement améliorer votre plage dynamique.
Vous pouvez en utiliser un ou deux et commuter la tension lors de la mesure de différents capteurs.
la source
Si votre souci principal est d'avoir une large plage dynamique pour un "capteur" donné, vous pouvez envisager d'utiliser le DAC (ou même simplement des sources de tension contrôlées par broches MPU) pour régler le décalage / gain de l'amplificateur afin de modifier les performances du système pour différents matériaux.
Vous pouvez également suivre cette étape de gain variable avec un circuit d'intégration de charge afin que vous puissiez gagner la sensibilité du signal de réglage fin en ajustant la période "d'exposition".
la source
Si vous disposez d'une puissance de calcul suffisante pour la fréquence d'échantillonnage dont vous avez besoin, envisagez le filtrage numérique. UNE filtre Savitzky-Golay , f / ex.
la source
Pourquoi ne pas passer à 11 et utiliser simplement la TI ADS1262 . C'est un ADC 32 bits, avec 11 entrées et un PGA!
Avec 32 bits, vous pouvez à peu près tout échantillonner. Et ce n'est même pas si cher. De plus, si vous n'en faites qu'un, obtenez simplement un échantillon gratuit .
Une autre option consiste à utiliser un PSoC. Ce sont des microcontrôleurs contenant des blocs analogiques et numériques reconfigurables, que vous pouvez utiliser pour composer toutes sortes de fonctions. Vous pouvez en choisir un avec un ADC 16 bits, un PGA, un DAC et un filtre numérique, pour créer votre propre gamme automatique, ajustement automatique, suréchantillonnage, filtrage numérique, ADC!
La programmation de ces choses est un jeu d'enfant, car vous dessinez simplement le schéma que vous voulez, en choisissant des fonctions prédéfinies dans une liste. Ensuite, écrivez du code C, et vous êtes parti.
la source