Değişken Koşullarda Gürültülü Sensörler için Yüksek Çözünürlüklü ADC


9

giriş

Adaptif amplifikatörler hakkındaki bu soruya yanıt olarak , değişken koşullarla başa çıkmak için, daha yüksek çözünürlüklü bir ADC kullanmanın daha ekonomik olabileceği, böylece amplifikasyon hakkında endişelenmem gerekmediği ve ölçeklendirme yapabileceğim önerildi. yazılım.

genel bakış

Vücuda monte tekstil bazlı streç sensörleri için bir veri toplama devresi tasarlamaya çalışıyorum. Tekstil, gerildikçe direnci değiştirir (yaklaşık 1 büyüklük sırası, 10kΩ-100kΩ% 30 streç ile). Kesin aralıklar, tekstil malzemesinin nasıl kesildiğine, terle ıslatılmasına, sıcaklığa, malzemenin kaç yaşında olduğuna, nasıl monte edildiğine, vb. Bağlı olarak değişecektir. Her şey mümkün olduğunca küçük olmalıdır, çünkü elde monte edilir , bu nedenle bileşen sayısını en aza indirmek büyük bir artı.

Dahası, devrenin daha kötü performans gösterebilecek diğer uygulamalar için tekrar kullanılabilir olmasını istiyorum. Örneğin, tekstilin daha ucuz bir versiyonunu kullanırsam, direnç aralığım 100 kadar kötü olabilirΩ 300'eΩ.

Sinyal Yolu

[tekstil] -> [Wheatstone köprüsü] -> [alçakgeçirim] -> [enstrümantasyon amplifikatörü] -> [ADC] -> [AVR]

Gereksinimler

Bu yüzden, gereksinimlerimi karşılayacak bir ADC arıyorum. ADC şöyle olmalıdır:

  1. 16bits +
  2. Mümkün olduğunca kolay: AVR / Arduino için yazılmış arayüz kodu varsa çok daha iyi ...
  3. ... yine de mümkün olduğu kadar kapsamlı: Alçak geçiren filtreleri ve yerleşik PGA'ları olan bazı ADC'leri gördüm - hepsi konfigürasyonu acı vermediği sürece daha iyi
  4. 8+ kanal veya uygulanması kolaysa 2x 4+ kanal. EDIT: Eğer bir Wheatstone köprüsü kullanıyorsam, belki 8 farklı giriş kanalı (yani 16 kanal) istiyorum ...
  5. Çalışma voltajının önemli olduğunu düşünmüyorum ... (5V'un üstünde değilse en iyisi)
  6. Yüzey montajı
  7. Ucuz olması gerekmez (tek seferlik)
  8. SPI ve I2C'nin bence önemli değil ...
  9. 100+ Hz

Araştırma

Şu ana kadar Google'da şu çipleri buldum:

ve aşağıdaki öğreticiler:

Voltaj referansı?

Son olarak, bazı insanlar Analog Devices REF19x serisi gibi hassas bir voltaj referansı önerdi . Bunun gerekli olduğunu düşünüyor musunuz? Çözünürlük benim için kesinlikle önemli.

Sonuç

Herhangi bir öneriniz varsa bana bildirin! Tam olarak ne aradığımı da bilmiyorum, bu yüzden nasıl karar vereceğinize dair ipuçları da takdir ediliyor.


Bu tür bir hikayeden kaçınmayı umuyorum: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1264346368
teras

@msutherl - Bu ADC'ye bağlanmak için bir mux kullanmak zorunda kalırsanız büyük bir sorun olur mu? 16 kanallı, 16+ bitlik bir ADC bulmakta zorlanacaksınız, ancak 1 kanallı veya 2 kanallı parçalar oldukça kolay ...
Kevin Vermeer

1
Sadece bitler dinamik aralığı belirlemez. 24 bit dönüştürücülerin teorik olarak 144 dB dinamik aralığı olabilir, ancak gerçek dönüştürücüler 100-120 dB ya da öylesine. Bir streç sensörü için bu kadar çözünürlüğe ihtiyacınız olduğundan emin misiniz? Farklı değerlerde birçok farklı streç sensörü ile uğraşmaya mı çalışıyorsunuz? Sadece değişken kazançlı bir amplifikatör kullanmak daha iyi olurdu, sanırım ve her biri için ayarlayacağım. Bu kalibrasyonu yine de bir yerde yapmanız gerekecek.
endolit

1
Her sensör veya hepsi için 100Hz + 'a ihtiyacınız var mı? Çok kanallı ADC'lerde sık sık 1 ADC ve bir mux elde edersiniz, böylece SPS'yi kanal sayısına (veya mux / adc çifti kanalları çok hızlı değiştiremezse daha fazla) bölmeniz gerekir.
jpc

1
@ msutherl Evet, manuel kazanç potu veya programlanabilir kazanç amplifikatörü. PGA116 gibi bir şey, tüm sensörlerinizi yazılımda yapılan her şeyle birlikte, her biri için farklı kazançlarda yuvarlak robin tarzında örneklemeyle başa çıkabilir mi?
endolit

Yanıtlar:


7

TI'den gelen ADS1256 , yüksek empedanslı giriş tamponu ve PGA ile sekiz tek uçlu 24 bit kanala sahiptir. OpenEXG projesinin arayüz için PIC kodu vardır (iki kanallı ADS1255 sürümünü kullanırlar, ancak aynı olmalıdır).

Diferansiyel girişler istiyorsanız , 8 kanal, PGA ve A / D, dahili referans ve yok sayabileceğiniz EKG / EEG devresi ile ADS1298 vardır . Ama bunun için herhangi bir örnek kod bulabileceğinizden emin değilim.

Çözünürlük arıyorsanız, hassas, düşük gürültü referansı bir zorunluluktur.


5

Belki alışılmadık bir fikir, bu konuda ne düşündüğünüzü merak ediyorum:

Bir büyüklük sırası, onu bir voltaj bölücü devresinde doğrudan ölçmek için yeterince büyük bir değişiklik gibi görünüyor.

Daha sonra daha küçük bir ADC kullanabilir ve akımı sensörden değiştirebilirsiniz. Filtrelenmiş bir PWM voltaj kaynağı + bir voltaj takipçisi (eğer uzayda uyuyorsanız bir NPN transistörü olabilir) dinamik aralığınızı önemli ölçüde artırabilir.

Bunlardan birini veya ikisini kullanabilir ve farklı sensörleri ölçerken voltajı değiştirebilirsiniz.


Hiç alışılmadık değil. Aslında, küçük 8 bit mikrodenetleyici kullanmak istiyorsa, bu şekilde 24 bit değerlerle uğraşmaktan kaçınabilir ve karmaşıklık bu sofistike ADC'leri birbirine bağlamaktan daha küçük olabilir. Dinamik aralık ideal durumda ADC ve PWM dinamik aralıklarının toplamı olabilir. Öte yandan, birçok insan için analog tasarımlar dijitalden daha zor görünüyor, bu yüzden sadece 24 bit ADC kullanmak daha basit olabilir. Ayrıca, ADC'nin dinamik aralığı aşırı örnekleme ve dijital filtreleme ile artırılabilir ... artık basit değil.
Jaroslav Cmunt

@Jaroslav Teşekkürler. 1. Zaten bir Wheatstone köprüsü var, bu yüzden sanırım analog kısımdan tamamen korkmuyor. :) 2. Basit bir çalışma toplamı filtresi ile 1 veya 2 bit ek çözünürlük elde edilebilir.
jpc

1
Aslında! İşte OP için bir link: http://www.dspguide.com/ch15.htm
Jaroslav Cmunt

3

Ana endişeniz herhangi bir "sensör" için geniş bir dinamik aralığa sahip olmaksa, farklı malzemeler için sistem performansını değiştirmek üzere amplifikatör ofsetini / kazancını ayarlamak için DAC'leri (hatta sadece MPU pin kontrollü voltaj kaynaklarını) kullanmayı düşünebilirsiniz.

Bu değişken kazanç aşamasını bir şarj entegrasyon devresi ile takip edebilirsiniz, böylece "pozlama" süresini ayarlayarak ince ayar sinyali hassasiyeti kazanabilirsiniz.


0

İhtiyacınız olan örnekleme hızı için yeterli hesaplama gücüne sahipseniz, dijital filtrelemeyi düşünün. Bir Savitzky-Golay filtresi, f / örn.

  • Algoritmaları parçaları değiştirmekten daha kolay değiştirebilirsiniz;
  • Filtrelemenin bir kısmını yazılıma iterek, muhtemelen parçanın kendisinin daha gürültüye dayanıklı olması veya tüm filtrelemeyi yapması gerekenden daha düşük bir spesifikasyon parçası kullanabilirsiniz;
  • Girdileriniz ve bunlardan ihtiyacınız olan şey hakkında daha fazla bilgi edineceksiniz ve daha iyi bir parça seçimi yapabilirsiniz, eğer aslında daha yüksek bir spesifikasyon parçasına ihtiyacınız varsa.
  • Yazılım ve beceriler diğer uygulamalarınıza kolayca aktarılır!

tüm filtreleme gerçek zamanlı sinyal işleme ortamında bir bilgisayarda yapılacaktır.
Teras

0

Neden 11'e kadar dönmüyor ve sadece TI ADS1262'yi kullanıyorsunuz . 11 giriş ve PGA ile 32 bit ADC!

ADS1262

32 bit ile hemen hemen her şeyi örnekleyebilirsiniz. Ve o kadar da pahalı değil. Dahası, bunlardan sadece birini yapıyorsanız, ücretsiz bir örnek alın .


Başka bir seçenek de PSoC kullanmaktır. Bunlar, her türlü işlevi yapmak için kullanabileceğiniz yeniden yapılandırılabilir analog ve dijital bloklar içeren mikrodenetleyicilerdir. Kendi otomatik aralık, otomatik kırpma, aşırı örnekleme, dijital filtreleme, ADC yapmak için 16 bit ADC, PGA, DAC ve dijital filtreden birini seçebilirsiniz!

PSoC38xx

İstediğiniz şemayı çizdiğinizde, listeden önceden tanımlanmış işlevleri seçerek bunları bir doddle olarak programlayın. Sonra bir miktar C kodu yazın, ve siz yoksunuz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.