Saya menyusun proyek yang mengambil keuntungan dari perangkat komparator pada mikrokontroler STM32F051. Saya telah membaca dalam dokumentasi bahwa agar komparator berfungsi pin input perlu dikonfigurasi untuk analog ... yang merupakan pengaturan yang sama jika Anda menggunakan pin sebagai input ADC.
Dapatkah saya menggunakan pin tunggal, katakan PA1, sebagai input dan konfigurasikan sebagai input komparator jendela dan sebagai input ADC pada ADC_IN1?
Apakah ada gotcha dengan konfigurasi ini seperti noise tambahan yang harus saya pertimbangkan?
Lembar Data (p 19)
Referensi Manual (p 295)
Referensi yang menarik, menyarankan bahwa ini harus dimungkinkan: Diambil dari AN4232: Memulai dengan komparator analog untuk seri STM32F3
Jawaban:
Ini berfungsi, Anda akan mendapatkan nomor kembali, serta interupsi. Saya sudah memeriksanya, unduh dari .
Akurasi dan glitchiness belum ditentukan, sampai sekarang. Tetapi dijelaskan dengan baik di Appnotes seperti yang ditunjukkan oleh @Bence Kaulics di utas ini (lihat results.txt untuk AppNotes tambahan)
Saya percaya ini akan stabil karena alasan berikut.
Ini juga berfungsi dengan DAC, yaitu Anda dapat mengatur semuanya secara internal dengan DAC atau secara eksternal dengan DAC dan beberapa resistor.
Hanya dengan melihat sirkuit Anda akan menggunakan ADC secara paralel dengan pembanding, pada dasarnya sebuah penguat. Seperti yang kita ketahui ini adalah impedansi perangkat gain besar yang sangat tinggi. Gangguan bukan teman kita.
Sekarang kita akan menggedor tutup kosong ke pin itu sesekali untuk memberi makan ADC.
Seperti yang kita semua tahu, kita perlu mengecoh ADC dan lebih baik menolak pembacaan pertama setelah acara mux switch untuk menghilangkan kemiringan dari dan ke saluran yang berdekatan.
ADC pada STM memiliki impedansi input agak <50K // 5pF tergantung pada bagaimana mereka digunakan. (DM00039193.pdf hal 76ff)
Tabel 53 memberikan 400-> 50KOhm, yang saya temukan beberapa waktu lalu ketika saya mengkalibrasi F373 ADC saya.
Pg 79 menunjukkan sirkuit ADC.
Pg 82 memberikan deskripsi singkat tentang pin pembanding, dibaca bersamaan dengan deskripsi umum pin analog di atas (pg73ff)
Masukkan paralel dengan input komparator Anda dan ADC MUX dan modelkan dalam rempah-rempah. Ingatlah untuk mengisi tutup ADC ke tegangan acak secara teratur.
Apa pun yang terjadi di sirkuit dan perangkat lunak Anda akan mendapatkan gangguan cukup masuk akal pada input komparator Anda. BAD IDEA, bahkan jika Anda menghubungkan pin ke pengikut impedansi rendah dan tutup decoupling (pada garis input input pembanding ????).
Tutup yang digunakan oleh ADC adalah pembunuh. Semoga perangkat masa depan akan sampel menggunakan pengikut / isolator internal pada ADC dan pembanding. Ini mungkin sudah ada di sana sebagai fitur tidak berdokumen (tidak mungkin karena crosstalk mux).
Seperti saya, saya pikir kita begitu terlibat dengan sisi digital dari hal-hal yang ketika kita beralih ke analog dan hibrida kita melupakan dasar-dasarnya.
Bagaimana mengukur arus kecil menggunakan konverter arus ke tegangan? adalah diskusi yang saya lakukan dengan orang lain kemarin. Aku tahu jawabannya karena aku sendiri yang salah. Bahkan pada 3V terbaik menjadi 50K kita mendapatkan AVO 16K / volt. Kapan terakhir kali saya menggunakan AVO / multimeter?
Semua yang dikatakan, melihat pada sirkuit F373 menunjukkan bahwa ST dan ARM tampaknya dimaksudkan untuk bisa mendapatkan hasil yang bisa diterapkan dari kedua komparator dan ADC yang digunakan secara bersamaan dalam perangkat campuran. Penambahan opamps dalam seri 150 dan 300 memberikan petunjuk tentang persyaratan isolasi impedansi.
Saya yakin bahwa seseorang yang lebih pintar daripada saya akan dapat merekayasa ulang lingkungan tempat interkoneksi internal ini dirancang. Saya akan berpikir otomotif atau HVAC .... inverter dan FOC. Perpustakaan FOC dapat memberikan wawasan yang berharga.
Kecuali jika Anda membangun instrumen berkecepatan tinggi dan sangat akurat, penggunaan seperti itu mungkin cukup stabil untuk digunakan secara praktis (dalam peringatan di atas). Ini tentu akan menghemat banyak sirkuit eksternal. Tes yang ketat pada kecepatan tinggi mungkin sebaiknya dibiarkan sebagai latihan untuk siswa (Tempt me to study).
Solusi di sini .
Sepertinya perpustakaan HAL ADC agak rusak untuk multi channel DMA. Saya telah memposting di situs web STM untuk mendapatkan jawaban. Penanganan masalah: -
a) IRQ kedua ADC
b) Polling kedua ADC
c) DMA satu saluran dan polling yang lain
d) Menginisialisasi register level rendah secara manual
Ini adalah satu lagi peringatan untuk solusi di mana kedua pembanding digunakan, sampai solusi yang lebih baik ditemukan.
sumber
Pengaturan paling relevan yang dapat saya temukan adalah yang berikut, dari Menggunakan komparator analog STM32F05xx dalam kasus aplikasi , ( AN4112 ), halaman 4:
Ia mengatakan:
Di sini ADC dan COMP bekerja secara bergantian tetapi saya pikir keduanya dikonfigurasikan secara bersamaan. Jika kita melanjutkan dalam dokumen ada diagram blok tentang konfigurasi COMP.
Berdasarkan gambar ini saya berpikir bahwa ADC dan COMP berbagi Saluran ADC yang sama satu-satunya perbedaan adalah jumlah Sumber Ambang Batas Analog yang diaktifkan .
Teks di bawah Gambar 5 dalam pertanyaan menyatakan bahwa
mungkin sama dengan ADC_IN1.
Tujuan seluruh konfigurasi ini adalah untuk menghemat daya, COMP memicu perubahan status MCU (STOP <--> RUN). Jadi ketika input berada di bawah ambang tertentu MCU dan ADC dimatikan dan hanya komparator yang bekerja, dan ketika input berada di atas ambang batas MCU dan ADC bangun ADC mengukur tegangan input. Tetapi jika input turun di bawah ambang batas lagi, COMP mengirim MCU ke status STOP.
Ini adalah salah satu cara menggunakannya bersama-sama, saya harap ini akan memajukan pertanyaan.
sumber
Saya pikir Anda harus bertanya di forum STM. Ada juga (STM32F1) UART RX dan TIMx pada pin yang sama, kedua input, tetapi Anda tidak dapat menggunakannya bersama-sama, seperti mendeteksi akhir dari penghenti waktu transmisi. Sebaliknya pin TIMx berbeda harus dihubungkan secara paralel untuk memiliki fitur UART RX dan timer interrupt. Saya kira hanya satu fungsi yang dapat aktif secara bersamaan.
Coba unduh MxCube dan lihat konfigurasi apa yang dapat dibangun.
sumber