Daftar Isi:

Kontrol PWM DIY untuk Penggemar PC: 12 Langkah
Kontrol PWM DIY untuk Penggemar PC: 12 Langkah

Video: Kontrol PWM DIY untuk Penggemar PC: 12 Langkah

Video: Kontrol PWM DIY untuk Penggemar PC: 12 Langkah
Video: speed controller || 12vdc + Soler 2024, Juli
Anonim
Kontrol PWM DIY untuk Penggemar PC
Kontrol PWM DIY untuk Penggemar PC

Instruksi ini menjelaskan tentang pembuatan pengontrol PWM kipas PC 12 V berfitur lengkap. Desainnya dapat mengontrol hingga 16 kipas komputer 3-pin. Desainnya menggunakan sepasang IC sinyal campuran Dialog GreenPAK™ yang dapat dikonfigurasi untuk mengontrol siklus kerja setiap kipas. Ini juga mencakup dua cara untuk mengubah kecepatan kipas:

A. dengan quadrature/rotary encoder

B. dengan aplikasi Windows bawaan C# yang berkomunikasi dengan GreenPAK melalui I2C.

Di bawah ini kami menjelaskan langkah-langkah yang diperlukan untuk memahami bagaimana chip GreenPAK telah diprogram untuk membuat kontrol PWM untuk penggemar PC. Namun, jika Anda hanya ingin mendapatkan hasil pemrograman, unduh perangkat lunak GreenPAK untuk melihat File Desain GreenPAK yang sudah selesai. Pasang GreenPAK Development Kit ke komputer Anda dan tekan program untuk membuat IC khusus untuk kontrol PWM untuk penggemar PC.

Langkah 1: Diagram Blok Sistem

Diagram Blok Sistem
Diagram Blok Sistem

Langkah 2: Desain Decoder Rotary SLG46108

Desain Dekoder Putar SLG46108
Desain Dekoder Putar SLG46108
Desain Dekoder Putar SLG46108
Desain Dekoder Putar SLG46108
Desain Dekoder Putar SLG46108
Desain Dekoder Putar SLG46108

Rotary encoder digunakan untuk menambah atau mengurangi siklus kerja kipas secara manual. Perangkat ini mengeluarkan pulsa pada output Saluran A dan Saluran B yang terpisah 90 °. Lihat AN-1101: Decoder Quadrature Tanpa Jam untuk informasi lebih lanjut tentang cara kerja rotary encoder.

Dekoder putar dengan jam dapat dibuat menggunakan Dialog GreenPAK SLG46108 untuk memproses sinyal Saluran A dan Saluran B dan mengeluarkannya sebagai pulsa berlawanan arah jarum jam (CCW) dan searah jarum jam (CW).

Ketika Saluran A memimpin Saluran B, desain mengeluarkan pulsa pendek pada CW. Ketika Saluran B memimpin Saluran A, ia mengeluarkan pulsa pendek pada CCW

Tiga DFF menyinkronkan input Saluran A dengan jam. Demikian pula, penundaan pipa dengan OUT0 diatur ke dua DFF dan OUT1 diatur ke tiga DFF menciptakan fungsionalitas yang sama untuk saluran B.

Untuk membuat output CW dan CCW gunakan beberapa LUT, untuk informasi lebih lanjut tentang desain dekoder putar standar ini, kunjungi situs web ini.

Rotary Decoder GreenPAK akan menerima pulsa input A dan B dan mengeluarkan pulsa CW dan CCW seperti yang ditunjukkan pada Gambar 4.

Sirkuit setelah gerbang XOR memastikan bahwa tidak akan pernah ada pulsa CW dan pulsa CCW pada saat yang sama, memungkinkan kesalahan apa pun dengan encoder putar. Penundaan tepi jatuh 8 ms pada sinyal CW dan CCW memaksa mereka untuk tetap tinggi selama 8 ms ditambah satu siklus clock, yang diperlukan untuk GreenPAK SLG46826 hilir.

Langkah 3: Desain Pengontrol Kipas SLG46826

Desain Pengontrol Kipas SLG46826
Desain Pengontrol Kipas SLG46826

Langkah 4: Generasi PWM Dengan Penghitung Offset

Generasi PWM Dengan Penghitung Offset
Generasi PWM Dengan Penghitung Offset
Generasi PWM Dengan Penghitung Offset
Generasi PWM Dengan Penghitung Offset

Sepasang penghitung offset dengan periode yang sama digunakan untuk membangkitkan sinyal PWM. Penghitung pertama menetapkan DFF, dan yang kedua mengatur ulang, menciptakan sinyal PWM siklus kerja yang konsisten seperti yang ditunjukkan pada Gambar 6 dan Gambar 7.

CNT6 mengatur DFF10 dan output terbalik dari CNT1 mengatur ulang DFF10. Pin 18 dan 19 digunakan untuk mengeluarkan sinyal PWM ke sirkuit eksternal

Langkah 5: Kontrol Siklus Tugas Dengan Injeksi Jam dan Lompatan Jam

Kontrol Siklus Tugas Dengan Injeksi Jam dan Lompatan Jam
Kontrol Siklus Tugas Dengan Injeksi Jam dan Lompatan Jam
Kontrol Siklus Tugas Dengan Injeksi Jam dan Lompatan Jam
Kontrol Siklus Tugas Dengan Injeksi Jam dan Lompatan Jam

Pengontrol kipas menerima sinyal CW dan CCW sebagai input dari dekoder putar dan menggunakannya untuk menambah atau mengurangi sinyal PWM yang mengontrol kecepatan kipas. Hal ini dicapai dengan beberapa komponen logika digital.

Siklus kerja perlu meningkat ketika pulsa CW diterima. Ini dilakukan dengan menyuntikkan pulsa clock ekstra ke blok CNT6, menyebabkannya menghasilkan satu siklus clock lebih awal dari yang seharusnya. Proses ini ditunjukkan pada Gambar 8.

CNT1 masih mendapatkan clock pada tingkat yang konstan, tetapi CNT6 memiliki beberapa tambahan clock yang disuntikkan. Setiap kali ada jam tambahan ke penghitung, itu menggeser outputnya satu periode jam ke kiri.

Sebaliknya, untuk mengurangi siklus kerja, lewati pulsa clock untuk CNT6 seperti yang ditunjukkan pada Gambar 9. CNT1 masih mendapatkan clock pada tingkat yang konstan, dan ada pulsa clock yang dilewati untuk CNT6, di mana penghitung tidak mendapatkan clock saat seharusnya ke. Dengan cara ini output CNT6 didorong ke kanan oleh satu periode clock pada satu waktu, memperpendek siklus tugas PWM output.

Fungsi clock injection dan clock skipping dilakukan dengan menggunakan beberapa elemen logika digital dalam GreenPAK. Sepasang blok multifungsi digunakan untuk membuat sepasang kombo detektor kait/tepi. 4-bit LUT0 digunakan untuk mux antara sinyal clock umum (CLK/8) dan sinyal clock injecting atau clock skipping. Fungsionalitas ini dijelaskan secara lebih rinci di Langkah 7.

Langkah 6: Masukan TOMBOL

Masukan TOMBOL
Masukan TOMBOL

Input BUTTON di-debounce selama 20 md, kemudian digunakan untuk mengaktifkan latch yang menentukan apakah chip khusus ini dipilih. Jika dipilih, maka LUT 4-bit akan melewatkan sinyal clock skipping atau injeksi. Jika chip tidak dipilih, maka LUT 4-bit hanya melewatkan sinyal CLK/8.

Langkah 7: Mencegah Rollover Siklus Tugas

Mencegah Rollover Siklus Tugas
Mencegah Rollover Siklus Tugas
Mencegah Rollover Siklus Tugas
Mencegah Rollover Siklus Tugas
Mencegah Rollover Siklus Tugas
Mencegah Rollover Siklus Tugas

RS latches 3-bit LUT5 dan 3-bit LUT3 digunakan untuk memastikan bahwa Anda tidak dapat menginjeksi atau melewatkan begitu banyak jam sehingga penghitung offset berguling. Ini untuk menghindari sistem mencapai siklus kerja 100% dan kemudian berguling ke siklus tugas 1% jika menerima jam injeksi lain.

Kait RS mencegah hal ini terjadi dengan mengunci input ke blok multifungsi saat sistem berjarak satu siklus clock dari rolling. Sepasang DFF menunda sinyal PWM_SET dan PWM_nRST dengan satu periode clock seperti yang ditunjukkan pada Gambar 11.

Sepasang LUT digunakan untuk membuat logika yang diperlukan. Jika siklus kerja sangat rendah sehingga sinyal PWM_SET yang tertunda terjadi pada saat yang sama dengan sinyal PWM_nRST, penurunan siklus tugas lebih lanjut akan menyebabkan rollover.

Demikian pula, jika mendekati siklus kerja maksimum, sehingga sinyal PWM_nRST yang tertunda terjadi pada saat yang sama dengan sinyal PWM_SET, perlu untuk menghindari peningkatan lebih lanjut pada siklus kerja. Dalam hal ini, tunda sinyal nRST dengan dua siklus clock untuk memastikan bahwa sistem tidak berguling dari 99% menjadi 1%.

Langkah 8: Kontrol Siklus Tugas Dengan I2C

Kontrol Siklus Tugas Dengan I2C
Kontrol Siklus Tugas Dengan I2C
Kontrol Siklus Tugas Dengan I2C
Kontrol Siklus Tugas Dengan I2C
Kontrol Siklus Tugas Dengan I2C
Kontrol Siklus Tugas Dengan I2C

Desain ini menggabungkan cara lain untuk mengontrol siklus kerja selain lompat jam/injeksi jam. Mikrokontroler eksternal dapat digunakan untuk menulis perintah I2C ke GreenPAK untuk mengatur siklus kerja.

Mengontrol siklus tugas melalui I2C memerlukan pengontrol untuk melakukan urutan perintah tertentu. Perintah-perintah ini ditunjukkan secara berurutan pada Tabel 1. Tanda "x" menunjukkan bit yang tidak boleh diubah, "[" menunjukkan bit START, dan "]" menunjukkan bit STOP

Blok PDLY menghasilkan pulsa tinggi aktif pendek di tepi jatuh sinyal CLK/8, yang disebut !CLK/8. Sinyal itu digunakan untuk clock DFF14 pada frekuensi tetap. Saat I2C_SET menjadi tinggi secara asinkron, tepi naik berikutnya dari !CLK/8 menyebabkan DFF14 menghasilkan TINGGI, yang memicu CNT5 OneShot. OneShot berjalan untuk jumlah siklus jam yang ditulis pengguna sebagaimana ditentukan dalam perintah I2C "Tulis ke CNT5" pada Tabel 1. Dalam hal ini, ini adalah 10 siklus jam. OneShot memungkinkan osilator 25 MHz untuk berjalan sesuai durasinya dan tidak lebih lama, sehingga LUT0 3-bit menerima jumlah siklus clock yang ditulis ke CNT5.

Gambar 15 menunjukkan sinyal-sinyal ini, di mana jam merah adalah jam yang dikirim ke 3-bit LUT0, yang meneruskannya ke CNT6 (penghitung PWM_SET), sehingga menciptakan offset untuk pembangkitan siklus kerja.

Langkah 9: Pembacaan Tachometer

Pembacaan Tachometer
Pembacaan Tachometer
Pembacaan Tachometer
Pembacaan Tachometer

Jika diinginkan, pengguna dapat membaca nilai tachometer melalui I2C untuk melacak seberapa cepat kipas berputar dengan membaca nilai CNT2. CNT2 bertambah setiap kali ACMP0H memiliki keunggulan, dan dapat diatur ulang secara asinkron dengan perintah I2C. Perhatikan bahwa ini adalah fitur opsional, dan ambang ACMP0H perlu diubah sesuai dengan spesifikasi kipas tertentu yang digunakan.

Langkah 10: Desain Sirkuit Eksternal

Desain Sirkuit Eksternal
Desain Sirkuit Eksternal

Sirkuit eksternal cukup sederhana. Ada tombol tekan yang terhubung ke Pin6 dari GreenPAK untuk beralih apakah perangkat khusus ini dipilih untuk kontrol putar, dan LED terhubung ke Pin12 dan Pin13 untuk menunjukkan kapan perangkat dipilih.

Karena kipas mati 12 V, diperlukan sepasang FET untuk mengontrol peralihannya. Pin18 dan Pin19 GreenPAK menggerakkan nFET. Ketika nFET dihidupkan, ia menarik gerbang pFET LOW, yang menghubungkan kipas ke +12 V. Ketika nFET dimatikan, gerbang PFET ditarik oleh resistor 1 kΩ, yang memutuskan kipas dari +12V.

Langkah 11: Desain PCB

Desain PCB
Desain PCB

Untuk membuat prototipe desain, beberapa PCB dirakit. PCB di sebelah kiri adalah "Pengendali Kipas", yang menampung rotary encoder, jack 12 V, SLG46108 GreenPAK, dan konektor untuk papan breakout FT232H USB ke I2C. Dua PCB di sebelah kanan adalah "Papan Kipas", yang berisi SLG46826 GreenPAK, tombol tekan, sakelar, LED, dan header kipas.

Setiap Papan Kipas memiliki header laki-laki terselubung di sisi kiri dan header perempuan di sisi kanan sehingga mereka dapat dirantai bersama-sama. Setiap Papan Kipas dapat diisi dengan sumber daya untuk mengontrol dua kipas secara mandiri.

Langkah 12: Aplikasi C#

Aplikasi C#
Aplikasi C#

Aplikasi C# ditulis untuk berinteraksi dengan Fan Boards melalui FT232H USB-I2C bridge. Aplikasi ini dapat digunakan untuk mengatur frekuensi setiap kipas dengan perintah I2C yang dihasilkan oleh aplikasi.

Aplikasi melakukan ping ke 16 alamat I2C sekali per detik dan mengisi GUI dengan alamat slave yang ada. Dalam contoh ini Fan 1 (slave address 0001) dan Fan 3 (slave address 0011) terhubung ke board. Penyesuaian siklus kerja setiap kipas secara individual dapat dilakukan dengan menggerakkan bilah penggeser atau dengan mengetikkan nilai dari 0-256 di kotak teks di bawah bilah penggeser.

Kesimpulan

Dengan menggunakan desain ini, dimungkinkan untuk mengontrol hingga 16 kipas secara independen (karena ada 16 kemungkinan alamat slave I2C) baik dengan rotary encoder atau dengan aplikasi C#. Telah didemonstrasikan bagaimana menghasilkan sinyal PWM dengan sepasang penghitung offset, dan bagaimana menambah dan mengurangi siklus kerja sinyal itu tanpa rollover.

Direkomendasikan: