İçindekiler:

PC Hayranları için DIY PWM Kontrolü: 12 Adım
PC Hayranları için DIY PWM Kontrolü: 12 Adım

Video: PC Hayranları için DIY PWM Kontrolü: 12 Adım

Video: PC Hayranları için DIY PWM Kontrolü: 12 Adım
Video: doubling the drop every time the PC survives #shorts 2024, Kasım
Anonim
PC Hayranları için DIY PWM Kontrolü
PC Hayranları için DIY PWM Kontrolü

Bu Eğitilebilir Tablo, tam özellikli bir 12 V PC fanı PWM denetleyicisinin oluşturulmasını açıklar. Tasarım, 16 adede kadar 3 pimli bilgisayar fanını kontrol edebilir. Tasarım, her bir fanın görev döngüsünü kontrol etmek için bir çift Dialog GreenPAK™ yapılandırılabilir karışık sinyalli IC kullanır. Ayrıca fanın hızını değiştirmenin iki yolunu da içerir:

a. dörtlü/döner kodlayıcı ile

B. GreenPAK ile I2C üzerinden iletişim kuran, C#'ta yerleşik bir Windows uygulamasıyla.

Aşağıda, GreenPAK yongasının PC hayranları için PWM kontrolünü oluşturmak üzere nasıl programlandığını anlamak için gereken adımları açıkladık. Ancak, sadece programlamanın sonucunu almak istiyorsanız, halihazırda tamamlanmış GreenPAK Tasarım Dosyasını görüntülemek için GreenPAK yazılımını indirin. GreenPAK Geliştirme Kitini bilgisayarınıza takın ve PC hayranları için PWM kontrolü için özel IC oluşturmak için programa basın.

Adım 1: Sistem Blok Şeması

Sistem Blok Şeması
Sistem Blok Şeması

Adım 2: SLG46108 Döner Şifre Çözücü Tasarımı

SLG46108 Döner Dekoder Tasarımı
SLG46108 Döner Dekoder Tasarımı
SLG46108 Döner Dekoder Tasarımı
SLG46108 Döner Dekoder Tasarımı
SLG46108 Döner Dekoder Tasarımı
SLG46108 Döner Dekoder Tasarımı

Fanların görev döngüsünü manuel olarak artırmak veya azaltmak için döner kodlayıcı kullanılır. Bu cihaz, 90 ° aralıklı olan Kanal A ve Kanal B çıkışlarında darbeler verir. Döner kodlayıcının nasıl çalıştığı hakkında daha fazla bilgi için AN-1101: Unclocked Quadrature Decoder bölümüne bakın.

Kanal A ve Kanal B sinyallerini işlemek ve bunları saat yönünün tersine (CCW) ve saat yönünde (CW) darbeler olarak çıkarmak için bir Dialog GreenPAK SLG46108 kullanılarak saat ayarlı bir döner kod çözücü oluşturulabilir.

Kanal A, Kanal B'ye öncülük ettiğinde, tasarım CW'de kısa bir darbe verir. Kanal B, Kanal A'ya öncülük ettiğinde, CCW'de kısa bir darbe verir

Üç DFF, Kanal A girişini saatle senkronize eder. Benzer şekilde, OUT0'ın iki DFF'ye ve OUT1'in üç DFF'ye ayarlı olduğu boru gecikmesi, kanal B için aynı işlevselliği yaratır.

CW ve CCW çıkışları oluşturmak için birkaç LUT kullanın, bu standart döner kod çözücü tasarımı hakkında daha fazla bilgi için bu web sitesini ziyaret edin.

GreenPAK Döner Şifre Çözücü, A ve B giriş darbelerini alacak ve Şekil 4'te gösterildiği gibi CW ve CCW darbelerini çıkaracaktır.

XOR kapılarından sonraki devre, asla aynı anda bir CW palsı ve CCW palsı olmamasını sağlayarak döner kodlayıcı ile herhangi bir hataya izin verir. CW ve CCW sinyallerindeki 8 ms'lik düşen kenar gecikmesi, onları 8 ms artı bir saat döngüsü boyunca yüksek kalmaya zorlar, bu da akış aşağı SLG46826 GreenPAK'ler için gereklidir.

Adım 3: SLG46826 Fan Kontrol Cihazı Tasarımı

SLG46826 Fan Kontrolör Tasarımı
SLG46826 Fan Kontrolör Tasarımı

Adım 4: Ofset Sayaçlı PWM Üretimi

Ofset Sayaçlı PWM Üretimi
Ofset Sayaçlı PWM Üretimi
Ofset Sayaçlı PWM Üretimi
Ofset Sayaçlı PWM Üretimi

PWM sinyalini üretmek için aynı periyoda sahip bir çift ofset sayacı kullanılır. İlk sayaç bir DFF ayarlar ve ikincisi onu sıfırlayarak Şekil 6 ve Şekil 7'de gösterildiği gibi tutarlı bir görev döngüsü PWM sinyali oluşturur.

CNT6, DFF10'u ayarlar ve CNT1'in ters çevrilmiş çıkışı DFF10'u sıfırlar. Pin 18 ve 19, PWM sinyalini harici devrelere göndermek için kullanılır

Adım 5: Saat Enjeksiyonu ve Saat Atlama ile Görev Döngüsü Kontrolü

Saat Enjeksiyonu ve Saat Atlama ile Görev Döngüsü Kontrolü
Saat Enjeksiyonu ve Saat Atlama ile Görev Döngüsü Kontrolü
Saat Enjeksiyonu ve Saat Atlama ile Görev Döngüsü Kontrolü
Saat Enjeksiyonu ve Saat Atlama ile Görev Döngüsü Kontrolü

Fan kontrolörü, CW ve CCW sinyallerini döner kod çözücüden girdi olarak alır ve bunları fan hızını kontrol eden PWM sinyalini artırmak veya azaltmak için kullanır. Bu, birkaç dijital mantık bileşeni ile elde edilir.

Bir CW darbesi alındığında görev döngüsünün artması gerekir. Bu, CNT6 bloğuna fazladan bir saat darbesi enjekte edilerek yapılır ve bu, aksi takdirde sahip olacağından bir saat döngüsü daha erken çıktı vermesine neden olur. Bu işlem Şekil 8'de gösterilmektedir.

CNT1 hala sabit bir hızda çalışıyor, ancak CNT6'nın enjekte edilmiş birkaç ekstra saati var. Sayaca her ekstra saat geldiğinde, çıkışını bir saat periyodu sola kaydırır.

Tersine, görev döngüsünü azaltmak için, Şekil 9'da gösterildiği gibi CNT6 için bir saat darbesini atlayın. CNT1 hala sabit bir hızda saatleniyor ve CNT6 için, sayacın varsayılan olarak saatlenmediği, atlanan saat darbeleri var. ile. Bu şekilde CNT6'nın çıkışı bir seferde bir saat periyodu kadar sağa itilir ve çıkış PWM görev çevrimi kısaltılır.

Saat yerleştirme ve saat atlama işlevi GreenPAK içindeki bazı dijital mantık öğelerinin kullanılmasıyla gerçekleştirilir. Bir çift mandal/kenar dedektörü kombinasyonu oluşturmak için bir çift çok işlevli blok kullanılır. 4 bitlik LUT0, genel saat sinyali (CLK/8) ile saat enjekte eden veya saat atlama sinyalleri arasında mux yapmak için kullanılır. Bu işlev, Adım 7'de daha ayrıntılı olarak açıklanmaktadır.

Adım 6: BUTON Girişi

BUTON Girişi
BUTON Girişi

DÜĞME girişi 20 ms için geri döndürülür, ardından bu belirli çipin seçilip seçilmediğini belirleyen bir mandalı değiştirmek için kullanılır. Seçilirse, 4 bitlik LUT, saat atlama veya enjeksiyon sinyallerini geçer. Çip seçilmemişse, 4-bit LUT basitçe CLK/8 sinyalini iletir.

Adım 7: Görev Döngüsü Devrini Önleme

Görev Döngüsü Devrini Önleme
Görev Döngüsü Devrini Önleme
Görev Döngüsü Devrini Önleme
Görev Döngüsü Devrini Önleme
Görev Döngüsü Devrini Önleme
Görev Döngüsü Devrini Önleme

RS mandalları 3-bit LUT5 ve 3-bit LUT3, ofset sayaçlarının devrileceği kadar çok saati enjekte edemeyeceğinizden veya atlayamayacağınızdan emin olmak için kullanılır. Bu, sistemin %100 görev döngüsüne ulaşmasını ve ardından başka bir enjekte edilmiş saat alırsa %1 görev döngüsüne geçmesini önlemek içindir.

RS mandalları, sistemin devrilmesine bir saat döngüsü uzaklıktayken girişleri çok işlevli bloklara kilitleyerek bunun olmasını engeller. Bir çift DFF, Şekil 11'de gösterildiği gibi PWM_SET ve PWM_nRST sinyallerini bir saat periyodu kadar geciktirir.

Gerekli mantığı oluşturmak için bir çift LUT kullanılır. Görev çevrimi, gecikmiş PWM_SET sinyalinin PWM_nRST sinyali ile aynı anda meydana gelmesi için çok düşükse, görev çevriminde daha fazla azalma bir rollover'a neden olacaktır.

Benzer şekilde, gecikmeli PWM_nRST sinyalinin PWM_SET sinyali ile aynı zamanda meydana gelmesi için maksimum görev döngüsüne yaklaşılıyorsa, görev döngüsünde daha fazla artıştan kaçınmak gerekir. Bu durumda, sistemin %99'dan %1'e geçmemesini sağlamak için nRST sinyalini iki saat döngüsü kadar geciktirin.

Adım 8: I2C ile Görev Döngüsü Kontrolü

I2C ile Görev Döngüsü Kontrolü
I2C ile Görev Döngüsü Kontrolü
I2C ile Görev Döngüsü Kontrolü
I2C ile Görev Döngüsü Kontrolü
I2C ile Görev Döngüsü Kontrolü
I2C ile Görev Döngüsü Kontrolü

Bu tasarım, saat atlama/saat enjeksiyonu dışında görev döngüsünü kontrol etmenin başka bir yolunu içerir. Görev döngüsünü ayarlamak için GreenPAK'a I2C komutları yazmak için harici bir mikro denetleyici kullanılabilir.

Görev döngüsünü I2C üzerinden kontrol etmek, kontrolörün belirli bir komut dizisi gerçekleştirmesini gerektirir. Bu komutlar Tablo 1'de sırayla gösterilmiştir. "x" değişmemesi gereken bir biti, "[" bir BAŞLANGIÇ bitini ve "]" bir STOP bitini belirtir.

PDLY bloğu, CLK/8 sinyalinin düşen kenarında !CLK/8 olarak adlandırılan kısa bir aktif yüksek darbe üretir. Bu sinyal, DFF14'ü sabit bir frekansta saatlemek için kullanılır. I2C_SET eşzamansız olarak yükseldiğinde, !CLK/8'in bir sonraki yükselen kenarı DFF14'ün HIGH çıkışına neden olur ve bu da CNT5 OneShot'ı tetikler. OneShot, Tablo 1'deki "CNT5'e Yaz" I2C komutunda belirtildiği gibi kullanıcının yazdığı saat döngüsü sayısı için çalışır. Bu durumda, 10 saat döngüsüdür. OneShot, 25 MHz osilatörün tam olarak süresi boyunca çalışmasına izin verir ve artık değil, böylece 3-bit LUT0, CNT5'e yazılan saat döngüsü sayısını alır.

Şekil 15, 3 bit LUT0'a gönderilen kırmızı saatlerin, onları CNT6'ya (PWM_SET sayacı) ileten ve böylece görev döngüsü üretimi için ofseti oluşturan bu sinyalleri göstermektedir.

Adım 9: Takometre Okuması

Takometre Okuma
Takometre Okuma
Takometre Okuma
Takometre Okuma

İstenirse, kullanıcı CNT2 değerini okuyarak fanın ne kadar hızlı döndüğünü takip etmek için I2C üzerinden takometre değerini okuyabilir. ACMP0H'nin her yükselen kenarı olduğunda CNT2 artırılır ve bir I2C komutuyla eşzamansız olarak sıfırlanabilir. Bunun isteğe bağlı bir özellik olduğunu ve ACMP0H eşiğinin, kullanılan belirli fanın özelliklerine göre ayarlanması gerekeceğini unutmayın.

Adım 10: Harici Devre Tasarımı

Dış Devre Tasarımı
Dış Devre Tasarımı

Dış devre oldukça basittir. Döner kontrol için bu belirli cihazın seçilip seçilmediğini değiştirmek için GreenPAK'in Pin6'sına bağlı bir buton ve cihazın ne zaman seçildiğini göstermek için Pin12 ve Pin13'e bağlı bir LED vardır.

Fan 12 V ile çalıştığından, geçişini kontrol etmek için bir çift FET gereklidir. GreenPAK'ın Pin18 ve Pin19'u bir nFET kullanıyor. nFET açıldığında, fanı +12 V'a bağlayan pFET LOW'un kapısını çeker. nFET kapatıldığında, PFET'in kapısı, fanın bağlantısını kesen 1 kΩ direnç tarafından yukarı çekilir. +12 V'den itibaren

Adım 11: PCB Tasarımı

PCB Tasarımı
PCB Tasarımı

Tasarımı prototiplemek için birkaç PCB monte edildi. Soldaki PCB, döner kodlayıcı, 12 V jak, SLG46108 GreenPAK ve FT232H USB - I2C devre kartı için konektörleri barındıran "Fan Kontrolörü"dür. Sağdaki iki PCB, SLG46826 GreenPAK'leri, butonları, anahtarları, LED'leri ve fan başlıklarını içeren "Fan Kartları"dır.

Her bir Fan Board'un sol tarafında örtülü bir erkek başlık ve sağ tarafta birbirine zincirleme bağlanabilmeleri için dişi bir başlık bulunur. Her bir Fan Panosu, iki fanı bağımsız olarak kontrol etmek için kaynaklarla doldurulabilir.

Adım 12: C# Uygulaması

C# Uygulaması
C# Uygulaması

FT232H USB-I2C köprüsü üzerinden Fan Kartları ile arayüz oluşturmak için bir C# uygulaması yazılmıştır. Bu uygulama, uygulama tarafından oluşturulan I2C komutları ile her bir fanın frekansını ayarlamak için kullanılabilir.

Uygulama, 16 I2C adresinin tümüne saniyede bir kez ping gönderir ve GUI'yi mevcut bağımlı adreslerle doldurur. Bu örnekte Fan 1 (slave adresi 0001) ve Fan 3 (slave adresi 0011) karta bağlanmıştır. Her bir fanın görev döngüsüne ilişkin ayarlamalar, kaydırma çubuğunu hareket ettirerek veya kaydırma çubuğunun altındaki metin kutusuna 0-256 arasında bir değer yazarak yapılabilir.

Sonuçlar

Bu tasarımı kullanarak, bir döner kodlayıcı veya bir C# uygulaması ile 16'ya kadar fanı bağımsız olarak kontrol etmek mümkündür (çünkü 16 olası I2C bağımlı adresi vardır). Bir çift ofset sayacı ile bir PWM sinyalinin nasıl oluşturulacağı ve bu sinyalin görev döngüsünün devrilmeden nasıl artırılıp azaltılacağı gösterilmiştir.

Önerilen: