Mündəricat:

PC həvəskarları üçün DIY PWM İdarəetmə: 12 addım
PC həvəskarları üçün DIY PWM İdarəetmə: 12 addım

Video: PC həvəskarları üçün DIY PWM İdarəetmə: 12 addım

Video: PC həvəskarları üçün DIY PWM İdarəetmə: 12 addım
Video: Using BTS7960 BTN8982TA PWM H Bridge motor controller module with Arduino library 2024, Iyul
Anonim
PC həvəskarları üçün DIY PWM İdarəetmə
PC həvəskarları üçün DIY PWM İdarəetmə

Bu Təlimat, tam xüsusiyyətli 12 V PC fan PWM nəzarətçi qurmağı təsvir edir. Dizayn 16 ədəd 3 pinli kompüter fanatını idarə edə bilir. Dizayn, hər bir fanın iş dövrünü idarə etmək üçün bir cüt Dialog GreenPAK ™ konfiqurasiya edilmiş qarışıq siqnallı IC-dən istifadə edir. Fanın sürətini dəyişdirməyin iki yolu da var:

a. bir kvadrat/fırlanan kodlayıcı ilə

b. GreenPAK ilə I2C vasitəsilə əlaqə quran C# -də qurulmuş Windows tətbiqi ilə.

Aşağıda, GreenPAK çipinin PC pərəstişkarları üçün PWM idarəetməsini yaratmaq üçün necə proqramlaşdırıldığını anlamaq üçün lazım olan addımları təsvir etdik. Ancaq proqramlaşdırmanın nəticəsini əldə etmək istəyirsinizsə, artıq tamamlanmış GreenPAK Dizayn Faylına baxmaq üçün GreenPAK proqramını yükləyin. GreenPAK İnkişaf Kitini kompüterinizə qoşun və PC pərəstişkarları üçün PWM nəzarəti üçün xüsusi IC yaratmaq üçün proqramı vurun.

Addım 1: Sistem Blok Şeması

Sistem Blok Şeması
Sistem Blok Şeması

Addım 2: SLG46108 Rotary Dekoder Dizaynı

SLG46108 Rotary Dekoder Dizaynı
SLG46108 Rotary Dekoder Dizaynı
SLG46108 Rotary Dekoder Dizaynı
SLG46108 Rotary Dekoder Dizaynı
SLG46108 Rotary Dekoder Dizaynı
SLG46108 Rotary Dekoder Dizaynı

Fanların iş dövrünü əl ilə artırmaq və ya azaltmaq üçün fırlanan bir kodlayıcı istifadə olunur. Bu cihaz bir -birindən 90 ° aralı olan Kanal A və Kanal B çıxışlarında pulslar çıxarır. Döner bir kodlayıcının necə işlədiyinə dair daha çox məlumat üçün AN-1101: Unclocked Quadrature Dekoderə baxın.

Kanal A və Kanal B siqnallarını emal etmək və onları saat əqrəbinin əksinə (CCW) və saat yönündə (CW) impulslar şəklində çıxarmaq üçün Dialog GreenPAK SLG46108 istifadə edərək saatlı fırlanan dekoder yaradıla bilər.

A kanalı B kanalına rəhbərlik edərkən, dizayn CW -də qısa bir nəbz çıxarır. Kanal B A kanalına rəhbərlik edərkən CCW -də qısa bir nəbz çıxarır

Üç DFF, Kanal A girişini saatla sinxronlaşdırır. Eynilə, OUT0 iki DFF və OUT1 üç DFF olaraq təyin edilmiş boru gecikməsi B kanalı üçün eyni funksiyanı yaradır.

CW və CCW çıxışları yaratmaq üçün bir neçə LUT istifadə edin, bu standart fırlanan dekoder dizaynı haqqında daha çox məlumat üçün bu veb saytına daxil olun.

GreenPAK Rotary Decoder, A və B giriş pulslarını alacaq və Şəkil 4 -də göstərildiyi kimi CW və CCW pulslarını çıxaracaq.

XOR qapılarından sonrakı dövrə, eyni zamanda heç bir CW nəbzi və CCW nəbzinin olmamasını təmin edir ki, bu da fırlanan enkoderdə hər hansı bir xətaya imkan verir. CW və CCW siqnallarında 8 ms düşən kənar gecikmə, onları aşağı axın SLG46826 GreenPAKs üçün lazım olan 8 ms üstəgəl bir saat dövrü boyunca yüksək qalmağa məcbur edir.

Addım 3: SLG46826 Fan Nəzarətçisi Dizaynı

SLG46826 Fan Nəzarətçisi Dizaynı
SLG46826 Fan Nəzarətçisi Dizaynı

Addım 4: Ofset Sayğacları ilə PWM Nəsli

Ofset sayğacları olan PWM nəsli
Ofset sayğacları olan PWM nəsli
Ofset sayğacları olan PWM nəsli
Ofset sayğacları olan PWM nəsli

PWM siqnalını yaratmaq üçün eyni müddətə malik bir cüt ofset sayğacı istifadə olunur. Birinci sayğac bir DFF qurur, ikincisi isə onu sıfırlayaraq Şəkil 6 və Şəkil 7 -də göstərildiyi kimi ardıcıl iş dövrü PWM siqnalı yaradır.

CNT6, DFF10 -u təyin edir və CNT1 -in tərs çıxışı DFF10 -u sıfırlayır. 18 və 19 pinləri, PWM siqnalını xarici dövrə ötürmək üçün istifadə olunur

Addım 5: Saat Enjeksiyonu və Saat Atlama ilə Vəzifə Dövrünə Nəzarət

Saat Enjeksiyonu və Saat Atlama ilə Vəzifə Dövrünə Nəzarət
Saat Enjeksiyonu və Saat Atlama ilə Vəzifə Dövrünə Nəzarət
Saat Enjeksiyonu və Saat Atlama ilə Vəzifə Dövrünə Nəzarət
Saat Enjeksiyonu və Saat Atlama ilə Vəzifə Dövrünə Nəzarət

Fan nəzarətçisi, CW və CCW siqnallarını fırlanan dekoderdən giriş olaraq alır və fan sürətini idarə edən PWM siqnalını artırmaq və ya azaltmaq üçün istifadə edir. Bu bir neçə rəqəmsal məntiq komponenti ilə əldə edilir.

CW nəbzi alındıqda vəzifə dövrü artmalıdır. Bu, CNT6 blokuna əlavə bir saat nəbzi vuraraq, başqa bir vaxtdan daha əvvəl bir saat dövrü çıxarmasına səbəb olur. Bu proses Şəkil 8 -də göstərilmişdir.

CNT1 hələ də sabit bir sürətlə işləyir, ancaq CNT6 -a bir neçə əlavə saat vurulur. Hər dəfə sayğacda əlavə bir saat olduqda, çıxışını bir saat müddətinə sola dəyişir.

Əksinə, vəzifə dövrünü azaltmaq üçün, Şəkil 9 -da göstərildiyi kimi CNT6 üçün bir saat nəbzini atlayın. CNT1 hələ də sabit bir sürətlə işləyir və CNT6 üçün sayğacın lazım olduğu zaman saatlanmadığı atılan saat pulsları var. -ə Bu yolla CNT6 -nın çıxışı birdəfəlik bir saat aralığında sağa çəkilərək PWM çıxış dövrünü qısaldır.

Saat enjeksiyonu və saat atlama funksiyası GreenPAK daxilində bəzi rəqəmsal məntiq elementlərinin istifadəsi ilə həyata keçirilir. Bir cüt çoxlu funksiyalı bloklar, bir cüt mandal/kənar detektor tarağı yaratmaq üçün istifadə olunur. 4-bit LUT0, ümumi saat siqnalı (CLK/8) ilə enjekte edilən saat və ya saat atlama siqnalları arasındakı müxbir üçün istifadə olunur. Bu funksiya 7 -ci addımda daha ətraflı təsvir edilmişdir.

Addım 6: DÜĞMƏ Giriş

DÜĞMƏ Giriş
DÜĞMƏ Giriş

DÜĞMƏ girişi 20 ms ərzində silinir, sonra bu xüsusi çipin seçilib -seçilmədiyini təyin edən mandalı dəyişmək üçün istifadə olunur. Seçilmişsə, 4 bit LUT saatı atlayan və ya enjeksiyon siqnallarını keçir. Çip seçilmirsə, 4 bit LUT sadəcə CLK/8 siqnalını keçir.

Addım 7: Duty Cycle Rollover -in qarşısının alınması

Duty Cycle Rollover -in qarşısının alınması
Duty Cycle Rollover -in qarşısının alınması
Duty Cycle Rollover -in qarşısının alınması
Duty Cycle Rollover -in qarşısının alınması
Duty Cycle Rollover -in qarşısının alınması
Duty Cycle Rollover -in qarşısının alınması

3 düymlük LUT5 və 3 bit LUT3 RS mandalları, ofset sayğaclarının yuvarlandığı qədər saatı vura və atlaya bilməyəcəyinizə əmin olmaq üçün istifadə olunur. Bu, sistemin 100 % iş dövrünə çatmasının və başqa bir enjekte edilmiş saat aldığı təqdirdə 1 % vəzifə dövrünə keçməsinin qarşısını almaq üçündür.

RS kilidləri, sistemin yuvarlanmaqdan bir saatlıq bir dövrədə olması halında, girişləri çoxfunksiyalı bloklara bağlayaraq bunun qarşısını alır. Bir cüt DFF, PWM_SET və PWM_nRST siqnallarını Şəkil 11 -də göstərildiyi kimi bir saat müddətinə gecikdirir.

Lazım olan məntiqi yaratmaq üçün bir cüt LUT istifadə olunur. Vəzifə dövrü o qədər aşağı olarsa, gecikmiş PWM_SET siqnalı PWM_nRST siqnalı ilə eyni vaxtda baş verərsə, vəzifə dövrünün daha da azalması rolloverə səbəb olacaq.

Eynilə, gecikmiş PWM_nRST siqnalı PWM_SET siqnalı ilə eyni vaxtda baş verərsə, maksimum iş dövrünə yaxınlaşdıqda, vəzifə dövrünün daha da artmasının qarşısını almaq lazımdır. Bu vəziyyətdə, sistemin 99 % -dən 1 % -ə yuvarlanmamasını təmin etmək üçün nRST siqnalını iki saat dövrü ilə gecikdirin.

Addım 8: I2C ilə Duty Cycle Control

I2C ilə vəzifə dövrü nəzarəti
I2C ilə vəzifə dövrü nəzarəti
I2C ilə vəzifə dövrü nəzarəti
I2C ilə vəzifə dövrü nəzarəti
I2C ilə vəzifə dövrü nəzarəti
I2C ilə vəzifə dövrü nəzarəti

Bu dizayn, saat atlama/saat enjeksiyonundan başqa vəzifə dövrünü idarə etmək üçün başqa bir yolu özündə birləşdirir. İş dövrünü təyin etmək üçün GreenPAK -a I2C əmrlərini yazmaq üçün xarici bir mikro nəzarətçi istifadə edilə bilər.

I2C üzərindəki vəzifə dövrünə nəzarət etmək, nəzarətçinin müəyyən bir əmr ardıcıllığını yerinə yetirməsini tələb edir. Bu əmrlər Cədvəl 1 -də göstərilmişdir. "X" dəyişməməli olan biti, "[" START bitini, "]" isə STOP bitini göstərir.

PDLY bloku CLK/8 siqnalının düşən kənarında! CLK/8 adlanan qısa aktiv yüksək nəbz yaradır. Bu siqnal DFF14 -ü sabit bir tezlikdə işlətmək üçün istifadə olunur. I2C_SET asenkron olaraq yüksəldikdə, CLK/8 -in növbəti yüksələn kənarı, DFF14 -ün CNT5 OneShot -u işə salan YÜKSƏK çıxmasına səbəb olur. OneShot, istifadəçinin Cədvəl 1 -də "CNT5 -ə yaz" I2C əmrində göstərildiyi kimi yazdığı saat dövrlərinin sayı üçün çalışır. Bu vəziyyətdə 10 saat dövrüdür. OneShot, 25 MHz osilatörün tam olaraq işləməsinə və artıq işləməməsinə imkan verir, beləliklə 3 bit LUT0 CNT5-ə yazılmış saat dövrlərinin sayını alır.

Şəkil 15 bu siqnalları göstərir, burada qırmızı saatlar 3-bit LUT0-a göndərilir və onları CNT6-ya (PWM_SET sayğacına) keçir və bununla da vəzifə dövrü yaratmaq üçün ofset yaradır.

Addım 9: Takometrin oxunması

Takometrin oxunması
Takometrin oxunması
Takometrin oxunması
Takometrin oxunması

İstəyirsinizsə, istifadəçi takometrenin dəyərini I2C üzərindən oxuya bilər və fanın CNT2 dəyərini oxuyaraq nə qədər tez döndüyünü izləyə bilər. ACMP0H -nin yüksələn kənarı olduqda hər dəfə CNT2 artırılır və I2C əmri ilə asenkron olaraq sıfırlana bilər. Qeyd edək ki, bu isteğe bağlı bir xüsusiyyətdir və ACMP0H həddinin istifadə olunan xüsusi fanın xüsusiyyətlərinə uyğun olaraq dəyişdirilməsi lazımdır.

Addım 10: Xarici Dövrə Dizaynı

Xarici Dövrə Dizaynı
Xarici Dövrə Dizaynı

Xarici dövrə olduqca sadədir. Bu cihazın fırlanan idarəetmə üçün seçilib -seçilmədiyini dəyişmək üçün GreenPAK -ın Pin6 -ya bağlı bir düymə və cihazın seçildiyini göstərmək üçün Pin12 və Pin13 -ə qoşulmuş bir LED var.

Fan 12 V -dan çıxdığından, keçidini idarə etmək üçün bir cüt FET lazımdır. GreenPAK -ın Pin18 və Pin19 nFET sürücüsüdür. NFET açıldıqda, fanı +12 V -a bağlayan pFET LOW qapısını çəkir. NFET söndürüldükdə, PFET -in qapısı fanı ayıran 1 kΩ rezistorla yuxarı çəkilir. +12 V -dən

Addım 11: PCB Dizaynı

PCB Dizaynı
PCB Dizaynı

Dizaynı prototip etmək üçün bir neçə PCB yığılmışdır. Sol tərəfdəki PCB, fırlanan kodlayıcı, 12 V jak, SLG46108 GreenPAK və FT232H USB -I2C qırılma lövhəsi üçün bağlayıcıları olan "Fan Nəzarətçisi" dir. Sağdakı iki PCB, SLG46826 GreenPAK, düymələr, açarlar, LEDlər və fan başlıqlarını ehtiva edən "Fan Panelləri" dir.

Hər bir fan panelinin sol tərəfində kəfənli bir kişi başlığı və sağ tərəfində bir qadın başlığı var ki, birlikdə papatya ilə zəncirlənə bilsinlər. Hər Fan Board iki fanatı müstəqil idarə etmək üçün resurslarla doldurula bilər.

Addım 12: C# Tətbiqi

C# tətbiqi
C# tətbiqi

FT232H USB-I2C körpüsü vasitəsi ilə Azarkeş lövhələri ilə əlaqə qurmaq üçün C# tətbiqi yazılmışdır. Bu proqram, tətbiq tərəfindən yaradılan I2C əmrləri ilə hər bir fanın tezliyini tənzimləmək üçün istifadə edilə bilər.

Tətbiq bütün 16 I2C ünvanlarını saniyədə bir dəfə ping edir və GUI -ni mövcud olan kölə ünvanlarla doldurur. Bu nümunədə Fan 1 (slave ünvanı 0001) və Fan 3 (slave ünvanı 0011) lövhəyə bağlıdır. Hər bir fanın vəzifə dövrünə fərdi olaraq düzəlişlər, sürüşmə çubuğunu hərəkət etdirməklə və ya kaydırıcı çubuğunun altındakı mətn qutusuna 0-256 arasında bir dəyər yazmaqla edilə bilər.

Nəticələr

Bu dizayndan istifadə edərək ya fırlanan kodlayıcı ilə, ya da C# tətbiqi ilə 16 fanata (16 mümkün I2C kölə ünvanı olduğu üçün) müstəqil olaraq nəzarət etmək mümkündür. Bir cüt ofset sayğacı ilə bir PWM siqnalının necə yaradılacağı və bu siqnalın rollover olmadan necə artacağı və azaldılacağı nümayiş etdirildi.

Tövsiyə: