Bagaimana Mengkonversi sinyal analog 0 ke 10V menjadi 0 hingga 2.5V untuk input ADC?

25

Saya memiliki sinyal analog yang berkisar antara 0V dan 10V. Saya ingin skala linear ke 0 hingga 2.5V untuk ADC saya.

Saya khawatir bahwa menggunakan pembagi tegangan resistif akan mempengaruhi kualitas sinyal. Apakah ini benar? Jika tidak benar, nilai resistor apa yang harus saya gunakan untuk pembagi tegangan?

hati singa
sumber
2
kemungkinan duplikat pembagi tegangan dan ADC
Kellenjb
1
@Kellenjb - Pembagi tegangan dan ADC dan impedansi input ADC pada MCU sangat mirip dengan pertanyaan ini; ketiganya adalah tentang pembagi resistor dan ADC. Namun, Thomas menentukan dalam kedua pertanyaan terkait bahwa dia tidak khawatir tentang memuat sumber, yang merupakan komponen kunci dari jawaban saat ini. Selain itu, belum ada yang menjelaskan cara menghitung nilai resistor pada pertanyaan lain.
Kevin Vermeer
@lionheart - Seberapa kuat sinyal sumber Anda?
Kevin Vermeer
@KevinVermeer bagaimana dengan pertanyaan ini: Pengukuran tegangan PIC ; dan kemudian pertanyaan ini untuk bagian pembagi tegangan: Voltage Divider
Kellenjb
@Kellenjb - Keduanya bagus, tetapi tidak memperhitungkan (atau perlu memperhitungkan) impedansi input sistem.
Kevin Vermeer

Jawaban:

31

Ya, secara teori pembagi tegangan baik-baik saja. Seberapa besar pengaruhnya terhadap kualitas sinyal sebagian besar tergantung pada apa yang Anda anggap sebagai sinyal kualitas. Apakah ini audio HiFi, aliran data digital, audio suara, RF, sesuatu yang lain?

Ada beberapa masalah dengan pembagi tegangan resistif yang harus Anda perhatikan:

  1. Pembagi tegangan akan memuat sinyal sumber. Anda memerlukan pembagi yang mengeluarkan 1/4 dari sinyal input. Setiap pembagi dengan resistor atas 3x bagian bawah akan melakukan itu.

    Dalam hal ini R1 = 3 * R2. Impedansi yang melihat pembagi dari sumber adalah R1 + R2. Anda harus memastikan ini cukup tinggi untuk tidak memuat sinyal sumber untuk mengubah karakteristiknya ke titik yang Anda pedulikan. Misalnya, jika R1 = 30kΩ dan R2 = 10kΩ, maka pembagi akan memuat sumber dengan 40kΩ.

  2. Pertimbangkan impedansi keluaran. Ini adalah sebagian besar yang dibicarakan Steven. Dengan sumber tegangan sempurna (impedansi 0) yang menggerakkan pembagi, impedansi keluaran adalah R1 // R2. Dengan nilai contoh di atas, itu akan menjadi 30kΩ // 10kΩ = 7.5kΩ. Seperti yang disebutkan Steven, ini perlu dipertimbangkan saat menghubungkan ke mikrokontroler A / D. Ini bukan masalah memuat output divider karena A / D membutuhkan beberapa impedansi yang terbatas untuk mengisi tutup holding internal dalam waktu yang terbatas. Pada impedansi tinggi, arus bocor kecil dari pin A / D kali impedansi juga menghasilkan tegangan offset yang cukup untuk merusak pembacaan A / D. Karena masalah ini, produsen mikrokontroler menentukan impedansi maksimum untuk mengendarai input A / D. Dalam PIC lama dengan 8 atau 10 bit A / Ds, ini biasanya 10kΩ. Ini kurang dalam beberapa A / Ds baru yang lebih cepat atau pada resolusi yang lebih tinggi seperti 12 bit. Beberapa keluarga dsPIC hanya membutuhkan beberapa 100-an atau kurang.

  3. Respon frekuensi. Selalu ada beberapa kapasitansi liar. Berbagai kapasitansi liar akan menyebabkan filter lulus rendah dan tinggi. Hasil akhir tidak dapat diprediksi karena kapasitansi liar tidak dapat diprediksi. Menggunakan contoh 30kΩ dan 10kΩ lagi, impedansi output 7.5kΩ. Jika ini dimuat dengan 20pF, misalnya, maka Anda akan memiliki filter low pass dengan sekitar 1 MHz rolloff. Jika sinyal audio, tidak ada masalah. Jika ini adalah sinyal digital cepat, itu bisa menjadi masalah serius.

    Salah satu cara untuk mengatasinya adalah dengan menambahkan kapasitansi yang disengaja sekecil mungkin tetapi beberapa kali kapasitansi liar yang diharapkan sehingga total kapasitansi menjadi dapat diprediksi. Kapasitansi yang melintasi setiap resistor harus berbanding terbalik dengan resistansi itu. Sebagai contoh, berikut adalah pembagi tegangan yang dinaikkan dengan baik:

    Pada frekuensi rendah, resistor mendominasi dan membagi sinyal dengan 4. Pada frekuensi tinggi, kapasitor mendominasi dan membagi sinyal dengan 4. Crossover di mana aksi resistif dan kapasitif hampir sama adalah 53 kHz dalam contoh ini.

    Ngomong-ngomong, ini adalah cara kerja probe ruang lingkup. Probe "10x" membagi sinyal dengan 10. Karena perlu melakukan itu di seluruh rentang frekuensi lingkup, sedikit kapasitansi ditambahkan ke masing-masing resistor. Kapasitansi liar tidak pernah dapat diketahui secara pasti dan akan ada beberapa toleransi bagian, sehingga salah satu kapasitor dibuat variabel. Inilah penyesuaian "kompensasi kompensasi". Penyesuaian ini mengubah tutup trim kecil beberapa pF. Dengan gelombang persegi, Anda dapat dengan mudah melihat titik di mana pembagi kapasitif dan resistif cocok.

    Salah satu kelemahan dari pendekatan kapasitif dan resistif ini adalah bahwa impedansi pembagi turun pada frekuensi tinggi. Meskipun pendekatan ini berguna untuk membagi frekuensi yang lebih tinggi dengan benar, pendekatan ini juga memuatnya lebih dari sekadar dua resistor. Tidak ada makan siang gratis.

Semoga Anda dapat melihat beberapa masalah dan pengorbanan sekarang. Jika impedansi tidak berhasil, maka Anda perlu mempertimbangkan semacam buffer aktif seperti yang sudah dijelaskan Steven. Itu memiliki serangkaian masalah sendiri, seperti tegangan offset, respons frekuensi, dan kesalahan gain jika gain tidak hanya 1, tetapi itu untuk utas lainnya.

Olin Lathrop
sumber
Bukankah semua ini dapat diselesaikan dengan (katakanlah) LM358 dengan satu op amp buffering input dan buffering lainnya output, keduanya terhubung sebagai buffer non-pembalik, dengan pembagi potensial di tengah?
Ian Bland
8

Pada dasarnya, apa yang Anda coba lakukan disebut "pengkondisian sinyal". Secara umum seperti ini:

Pertama, buffer sinyal. Kecuali jika sumber 0-10 V Anda sudah memiliki impedansi output yang rendah, buffer dengan op amp noninverting (lihat jawaban stevenvh). Pastikan op amp memiliki bandwidth yang cukup. Biasanya ini digambarkan sebagai "gain-bandwidth produk" karena speknya adalah gain dari rangkaian kali bandwidth. Ini tidak selalu terjadi; beberapa amplifier adalah mode saat ini dan memiliki grafik yang menunjukkan gain vs bandwidth. Kasus Anda sederhana: gain adalah 1, jadi jika produk gain-bandwidth ditentukan, maka juga bandwidth pada gain 1.

Selanjutnya, bagi hasil dengan 4 menggunakan pembagi resistor. Karena Anda menggunakan ADC, Anda harus berhati-hati tentang sinyal aliasing (noise juga alias, jadi meskipun sinyal Anda jauh di bawah frekuensi ADC Nyquist, Anda tetap harus memiliki filter anti-aliasing). Filter anti-aliasing termudah adalah dengan hanya menempatkan kapasitor dari output pembagi Anda ke ground dan memperlakukannya sebagai filter RC, di mana R sama dengan dua nilai resistor pembagi secara paralel. Sudut harus melewati frekuensi tertinggi yang ingin Anda sampaikan ke ADC, dan filter harus menipiskan sebesar 6 dB per bit pada saat mencapai frekuensi aliasing (yang merupakan laju sampel dikurangi frekuensi sudut filter).

Di sinilah jenis ADC Anda penting. Dalam ADC (SAR) berturut-turut normal, laju sampel jauh, jauh lebih rendah daripada ADC sigma-delta, sehingga 20 dB / dekade yang Anda dapatkan dengan filter RC mungkin tidak cukup. Jika itu masalahnya, maka Anda perlu mendapatkan filter banyak tiang yang lebih rumit di sana. Itu adalah diskusi besar dalam dirinya sendiri, jadi saya akan melewatkannya untuk saat ini; cari filter tiang kompleks dan unduh salinan FilterPro TI jika Anda tertarik.

Setelah sinyal Anda difilter, Anda mungkin perlu buffer lagi jika impedansi output filter tidak jauh lebih rendah dari impedansi input ADC. Terakhir, jika input ADC Anda memiliki offset DC yang berbeda dari input Anda, Anda akan memerlukan kapasitor pemblokiran DC (yaitu seri). Ini harus dipilih seolah-olah impedansi input ADC adalah resistor dalam filter high-pass RC; pastikan sudut filter di bawah frekuensi input minimum Anda.

Mike DeSimone
sumber
5

ΩΩΩΩΩ
ΩΩ.

Sebagai alternatif, Anda dapat menyangga pembagi dengan pengikut tegangan, seperti yang disarankan Matt:

masukkan deskripsi gambar di sini

stevenvh
sumber
1
Atau buffer dengan op-amp
Majenko