ADC Resolusi Tinggi untuk Sensor Bising dalam Kondisi Variabel

9

Intro

Menanggapi pertanyaan tentang penguat adaptif ini , direkomendasikan bahwa untuk menangani kondisi variabel, mungkin lebih ekonomis menggunakan ADC dengan resolusi lebih tinggi sehingga saya tidak perlu khawatir tentang amplifikasi dan saya dapat melakukan penskalaan dalam perangkat lunak.

Gambaran

Saya mencoba merancang sirkuit akuisisi data untuk sensor regangan berbasis tekstil yang terpasang di tubuh. Tekstil memiliki ketahanan yang bervariasi saat direntangkan (sekitar 1 urutan besarnya, 10k -100k dengan peregangan 30%). Kisaran yang tepat akan berubah tergantung pada bagaimana tekstil dipotong, apakah itu direndam dengan keringat, suhu, berapa umur bahan, bagaimana itu dipasang, dll. Seluruh benda harus sekecil mungkin karena dipasang di tangan , jadi meminimalkan jumlah komponen adalah nilai tambah yang besar.ΩΩ

Selain itu, saya ingin rangkaian dapat digunakan kembali untuk aplikasi lain yang mungkin memiliki kinerja lebih buruk. Misalnya, jika saya menggunakan versi tekstil yang lebih murah, kisaran resistensi saya mungkin sama buruknya dengan 100 hingga 300 .ΩΩ

Jalur Sinyal

[tekstil] -> [Jembatan Wheatstone] -> [lowpass] -> [instrumentation amp] -> [ADC] -> [AVR]

Persyaratan

Jadi, saya mencari ADC yang akan memenuhi persyaratan saya. ADC harus:

  1. 16 bit +
  2. Semudah mungkin digunakan: jauh lebih baik jika ada kode antarmuka yang sudah ditulis untuk AVR / Arduino ...
  3. ... namun pada saat yang sama selengkap mungkin: Saya telah melihat beberapa ADC dengan filter lowpass dan PGA built in - semua lebih baik asalkan tidak membuat konfigurasi menjadi masalah.
  4. 8+ saluran, atau jika itu cukup mudah untuk diterapkan, 2x4+ saluran. EDIT: Jika saya menggunakan jembatan Wheatstone, mungkin saya ingin 8 saluran input diferensial (jadi 16 saluran) ...
  5. Saya tidak berpikir masalah tegangan operasi ... (terbaik jika tidak di atas 5V)
  6. Permukaan gunung
  7. Tidak perlu murah (hanya sekali pakai)
  8. SPI vs I2C tidak masalah saya pikir ...
  9. 100+ Hz

Penelitian

Sejauh ini melalui Googling, saya telah menemukan chip berikut:

dan tutorial berikut:

Referensi Tegangan?

Akhirnya, beberapa orang merekomendasikan referensi tegangan presisi, seperti seri Perangkat Analog REF19x . Apakah Anda pikir ini perlu? Resolusi jelas penting bagi saya.

Kesimpulan

Beri tahu saya jika Anda memiliki rekomendasi! Saya juga tidak yakin persis apa yang saya cari, jadi tips tentang cara memutuskan juga dihargai.

teras
sumber
Saya berharap untuk menghindari cerita seperti ini: arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1264346368
teras
@ msutherl - Apakah ini akan menjadi masalah besar jika Anda harus menggunakan mux untuk terhubung ke ADC ini? Anda akan kesulitan menemukan 16-channel, 16+ bit ADC, tetapi bagian 1-channel atau 2-channel cukup mudah ...
Kevin Vermeer
1
Bit saja tidak menentukan rentang dinamis. Konverter 24-bit secara teoritis dapat memiliki kisaran dinamis 144 dB, tetapi konverter sebenarnya 100-120 dB atau lebih. Apakah Anda yakin Anda membutuhkan resolusi sebesar ini untuk sensor peregangan? Anda mencoba menangani banyak sensor regangan berbeda dengan nilai berbeda? Akan lebih baik hanya menggunakan penguat gain variabel, saya akan berpikir, dan menyesuaikannya untuk masing-masing. Anda harus melakukan kalibrasi di suatu tempat.
endolith
1
Apakah Anda memerlukan 100Hz + untuk setiap sensor atau untuk semuanya? Dengan multi-channel ADC Anda sering mendapatkan 1 ADC dan mux sehingga Anda harus membagi SPS dengan jumlah saluran (atau lebih jika pasangan mux / adc tidak dapat mengganti saluran dengan sangat cepat).
jpc
1
@ msutherl Ya, pot penguatan manual, atau amplifier yang dapat diprogram. Sesuatu seperti PGA116 dapat menangani pengambilan sampel semua sensor Anda dengan mode round-robin dengan keuntungan berbeda untuk masing-masing, dengan semua yang dilakukan dalam perangkat lunak?
endolith

Jawaban:

7

ADS1256 dari TI memiliki delapan saluran 24bit tunggal dengan buffer input impedansi tinggi dan PGA. Proyek OpenEXG memiliki kode PIC untuk menghubungkannya (mereka menggunakan dua saluran versi ADS1255, tetapi harus sama).

Jika Anda menginginkan input diferensial, maka ada ADS1298 , dengan 8 saluran, PGA dan A / D, referensi internal, plus sirkuit EKG / EEG yang dapat Anda abaikan. Saya tidak yakin Anda dapat menemukan kode contoh untuk yang ini.

Jika Anda mencari resolusi, maka tepat, referensi noise rendah adalah suatu keharusan.

Jaroslav Cmunt
sumber
5

Ide yang mungkin tidak konvensional, saya ingin tahu apa yang kalian pikirkan tentang itu:

Satu urutan besarnya tampaknya perubahan yang cukup besar untuk mengukurnya secara langsung dalam rangkaian pembagi tegangan.

Anda kemudian dapat menggunakan ADC yang lebih kecil dan memvariasikan arus melalui sensor. Sumber tegangan PWM yang difilter + pengikut tegangan (mungkin merupakan salah satu transistor NPN jika Anda memiliki ruang kosong) dapat secara drastis meningkatkan jangkauan dinamis Anda.

Anda bisa menggunakan satu atau dua dari ini dan mengganti tegangan saat mengukur sensor yang berbeda.

jpc
sumber
Sama sekali tidak konvensional. Bahkan, jika dia ingin menggunakan mikrokontroler 8 bit kecil, dengan cara ini dia dapat menghindari berurusan dengan nilai 24 bit dan kompleksitasnya mungkin lebih kecil dari antarmuka ADC canggih ini. Rentang dinamis dapat berupa jumlah rentang dinamis ADC dan PWM dalam kasus ideal. Di sisi lain, tampaknya bagi banyak orang desain analog lebih sulit daripada digital, jadi hanya menggunakan 24 bit ADC mungkin lebih sederhana. Juga, rentang dinamis ADC dapat ditingkatkan dengan oversampling dan penyaringan digital ... yah, tidak sederhana lagi.
Jaroslav Cmunt
@Jaroslav Terima kasih. 1. Dia sudah memiliki jembatan Wheatstone jadi saya kira dia tidak sepenuhnya takut dengan bagian analognya. :) 2. 1 atau 2 bit resolusi tambahan harus dapat dicapai dengan menjalankan filter jumlah sederhana.
jpc
1
Memang! Berikut ini tautan untuk OP: http://www.dspguide.com/ch15.htm
Jaroslav Cmunt
3

Jika kekhawatiran utama Anda adalah memiliki rentang dinamis yang luas untuk setiap "sensor" yang diberikan, Anda dapat mempertimbangkan menggunakan DAC (atau bahkan hanya sumber tegangan terkontrol MPU-pin) untuk menyesuaikan offset / penguatan amplifier untuk mengubah kinerja sistem untuk material yang berbeda.

Anda juga dapat mengikuti tahap penguatan variabel ini dengan sirkuit integrasi muatan sehingga Anda dapat memperoleh sensitivitas sinyal fine tune dengan menyesuaikan periode "pencahayaan".

Toybuilder
sumber
0

Jika Anda memiliki daya komputasi yang cukup untuk laju sampel yang Anda butuhkan, pertimbangkan pemfilteran digital. Sebuah Savitzky-Golay filter, f / ex.

  • Anda dapat mengubah algoritma dengan lebih mudah daripada mengubah bagian;
  • Dengan mendorong beberapa penyaringan ke perangkat lunak, Anda mungkin dapat menggunakan bagian spesifikasi yang lebih rendah daripada jika bagian itu sendiri harus lebih tahan kebisingan atau melakukan semua penyaringan;
  • Anda akan belajar lebih banyak tentang input Anda dan dan apa yang Anda butuhkan dari mereka dan dapat membuat pilihan bagian informasi yang lebih baik, jika Anda memang membutuhkan bagian spek yang lebih tinggi.
  • Perangkat lunak dan keterampilan siap ditransfer ke aplikasi Anda yang lain!
JRobert
sumber
semua penyaringan akan dilakukan pada PC dalam lingkungan pemrosesan sinyal waktu nyata.
teras
0

Mengapa tidak mengubahnya hingga 11, dan gunakan saja TI ADS1262 . ADC 32-bit, dengan 11 input dan PGA!

ADS1262

Dengan 32-bit, Anda bisa mengambil sampel apa saja. Dan itu bahkan tidak semahal itu. Terlebih lagi, jika Anda hanya membuat salah satunya, dapatkan sampel gratis .


Pilihan lain adalah menggunakan PSoC. Ini adalah mikrokontroler yang berisi blok analog dan digital yang dapat dikonfigurasi ulang, yang dapat Anda gunakan untuk membuat semua jenis fungsi. Anda dapat memilih satu dengan ADC 16-bit, PGA, DAC, dan filter digital, untuk membuat pemfilteran auto-trimming, over-sampling, filtering digital, ADC!

PSoC38xx

Memprogram hal-hal ini dengan mudah, karena Anda hanya menggambar skema yang Anda inginkan, memilih fungsi yang telah ditentukan dari daftar. Kemudian tulis beberapa kode C, dan Anda pergi.

Roket
sumber