Mengapa mikrokontroler umumnya tidak memiliki DAC on-chip?

44

Dalam jawaban ini saya membaca bahwa mikrokontroler biasanya tidak memiliki DAC, sementara mereka memiliki ADC. Mengapa demikian?

sunting
Saya menghargai bahwa mengintegrasikan resistor seperti dalam R-2R DAC mahal dalam hal real-estate (terima kasih Mike, atas jawaban Anda), tapi saya pikir DAC yang diaktifkan saat ini dapat dibuat sangat kecil karena mereka hanya memerlukan beberapa transistor.

Federico Russo
sumber
+1 itu pertanyaan yang sangat bagus. Saya juga bertanya-tanya hal yang sama.
sybreon
Saya perlu mengukur 2 tegangan dengan A / D, kemudian menghasilkan 2 D / A secara bersamaan. Ini untuk mengontrol arus melalui 2 transistor secara bersamaan. Kebisingan dan non-linearitas dari metode PWM tunggal atau ganda yang disaring merupakan masalah nyata. Terkadang Anda ingin "kembali ke analog". Sepertinya solusi Cypress untuk saya. Alasan utama untuk menggunakan mikro di tempat pertama adalah untuk mengurangi jumlah bagian. Menambahkan hal-hal seperti tempel D / A mengalahkan yang keluar dari gerbang.

Jawaban:

30

Pertama, beberapa mikrokontroler DO memiliki konverter D / A. Namun, ini jauh lebih jarang daripada konverter A / D.

Selain masalah teknis, alasan utamanya adalah permintaan pasar. Pikirkan tentang itu. Aplikasi macam apa yang membutuhkan D / A nyata? Sangat jarang menginginkan mikro untuk menghasilkan sinyal analog berkecepatan tinggi yang cukup kecuali jika intinya adalah pemrosesan sinyal. Namun pasar utama untuk itu adalah audio, dan yang membutuhkan resolusi lebih banyak daripada yang dapat Anda bangun dengan proses yang sama yang digunakan untuk membuat mikrokontroler digital. Jadi audio akan menggunakan A / Ds dan D / As eksternal. DSP yang ditujukan untuk aplikasi semacam itu memiliki perangkat keras komunikasi yang terpasang untuk berbicara dengan perangkat eksternal tersebut, seperti I2S.

Kalau tidak untuk aplikasi kontrol biasa, strateginya adalah mengkonversi ke digital pada awal proses dan kemudian menjaga hal-hal digital. Ini berargumen untuk A / Ds, tetapi D / As tidak berguna karena Anda tidak ingin kembali ke analog.

Hal-hal yang biasanya dikendalikan oleh mikrokontroler dikendalikan dengan PWM (PulseWidth Modulation). Mengalihkan catu daya dan audio kelas D secara inheren bekerja pada pulsa. Kontrol motor, kontrol solenoid, dll, semuanya dilakukan dengan pulsa untuk efisiensi. Anda ingin agar elemen lulus menyala penuh atau mati karena saklar yang ideal tidak dapat menghilangkan daya apa pun. Dalam sistem besar atau di mana daya input langka atau mahal (seperti operasi baterai), efisiensi sistem switching menjadi penting. Dalam banyak kasus menengah, daya total yang digunakan bukan masalah, tetapi menyingkirkan daya yang terbuang karena panas. Sirkuit switching yang menghilangkan 1 W daripada 10 W mungkin lebih mahal di komponen elektronik daripada sirkuit linier 10 W, tetapi secara keseluruhan jauh lebih murah karena Anda tidak memerlukan pendingin dengan ukuran dan berat yang terkait,

Perhatikan bahwa output PWM, yang sangat umum di mikrokontroler, dapat digunakan untuk membuat sinyal analog dalam kasus yang tidak biasa di mana Anda membutuhkannya. Pemfilteran lulus rendah output PWM adalah cara termudah dan terbaik untuk membuat sinyal analog dari mikro selama Anda memiliki produk kecepatan * resolusi yang mencukupi. Output PWM yang difilter bagus monotonik dan sangat linier, dan resolusi versus kecepatan tradeoff dapat berguna.

Apakah Anda memiliki sesuatu yang spesifik dalam pikiran Anda berharap mikro memiliki konverter D / A? Kemungkinannya adalah ini dapat diselesaikan dengan PWM yang difilter low pass atau membutuhkan D / A eksternal untuk kecepatan resolusi yang lebih tinggi. Kesenjangan antara PWM yang disaring dan eksternal cukup sempit, dan jenis aplikasi yang benar-benar membutuhkan sinyal seperti itu juga sempit.

Olin Lathrop
sumber
Terlepas dari audio, Arbitrary Function Generator (ARB) adalah tentang satu-satunya aplikasi yang dapat saya pikirkan di mana Anda tidak dapat menggunakan PWM.
stevenvh
Satu-satunya titik di mana DAC tampaknya berguna bagi saya ketika resolusi tinggi diinginkan DAN kecepatan tinggi. PWM memiliki resolusi terbatas karena penghitung atau penghitung waktunya, dan dengan kecepatan pembaruan tertentu, memerlukan referensi kecepatan yang sangat tinggi.
Hans
Tempat lain yang berguna adalah ketika Anda membutuhkan tegangan trim untuk beberapa sensor analog-offset acak.
Rocketmagnet
1
@Rocket: Trim offset adalah bandwidth yang sangat rendah, sehingga PWM berfilter low pass bekerja dengan baik untuk mereka. Itu tidak memerlukan banyak bagian tambahan karena Anda biasanya ingin menggeser dan melemahkan kisaran output penuh untuk penyesuaian trim.
Olin Lathrop
1
Saya tidak yakin seberapa representatif pabrikan µc lain, tetapi sekitar 10% PIC µc memiliki D / A terpasang, saya yakin semuanya 10-bit. 16 PIC (kebanyakan dalam keluarga PIC24 dan dsPIC33 tetapi pasangan PIC16) memiliki dua D / A.
tcrosley
12

DAC relatif mahal di bidang silikon. Jauh lebih sedikit aplikasi yang membutuhkan keluaran analog daripada input, dan fungsionalitas DAC yang dibutuhkan untuk sebagian besar aplikasi dapat dicapai lebih murah menggunakan PWM dan sejumlah kecil penyaringan eksternal.

mikeselectricstuff
sumber
6

Dua masalah lebih lanjut, belum disebutkan:

  • Ada banyak kasus di mana bagian harus dapat mengukur tegangan pada banyak pin, tetapi tidak secara bersamaan. Dimungkinkan untuk menggunakan ADC tunggal bersama dengan satu pass-gate per pin untuk mencapai ini. Sebaliknya, sebagian besar bagian yang membutuhkan banyak keluaran DAC akan membutuhkannya secara bersamaan.

  • Sirkuit yang menghubungkan ADC ke dunia luar harus mampu mentransfer arus yang cukup untuk mengisi atau melepaskan kapasitansi yang disengaja atau parasit pada sirkuit input ADC. Tidak hanya itu jumlah arus yang sangat kecil, tetapi pada dasarnya independen dari aplikasi. Area tambahan yang diperlukan untuk menangani persyaratan penanganan saat ini "terburuk" akan diabaikan dibandingkan dengan apa yang diperlukan untuk sesuatu yang bisa bekerja dalam keadaan aplikasi yang menguntungkan. Sebaliknya, aplikasi DAC yang berbeda akan memiliki persyaratan sumber atau tenggelam yang berbeda saat ini, dan jumlah area chip yang diperlukan untuk menangani persyaratan tersebut akan sangat bervariasi. Menghabiskan 20% dari area chip seseorang pada beberapa DAC yang tepat sesuai dengan persyaratan aplikasi akan masuk akal,

Kebetulan, salah satu teknik yang belum pernah saya lihat digunakan adalah menggabungkan DAC dengan PWM. Saat menggunakan R / 2R DAC, mudah untuk menambahkan input tambahan yang beratnya sama dengan LSB (jadi misalnya DAC 3 + 1-input akan memiliki bobot 1/2, 1/4, 1/8, dan 1/8). Mengambil DAC 8-bit dan menambahkan sinyal PWM ke dalamnya dapat menghasilkan hasil 12-bit dengan 1/128 noise dari PWM 12-bit, tetapi dengan biaya yang lebih rendah daripada menggunakan DAC 12-bit linearitas yang sebanding.

supercat
sumber
1

Seperti yang dikatakan Olin, beberapa MCU memiliki DAC. Lihatlah Cypress PSoC3 dan PSoC5. Mereka berisi hingga dua DAC. Ini bisa sangat berguna dalam aplikasi penginderaan analog yang membutuhkan tegangan trim sebelum amplifikasi.

Sebagai contoh, kami menggunakan satu untuk mengukur output dari sensor tekanan. Setiap chip sensor tekanan memiliki offset tegangan acak. Ketika MCU diatur ulang, ini mengatur tegangan DAC menjadi kurang dari output sensor. Kemudian memperkuat perbedaan antara voltase ini.

Sangat menyenangkan bisa memiliki ADC, DAC, Opamps dan MCU semuanya dalam satu chip.

Rocketmagnet
sumber
1
Tentang penggunaan DAC dengan sensor tekanan, tempat Anda menerapkan tegangan offset. Tentu saja, saya tidak tahu detail sirkuit Anda. Tetapi bukankah lebih mudah untuk merekam offset dalam memori UC dan menerapkan koreksi secara digital dalam firmware?
Nick Alexeev
@NickAlexeevit mungkin bukan yang terbaik, karena dengan melakukan hal itu Anda menyia-nyiakan sebagian kecil dari jangkauan ADC, menurunkan akurasi.
clabacchio
Persis. Jika Anda ingin menerapkan amplifikasi (x50), maka Anda harus memiliki tegangan diferensial terendah pada tekanan nol.
Rocketmagnet
0

Melihat kembali hal ini pada tahun 2017, sekarang ada sejumlah keluarga mikrokontroler yang menyertakan DAC (selain dari Cypress PSOC dan PIC yang tercantum di atas):

  • Perangkat Analog ADuC70xx
  • Atmel AVR XMEGA (beberapa bagian)
  • Infineon XMC4100 / XMC4200
  • Seri NXP Kinetis, lainnya
  • Renesas H8, R8, lainnya
  • Laboratorium Silikon
  • STMicroelectronics beberapa seri STM32
  • TI, beberapa seri MSP430, juga beberapa seri C2000
  • Zilog (dengan prosesor Z8)

Mencari di Digikey Product Index> IC (Sirkuit Terpadu)> Tertanam - Mikrokontroler memberikan daftar, dengan salah satu kolom diberi label "Pengonversi Data"

Patrick Pribyl
sumber