Bagaimana cara membersihkan sinyal yang berisik?

19

Saya mengendalikan kipas PC PWM 4-pin dari PIC16F684 dengan kecepatan kipas yang didorong dari pembacaan ADC dari sensor proximity. Ini semua berfungsi ok.

Awalnya saya tidak berencana untuk menggunakan output tachometer dari kipas, tetapi karena sudah tersedia, saya telah memantaunya dengan cakupan saya hanya untuk melihat bahwa pemetaan saya antara kedekatan dan kecepatan kipas berfungsi.

Sekarang, apa yang saya perhatikan adalah bahwa ketika PWM menjalankan kipas pada 100%, sinyal tach (yang merupakan saluran terbuka ditarik melalui resistor 10K) bagus dan bersih:

tachclean

Namun, ketika saya menjalankan kurang dari 100%, sangat bising:

tachdirty

Memperbesar kebisingan itu:

tachdirtyzoom

Saya menduga itu dipengaruhi oleh sinyal PWM tapi saya ingin memahami mengapa dan bagaimana sehingga saya bisa membersihkannya jika perlu di masa depan. Sungguh saya tertarik pada apa yang harus Anda lakukan ketika Anda melihat suara seperti ini, bagaimana Anda menemukan penyebabnya dan bagaimana Anda "memperbaikinya". Ruang lingkup berhasil memicu ok jadi saya bertanya-tanya apakah saya hanya memberi makan ke pin interupsi eksternal pada PIC (RA2), yang merupakan input Schmitt Trigger dengan tingkat CMOS, maka saya tidak akan "melihat" suara dan saya misalnya bisa gema sinyal bersih dari pin lain untuk memudar LED atau sesuatu.

Jadi bisakah seseorang menjelaskan secara umum bagaimana cara mengenali dan memperbaiki sinyal yang bising? Atau jika itu terlalu luas mungkin hanya masalah khusus ini? Juga jika ada yang salah dengan sirkuit saya, akan lebih baik untuk mengetahui juga. Dalam skema di bawah ini, sinyal yang saya tampilkan adalah input TACH di sebelah kiri rangkaian:

skema

PEMBARUAN
Setelah saran yang bermanfaat dari @MichaelKaras dan @techydude, saya telah mengesampingkan Q2 sebagai sumber masalah dengan menghapusnya dari sirkuit sepenuhnya dan menghubungkan kipas secara langsung. Tidak ada efek signifikan pada kebisingan.

Jadi saya kemudian mengkodekan interupsi eksternal pada RA2 untuk menggemakan sinyal "dibersihkan" dari pin cadangan (RA1 dalam kasus ini), yang banyak membantu tetapi masih berkedip-kedip karena gangguan palsu. (Jadi saya akan mengatur interupsi untuk menjebak tepi naik kemudian beralih ke tepi jatuh ketika dipicu dan sebaliknya, pengaturan / reset RA1 sesuai).

Tapi, setelah juga menambahkan kapasitor 100nF di R3 (sebagai bagian dari saran @ techydude), saya sekarang mendapatkan output yang jauh lebih stabil. Tangkapan layar di bawah ini adalah sinyal TACH setelah dibersihkan melalui input RA2 Terpicu Schmitt dan re-output pada RA1:

tachclean

Roger Rowland
sumber
1
Mengapa Anda perlu FET IRF510 untuk mengalihkan daya ke kipas? Mengemudi PWM ke siklus tugas 0% harus membuat kipas mati atau ke kecepatan operasi minimum.
Michael Karas
1
@MichaelKaras Ya, kipas memiliki kecepatan minimum, jadi kipas itu tidak berhenti kecuali Anda memutus daya. Dengan desain itu mengabaikan PWM kurang dari ~ 10% dan berjalan pada 400RPM. Jadi saya menggunakan FET untuk membunuhnya sepenuhnya saat diperlukan.
Roger Rowland
2
Saya melihat. Tetapi itu berarti bahwa ketika Anda bermaksud untuk menyalakan kembali kipas dari keadaan off + 12V, Anda mungkin perlu memulai dengan siklus tugas PWM yang lebih tinggi dari minimum. Saya sudah mengalami hal ini dengan beberapa jenis penggemar karena mereka perlu memulai untuk membuat mereka dapat memulai dengan andal saat dihidupkan. Algoritme kontrol kipas pada banyak komputer jenis server akan berjalan pada siklus tugas 100% selama 10 hingga 20 detik pertama saat startup untuk memastikan bahwa semua kipas memulai dengan benar.
Michael Karas
2
Pada hampir semua subsistem kipas yang telah saya kerjakan, saya memiliki sinyal TACH yang diikat ke jaringan resistor yang bias sinyal dari rel + 12V dan kemudian memiliki sepasang resistor pembagi selain yang membawa sinyal TACH ke + Tingkat 5 atau + 3.3V diperlukan untuk sistem pemantauan. Tutup kecil di resistor bawah pembagi dapat membantu menyaring paku kebisingan pada sinyal TACH.
Michael Karas
1
Penggunaan utama menggunakan rel + 12V untuk membiaskan sinyal TACH adalah bahwa ia menyediakan isolasi antara + 12V dan sinyal tegangan digital level rendah dari sistem kontrol. Tiga pertimbangan adalah: 1) Kabel kipas dapat terjepit di antara bagian sasis dan celana pendek antara empat kabel menjadi mungkin. 2) Kipas di lingkungan yang berdebu bisa mendapatkan penumpukan muatan statis dan resistor dapat membantu menjaga keluarnya ESD dari input detektor TACH. 3) Konstanta waktu RC dari pembagi dengan kapasitansi liar atau dengan kap penutup ditambahkan sebagai filter untuk sinyal TACH.
Michael Karas

Jawaban:

9

Tentang skema Anda:

Semuanya tampak baik-baik saja, Anda dapat meningkatkan R2 hingga 10k atau bahkan 100k, kapasitansi PALING sangat kecil, FAN akan memiliki lebih banyak inersia pemintalan daripada penundaan mematikan di PALING, mungkin bahkan dengan 1M. Dengan begitu, lokasi 100R Anda tidak relevan dan Anda tidak menyia-nyiakan mA. Jika Anda tidak pernah memegang de uC dalam pengaturan ulang, secara teknis bahkan tidak diperlukan sama sekali, karena UC Anda akan aktif menariknya tinggi atau rendah.

Untuk sinyal PWM, Anda bisa melihat apakah datasheet memungkinkan pull-up eksternal ke 12V, meskipun saya ragu itu akan membuat banyak perbedaan.

Tentang kebisingan:

EDIT: Saya salah membaca plot Anda untuk kHz, yang bodoh jika Anda memikirkannya, di mana itu Hz. Beberapa kisah saya akan sedikit berubah (seperti pembicaraan tentang kebutuhan MHz untuk pekerjaan digital), tetapi gagasan umum tetap ada.

Saya akan meninggalkan seluruh pos apa adanya, tetapi untuk sinyal 100Hz dengan 30kHz noise, sebagai pengganti 100kHz dengan> 5MHz noise (juga tidak benar-benar masuk akal, bukan?), Anda dapat meningkatkan resistor yang berinteraksi dengan kapasitor dengan faktor 10, dan juga meningkatkan kapasitor dengan faktor 50 hingga 100. Itu akan memberi Anda faktor 1000 frekuensi penyaringan yang lebih rendah dalam semua contoh. Tetapi tidak apa-apa untuk hanya meningkatkan kapasitor dengan faktor 10 hingga 20, untuk tepi yang lebih tajam atau respons yang lebih cepat pada sinyal yang Anda minati, karena 30kHz sangat jauh dari 100Hz.

Jadi anggap posting ini ditulis untuk frekuensi tinggi dan kurangi idenya, membuatnya lebih mudah untuk diimplementasikan juga! (Terutama penolakan digital di 3.)

Akhir dari Edit

Karena Anda menggunakan kasus penggunaan yang bagus untuk bekerja melalui metode pengurangan kebisingan, saya akan mencoba membuatnya yang sesuai dengan situasi Anda.

Bagi siapa pun yang membaca, perhatikan:

Ini hanya tentang noise pada sinyal digital

Dalam sinyal digital Anda dapat membuat asumsi bahwa hanya ada dua tegangan yang Anda minati "hidup" dan "mati". Apa pun di antara itu tidak ada gunanya dan milik kebisingan atau salah. Dalam sinyal analog, Anda perlu tahu tentang setiap level tegangan dan Anda perlu melakukan beberapa penyaringan aktual dengan banyak C, L, dll.

Masalah dalam sinyal Anda adalah bahwa noise negatif meningkat pada level tinggi dan noise positif pada level rendah saling berdekatan, jadi pemicu standar yang sederhana, bahkan dengan level yang dapat disesuaikan tidak dapat sepenuhnya menjamin Anda bahwa Anda tidak akan pernah mendapatkan bingung.


Pilihan Anda:

  1. Ubah Bias
  2. Ubah Level Tegangan
  3. Tambahkan "lambat" Histeresis
  4. Saring Bisingnya

1. Ubah Bias:

Yang positif memiliki lonjakan negatif yang sangat rendah, itu karena pull-up Anda tidak dapat menang dari kebisingan. Hal termudah yang dapat Anda coba adalah mengurangi resistensi itu. Ada risiko ini hanya akan meningkatkan paku pada sinyal mati juga, sehingga mungkin tidak selalu berhasil. Tetapi sangat mungkin bahwa itu akan memberi Anda ruang kepala di antara paku untuk membuat histeresis sederhana.

2. Ubah Level Tegangan

Anda dapat dengan mudah, jika kipas memungkinkannya, ubah Tacho ke level tegangan yang lebih tinggi dan tambahkan kondisi antara:

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Sekarang mungkin ada cukup ruang antara lonjakan tinggi dan rendah untuk memastikan PALING selalu aktif, bahkan ketika ada lonjakan negatif dan selalu mati, bahkan jika ada lonjakan positif. Mungkin diperlukan beberapa dioda, zener, atau resistor untuk mendapatkan set-point dalam situasi baru, tetapi jika lonjakan pada sinyal negatif tetap seperti itu, mereka seharusnya tidak memicu MOSFET, selama Anda tidak ganti dengan yang memiliki ambang gerbang di bawah 2V.

3. Tambahkan "lambat" Histeresis:

Ini adalah trik yang biasa digunakan ketika Anda tahu sinyal noise runcing setidaknya dari urutan besarnya lebih besar dari sinyal yang Anda minati. Ini akan sedikit menunda sinyal, sehingga tidak dapat digunakan dalam situasi di mana saat yang tepat dari perubahan on / off adalah penting.

Tetapi untuk sinyal di mana Anda hanya ingin mengetahui bentuk atau frekuensinya, ini adalah metode yang sangat kuat. Ini pada dasarnya mulai memicu ketika ada tegangan melintasi ambang batas, tetapi hanya menyelesaikan tindakan itu ketika tetap di sana. Ada banyak cara untuk membangunnya.

Anda dapat melakukannya di pengontrol (yang termudah dalam jumlah komponen): Anda dapat memicu pada sisi, lalu sampel beberapa nilai lebih pada kecepatan yang cukup untuk melihat tinggi di antara lonjakan kebisingan, tetapi tidak bingung tentang kehilangan seluruh periode rendah. Kemudian Anda membuat penilaian yang telah ditentukan berdasarkan pengetahuan tentang sinyal dan kebisingan Anda. Misalnya, jika Anda dapat mengambil sampel pada 10MHz, Anda dapat menangkap 50 sampel dan memastikan bahwa frekuensi tertinggi 100kHz tidak akan diabaikan jika Anda menggunakan aturan mayoritas. Yaitu: setidaknya 25 harus rendah agar benar-benar rendah. Paku Anda hanya sangat tipis dan paling sering itu adalah sinyal asli, sehingga bisa bekerja, tetapi jumlah mayoritas dapat disesuaikan. Ini akan bekerja dengan 1MHz dan 6 atau 7 sampel juga, tetapi itu akan menjadi kurang dari mayoritas sebenarnya, jadi mungkin ada beberapa risiko lagi di sana.

Anda juga dapat melakukannya secara eksternal: Tapi ini sudah JAUH lebih rumit daripada menambahkan filter sederhana, terutama ketika Anda melihat hasilnya dengan UC dengan beberapa histeresis di inputnya. Tapi itu menyenangkan untuk dipikirkan, jadi mari kita:

skema

mensimulasikan rangkaian ini

U1 adalah Op-Amp atau Comperator yang cocok. Comperator adalah switcher yang lebih baik, seringkali dengan swing yang lebih baik, tetapi untuk sub-MHz sebuah OpAmp dengan swing rail / rail yang baik akan mudah dilakukan.

Sementara jenis histeresis ini dapat dibangun dengan setidaknya satu resistor lebih sedikit, yang ini lebih mudah untuk dijelaskan dan karenanya lebih mudah untuk dimodifikasi.

Pertama-tama bayangkan tanpa kapasitor:

Pertama, lihat bahwa pembagi resistor dipengaruhi oleh output U1, itu akan menariknya sedikit lebih rendah dari yang lebih tinggi melalui resistensi nyata 20kOhm. Katakanlah pada input positif U1 adalah tegangan 1.1V dibulatkan ke bawah ketika outputnya 0, dan 3.9V dibulatkan ke atas ketika outputnya 5V.

Jika Input awal Tacho kondisi mapan tinggi, output U1 akan rendah, karena sifat pembalik input ke Tacho. Jadi input negatif akan, lagi karena resistor pull-up ekstra, sekitar 2.3V. Karena input positif hanya 1.1V input perlu turun ke bawah 2.2V untuk membuat input negatif melihat tegangan lebih rendah dan membuat output terbalik.

Ketika output terbalik, input negatif akan melihat 3.6V (karena pada saat ini sinyal input 2.2V, output U1 adalah 5V, jadi bagian tengahnya, yang dibuat oleh resistor 10k adalah sekitar 3.6V), tetapi positif input akan beralih dari 1.1V ke 3.9V, jadi negatifnya masih di bawah input positif dan output akan tetap 5V.

Jika sinyal sekarang dengan cepat "batal" dan membalik kembali, output U1 akan cepat kembali lagi, tetapi kemudian lonjakan harus turun di bawah 2.2V, jadi itu lebih baik daripada tidak sama sekali.

Jika sinyal bergerak lebih jauh ke 0, situasi stabil hanya akan menjadi lebih kuat, input negatif akan turun menjadi 2.5V (karena kami menganggap tacho FAN cukup kuat dari pull-down) dan positif akan beristirahat di sekitar 3,9 V.

Sekarang sinyalnya perlu naik di atas 2.7V agar output terbalik. Sangat mungkin 95% paku Anda akan diabaikan.

Menambahkan kapasitor:

Dengan kapasitor, sinyal yang masuk perlu memasok energi yang cukup untuk waktu yang cukup untuk mengisi atau melepaskan kapasitor. Efeknya sudah menjadi filter RC. Setiap lonjakan yang cepat turun dan kemudian pulih tidak akan dapat melepaskan kapasitor.

Nilai C tentu saja tergantung pada sinyal sumber dan sinyal noise. Saya telah memarkirkan 510pF untuk sumber sinyal 100kHz vs durasi lonjakan 1us paling banyak, tapi saya tidak benar-benar melakukan banyak matematika, itu hanya firasat berbasis waktu RC bahwa ini mungkin dekat dengan apa yang akan bekerja.

4. Saring Kebisingan

Ini agak seperti hanya memfilter sinyal analog. Anda dapat menggunakan jaringan RC sederhana, seperti yang dibahas di bagian sebelumnya:

skema

mensimulasikan rangkaian ini

Karena lonjakan noise berada pada atau kurang dari 1us, mereka tidak dapat membuat perubahan tegangan yang sangat signifikan pada kapasitor, karena waktu-RC-nya adalah 5us. Ini berarti bahwa energi dalam paku rata hingga rata. Karena Anda melihat puncak tinggi dan penurunan rendah pada paku itu bahkan mungkin rata-rata akan sangat dekat dengan 0V dan 5V, tetapi itu hanya dapat dikatakan dengan gambar yang lebih baik, atau hanya percobaan. Karena Anda memasukkannya ke pin UC, waktu-RC mungkin akan cukup untuk melihatnya sebagai tinggi atau rendah. Ini akan memberikan distorsi kecil karena pengisian lebih lambat daripada pemakaian, yang disebabkan oleh pull-up resistor. Beberapa penyesuaian nilai dapat menghasilkan hasil yang dapat diabaikan.

Jika itu tidak cukup, Anda dapat menambahkan beberapa komponen lagi, tetapi Anda sangat cepat berlebihan ketika kebisingan dominan Anda setidaknya 10 kali "lebih cepat" dari sinyal Anda.

Anda dapat menambahkan induktor 4.7uH secara seri dengan resistor untuk menghaluskan beberapa sisi frekuensi tinggi, bahkan mungkin 10uH.

Tapi jujur, dalam kasus "memberi makan ke UC" satu-satunya alasan untuk bereksperimen dengan L dalam sinyal jenis Anda adalah untuk menemukan keseimbangan di mana R besar, C kecil dan L hanya membantu memperlancar beberapa sisi, sehingga R2 / R1 akan cukup kecil untuk mengabaikan perbedaan waktu naik dan turun. seperti R1 dari 33k, C 150pF dan seri L dengan R1 dari 56uH. Atau mungkin manik ferit sebagai pengganti induktor, sedikit tergantung pada ketajaman paku Anda.

Tapi sudah terlalu memikirkannya, kataku.

Asmyldof
sumber
1
Saya tidak dapat berkata-kata! Sungguh jawaban yang fantastis, jelas, komprehensif dan bermanfaat. Saya tidak bisa cukup berterima kasih, ini persis seperti respons yang saya harapkan. Begitu banyak belajar di sini dan sangat berterima kasih. Saya perlu membaca ini beberapa kali tetapi pada pandangan pertama saya bisa melihat opsi lebih jelas sekarang dan Anda benar-benar membuka mata saya. Luar biasa, hanya luar biasa.
Roger Rowland
2
@RogerRowland Itulah poin utama dari situs seperti ini. Saya senang bisa membantu. Komplikasi / matematika lebih lanjut dapat diperoleh di Chat. Saya di sana secara teratur. Hanya perlu menambahkan catatan bahwa saya salah membaca plot Anda sebagai kHz daripada Hz
Asmyldof
6

Kebisingan seperti ini dari fan tacho adalah hal biasa, karena sirkuit (yang biasanya mencakup sensor Hall Effect) pada fan yang menghasilkan output tacho sendiri sedang dinyalakan / dimatikan di freq PWM Anda (ketika output PWM Anda berada pada hal lain dari 100% -On), bukan hanya pasokan ke motor itu sendiri. Tentu mereka akan memiliki beberapa kapasitansi untuk memperlancar pasokan ke sirkuit itu, tetapi mengingat, katakanlah, catu daya kipas 12V, selama ada cukup kapasitansi untuk mempertahankan beberapa volt antara periode PWM minimum, itu cukup untuk mendorong Hall- Sensor efek & tarik-keluar output tacho (jika kipas menyertakan pull-up sendiri pada output tacho), untuk memberikan sinyal output yang dapat dipulihkan. Ya, penggemar berantakan ketika Anda PWM pasokan mereka. Beberapa penggemar menawarkan input kecepatan PWM yang terpisah dengan pasokan + 12V mereka.

PWM Anda tampaknya sekitar 27kHz. Jadi hal yang baik dalam situasi khusus ini adalah bahwa output tacho Anda @ output 100% tampaknya sekitar 800Hz, yang merupakan <1/30 frekuensi PWM Anda, jadi menyaring output tacho ini untuk menghilangkan sebagian besar kebisingan PWM adalah mudah & layak dilakukan. Terlambat di sini jadi saya CBF akan bekerja melalui calcs, tetapi karena itu open-drain & itu tegangan suplai pull-up Anda (di kipas) yang dianiaya oleh PWM, tutup antara tacho & + 12V rail (bukan PWM output dari sirkuit drive fan Anda) mungkin akan menjadi pilihan yang lebih baik daripada tutup pada tacho ke ground. Coba keduanya & lihat. Mulailah dengan penutup keramik 100n dengan tegangan yang sesuai & lihat tampilannya.

Dengan input Schmigger pada PIC, Anda bahkan mungkin dapat pergi tanpa melakukan penyaringan dari output tacho ini sebelum memasukkannya ke dalam PIC Anda, tetapi Anda memiliki diferensial freq yang akan dengan mudah memungkinkan Anda untuk pergi jauh ke arah membersihkannya naik.

Satu kemungkinan masalah dengan penanganan sinyal tacho dari kipas: jika kipas menariknya hingga +12 dengan 10k secara internal (ada yang melakukannya, ada yang tidak) & Anda juga menarik sinyal tacho ke Anda + 5V rail, maka Anda benar-benar menariknya! Ada berbagai konfigurasi rangkaian untuk mengatasinya, tergantung pada tegangan suplai kipas, seberapa kuat tarikannya, dll. Cobalah untuk mengukurnya dengan multimeter Anda & beri tahu kami.

Techydude
sumber
"Beberapa penggemar menawarkan input kecepatan PWM yang terpisah dengan pasokan + 12V mereka" - Ya, itulah yang saya miliki :-) Kipas 4-pin ini memiliki kontrol PWM yang terpisah dari 12V / GND, jadi itulah baris I sedang mengemudi. FET lainnya (Q2) hanya ada sehingga saya dapat mematikan kipas sepenuhnya karena memiliki kecepatan minimum. Jadi saya bukan PWM'ing Q2, hanya Q1.
Roger Rowland
Umumnya untuk kipas 4-kawat, jika diberi suplai 12V konstan dan kawat input PWM digunakan untuk mengontrol kecepatan Anda tidak akan melihat frekuensi switching PWM dalam output TACH. Hanya akan menjadi kasus mencoba menerapkan PWM ke lead daya kipas.
Michael Karas
"jika kipas menariknya hingga +12 dengan 10k secara internal" - Hmmm, itu tidak menarik hingga +12, tetapi jika saya melepas pullup saya tampaknya ditarik oleh kipas hingga sekitar 2V. Tampaknya aneh bagi saya, tetapi mungkin menjelaskan mengapa sinyal berisik saya sekitar 6V daripada 5V. Tidak yakin apa yang harus dilakukan sekarang!
Roger Rowland
Doh! Maaf, saya bahkan tidak memperhatikan sch Anda bahwa itu adalah kipas 4-kawat. Dan sekarang saya ingat pertanyaan Anda yang lain :). OK, setelah sekarang meninjau lembar data IRF510, saya pikir @Michael Karas lebih mungkin benar, bahwa Q2 mungkin tidak sepenuhnya aktif (dan tidak dibantu oleh R1 & R2 menjadi pembagi 1:10, sehingga Anda akan mendapatkan tidak lebih dari Vgs = 4.5V, jadi +12 untuk kipas Anda mungkin melorot (terlalu sulit untuk dipastikan dari tembakan lingkup Anda, perlu melihat dalam periode PWM). Ubah R2 ke 100k (lebih dari cukup untuk menjaga off ketika dalam tri- negara) & lihat apakah itu membantu. Jika demikian, pilih MOSFET-ambang-batas Vgs yang lebih rendah.
Techydude
1
@Techydude lol, tidak apa-apa, itu masih teka-teki. Seperti yang saya katakan kepada Michael, saya sekarang melepas Q2 dan menghubungkan kipas secara langsung, dan saya masih melihat suara yang sama. Saya juga telah mencoba menggema TACH ke pin lain melalui INT tetapi Schmitt tidak cukup membersihkannya sendiri dan output yang digaungkan masih acak-acakan. Mungkin karena ini semua masih di papan tempat memotong roti? Sebenarnya 100nF antara TACH dan Vcc telah membantu.
Roger Rowland
3

Sumber kebisingan yang mungkin pada sinyal TACH mungkin karena FET IRF150 tidak menjadi impedansi ON yang cukup rendah. Ini bisa jadi karena FET RdsON cukup tinggi atau FET tidak sepenuhnya ON pada tegangan drive gate yang disediakan.

Saat arus FAN aktif dan nonaktif dengan sinyal PWM akan ada penurunan pada resistansi FET yang menyebabkan referensi "GND" kipas menabrak ke atas dan ke bawah dan menerjemahkan suara yang terlihat pada sinyal TACH.

Anda dapat memeriksa ini untuk melihat apakah efek yang saya jelaskan adalah kasus dengan meletakkan lingkup GND pada saluran FET dan kemudian melihat sinyal TACH. Sinyal akan terlihat jauh lebih bersih.

Solusinya adalah dengan memilih FET dengan RdsON yang jauh lebih rendah ketika disertakan dengan drive gerbang yang disediakan sistem Anda.

Gagasan lain yang mungkin adalah dengan menggunakan P-FET untuk mengganti + 12V lead kipas bukannya lead GND.

Perhatikan bahwa pengaturan gate resistor yang Anda gunakan menyebabkan Anda kehilangan beberapa drive gate potensial. Pindahkan resistor 1K ke sisi 100ohm lainnya.

Michael Karas
sumber
Terima kasih Michael, saya sangat menghargai saran Anda. Saya sekarang telah melepaskan Q2 sepenuhnya dan menghubungkan kipas secara langsung tetapi saya masih melihat suara TACH yang sama pada semuanya di bawah 100% PWM. Poin bagus tentang penempatan resistor 1K!
Roger Rowland
3

Ini terdengar seperti pekerjaan untuk filter low-pass. Anda perlu menyimpan sinyal yang berguna dengan f 1 sekitar 1 kHz dan menghapus sinyal yang menyinggung dengan f 2 dekat 25 kHz. Frekuensi cut-off dapat dipilih sebagai rata - rata geometri dari f 1 dan f 2 (suboptimal tetapi sederhana):

f c = sqrt (1 * 25) = 5 kHz.

Dengan asumsi RC-filter sederhana akan cukup, dan Anda sudah memiliki hambatan di sirkuit TACH (R 3 = 10 kOhm), nilai kapasitor yang sesuai harus dihitung agar sesuai dengan costant 5 kHz :

masukkan deskripsi gambar di sini

C = 1 / (2 * pi * fc * R) = 1 / (6.28 * 5000 * 10000) = 3.2 * 10 -9 F.

Jadi yang perlu Anda lakukan adalah menyolder kapasitor 3nF antara garis TACH dan tanah. Ini akan melemahkan noise frekuensi tinggi dengan faktor 20 atau lebih, yang seharusnya cukup untuk aplikasi Anda.

Dmitry Grigoryev
sumber
Terima kasih, itu mirip dengan yang disarankan @techydude (meskipun perhitungan Anda jelas lebih baik daripada perkiraan), tetapi apakah Anda tahu mengapa saya menemukan penekanan noise yang lebih baik dengan batas antara TACH dan 5V daripada TACH dan GND? Apakah pilihan itu memengaruhi di mana suara ditekan (yaitu pada bagian denyut nadi yang tinggi atau bagian yang rendah) atau haruskah ia menekannya secara merata?
Roger Rowland
Fakta bahwa batas antara TACH dan 5V bekerja lebih baik daripada batas antara TACH dan GND mengejutkan saya. Biasanya, Anda seharusnya menghubungkan filter ke level tegangan yang digunakan sebagai referensi di sistem Anda, dan dalam 99% kasus itu adalah GND. Juga, VCC dan GND terhubung melalui sumber tegangan dengan resistansi internal mendekati nol (dibandingkan dengan resistor 10k), jadi seharusnya tidak terlalu masalah.
Dmitry Grigoryev
Setelah melihat lebih dekat pada skema, saya pikir itu terkait dengan fakta bahwa input Anda adalah saluran terbuka, yang menghasilkan suara dengan tepi asimetris (jatuh cepat dan naik halus). Jika Anda menggunakan skema dari jawaban @ Asmildof , sinyal berisik akan diterapkan pada input filter RC daripada di tengahnya, dan seharusnya berfungsi seperti yang diharapkan untuk segala jenis kebisingan.
Dmitry Grigoryev
Terima kasih @ Ambry, kebisingan asimetris yang Anda gambarkan sepertinya cocok dengan jejak saya yang diperbesar sehingga masuk akal bagi saya. Saya akan melakukan lebih banyak pekerjaan di sirkuit berdasarkan semua saran bagus yang saya terima di sini. Masukan Anda sangat kami hargai.
Roger Rowland