Съдържание:

Направи си сам ШИМ контрол за PC фенове: 12 стъпки
Направи си сам ШИМ контрол за PC фенове: 12 стъпки

Видео: Направи си сам ШИМ контрол за PC фенове: 12 стъпки

Видео: Направи си сам ШИМ контрол за PC фенове: 12 стъпки
Видео: Мало кто знает об этой функции БЛОКА ПИТАНИЯ от ноутбука!!! 2024, Юни
Anonim
Направи си сам ШИМ контрол за PC фенове
Направи си сам ШИМ контрол за PC фенове

Тази инструкция описва изграждането на пълнофункционален ШИМ контролер за 12 V компютърни вентилатори. Дизайнът може да управлява до 16 3-пинови компютърни вентилатора. Дизайнът използва двойка интегрирани интегрални схеми със смесен сигнал Dialog GreenPAK ™ за контрол на работния цикъл на всеки вентилатор. Той също така включва два начина за промяна на скоростта на вентилатора:

а. с квадратурен/въртящ се енкодер

б. с вградено в C# приложение за Windows, което комуникира с GreenPAK чрез I2C.

По -долу описахме необходимите стъпки, за да разберете как чипът GreenPAK е програмиран за създаване на PWM контрола за феновете на компютрите. Ако обаче просто искате да получите резултат от програмирането, изтеглете софтуера GreenPAK, за да видите вече завършения файл за проектиране GreenPAK. Включете комплекта за разработка на GreenPAK към компютъра си и натиснете програма, за да създадете персонализирана интегрална схема за управление на ШИМ за феновете на компютъра.

Стъпка 1: Блокова схема на системата

Блокова схема на системата
Блокова схема на системата

Стъпка 2: Дизайн на ротационен декодер SLG46108

Дизайн на въртящ се декодер SLG46108
Дизайн на въртящ се декодер SLG46108
Дизайн на въртящ се декодер SLG46108
Дизайн на въртящ се декодер SLG46108
Дизайн на въртящ се декодер SLG46108
Дизайн на въртящ се декодер SLG46108

Ротационен енкодер се използва за ръчно увеличаване или намаляване на работния цикъл на вентилаторите. Това устройство извежда импулси на своите изходи за канал А и канал В, които са на 90 ° един от друг. Вижте AN-1101: Отключен квадратурен декодер за повече информация за това как работи въртящ се енкодер.

Ротационен декодер с тактова честота може да бъде създаден с помощта на Dialog GreenPAK SLG46108 за обработка на сигналите на канал А и канал В и извеждането им като импулси обратно на часовниковата стрелка (CCW) и по часовниковата стрелка (CW).

Когато канал А води канал В, дизайнът извежда кратък импулс на CW. Когато канал В води канал А, той извежда кратък импулс на CCW

Три DFF синхронизират входа на канал А с часовника. По същия начин, закъснението на тръбата с OUT0, зададено на две DFF, и OUT1, зададено на три DFF, създава същата функционалност за канал B.

За да създадете CW и CCW изходи, използвайте няколко LUT, за повече информация относно този стандартен дизайн на въртящ се декодер, посетете този уебсайт.

Ротационният декодер GreenPAK ще приема входни импулси A и B и ще извежда CW и CCW импулси, както е показано на Фигура 4.

Схемите след XOR портите гарантират, че никога няма да има CW импулс и CCW импулс едновременно, което позволява всяка грешка с въртящия се енкодер. 8 ms забавяне на падащия ръб на CW и CCW сигналите ги принуждават да останат високи за 8 ms плюс един тактов цикъл, което е необходимо за SLG46826 GreenPAKs надолу по веригата.

Стъпка 3: Дизайн на контролера на вентилатора SLG46826

SLG46826 Дизайн на контролера на вентилатора
SLG46826 Дизайн на контролера на вентилатора

Стъпка 4: ШИМ генериране с офсетови броячи

ШИМ генериране с офсетови броячи
ШИМ генериране с офсетови броячи
ШИМ генериране с офсетови броячи
ШИМ генериране с офсетови броячи

Чифт офсет броячи със същия период се използват за генериране на ШИМ сигнал. Първият брояч задава DFF, а вторият го нулира, създавайки последователен PWM сигнал на работния цикъл, както е показано на Фигура 6 и Фигура 7.

CNT6 задава DFF10 и обърнатият изход на CNT1 нулира DFF10. Изводи 18 и 19 се използват за извеждане на ШИМ сигнала към външна схема

Стъпка 5: Контрол на работния цикъл с инжектиране на часовника и прескачане на часовника

Управление на работния цикъл с инжектиране на часовника и прескачане на часовника
Управление на работния цикъл с инжектиране на часовника и прескачане на часовника
Управление на работния цикъл с инжектиране на часовника и прескачане на часовника
Управление на работния цикъл с инжектиране на часовника и прескачане на часовника

Контролерът на вентилатора приема CW и CCW сигнали като входове от ротационния декодер и ги използва или за увеличаване или намаляване на PWM сигнала, който контролира скоростта на вентилатора. Това се постига с няколко цифрови логически компонента.

Работният цикъл трябва да се увеличи, когато се получи CW импулс. Това става чрез инжектиране на допълнителен тактов импулс в блока CNT6, което го кара да изведе един тактов цикъл по -рано, отколкото би имало в противен случай. Този процес е показан на фигура 8.

CNT1 все още се синхронизира с постоянна скорост, но CNT6 има инжектирани няколко допълнителни часовника. Всеки път, когато има допълнителен часовник към брояча, той измества изхода си с един тактов период наляво.

Обратно, за да намалите работния цикъл, пропуснете тактовия импулс за CNT6, както е показано на фигура 9. CNT1 все още се синхронизира с постоянна скорост и има пропуснати тактови импулси за CNT6, където броячът не се задейства, когато трябваше да се. По този начин изходът на CNT6 се изтласква надясно с един тактов период, като се скъсява работният цикъл на ШИМ на изхода.

Функцията за инжектиране на часовник и пропускане на часовника се извършва с помощта на някои цифрови логически елементи в GreenPAK. Чифт мултифункционални блокове се използват за създаване на двойка комбинации от детектор за затваряне/ръб. 4-битовият LUT0 се използва за свързване между общия тактов сигнал (CLK/8) и тактовите инжектиращи или сигнали за прескачане на часовника. Тази функционалност е описана по -подробно в Стъпка 7.

Стъпка 6: Въвеждане на бутон

Бутон Вход
Бутон Вход

Входът BUTTON се освобождава за 20 ms, след което се използва за превключване на ключалка, която определя дали този конкретен чип е избран. Ако е избрано, тогава 4-битовият LUT предава сигналите за прескачане или инжектиране на часовника. Ако чипът не е избран, тогава 4-битовият LUT просто предава сигнала CLK/8.

Стъпка 7: Предотвратяване на преобръщане на работния цикъл

Предотвратяване на преобръщане на работния цикъл
Предотвратяване на преобръщане на работния цикъл
Предотвратяване на преобръщане на работния цикъл
Предотвратяване на преобръщане на работния цикъл
Предотвратяване на преобръщане на работния цикъл
Предотвратяване на преобръщане на работния цикъл

RS ключалките 3-битови LUT5 и 3-битови LUT3 се използват, за да се уверите, че не можете да инжектирате или прескачате толкова много часовници, че офсетните броячи да се преобърнат. Това се прави, за да се избегне достигането на 100 % работен цикъл на системата и след това преминаване към 1 % работен цикъл, ако получи друг инжектиран часовник.

Резетата RS предотвратяват това да се случи, като фиксират входовете към многофункционалните блокове, когато системата е на един тактов цикъл от преобръщане. Двойка DFF забавя сигналите PWM_SET и PWM_nRST с един тактов период, както е показано на Фигура 11.

Чифт LUT се използват за създаване на необходимата логика. Ако работният цикъл е толкова нисък, че забавеният сигнал PWM_SET се появява едновременно с сигнала PWM_nRST, по -нататъшното намаляване на работния цикъл ще доведе до преобръщане.

По подобен начин, ако се приближава максимален работен цикъл, така че забавеният сигнал PWM_nRST се появява едновременно с сигнала PWM_SET, е необходимо да се избягва всяко по -нататъшно увеличаване на работния цикъл. В този случай забавете nRST сигнала с два тактови цикъла, за да сте сигурни, че системата няма да се преобърне от 99 % на 1 %.

Стъпка 8: Контрол на работния цикъл с I2C

Управление на работния цикъл с I2C
Управление на работния цикъл с I2C
Управление на работния цикъл с I2C
Управление на работния цикъл с I2C
Управление на работния цикъл с I2C
Управление на работния цикъл с I2C

Този дизайн включва друг начин за управление на работния цикъл, различен от пропускане на часовника/инжектиране на часовника. Външен микроконтролер може да се използва за писане на I2C команди към GreenPAK за задаване на работния цикъл.

Контролирането на работния цикъл през I2C изисква контролерът да изпълнява определена командна последователност. Тези команди са показани по ред в Таблица 1. "x" показва бит, който не трябва да се променя, "[" показва бит START, а "]" показва бит STOP

Блокът PDLY генерира къс активен висок импулс върху падащия ръб на сигнала CLK/8, който се нарича! CLK/8. Този сигнал се използва за синхронизиране на DFF14 с постоянна честота. Когато I2C_SET върви високо асинхронно, следващият нарастващ фронт на! CLK/8 кара DFF14 да извежда HIGH, което задейства CNT5 OneShot. OneShot работи за броя на тактовите цикли, които потребителят е написал, както е посочено в командата "Write to CNT5" I2C в Таблица 1. В този случай това са 10 тактови цикъла. OneShot позволява на 25 MHz осцилатора да работи точно за неговата продължителност и не повече, така че 3-битовият LUT0 получава броя на тактовите цикли, записани в CNT5.

Фигура 15 показва тези сигнали, където червените часовници са тези, които се изпращат към 3-битов LUT0, който ги предава в CNT6 (броячът PWM_SET), като по този начин създава отместване за генерирането на работен цикъл.

Стъпка 9: Отчитане на оборотомера

Отчитане на оборотомера
Отчитане на оборотомера
Отчитане на оборотомера
Отчитане на оборотомера

Ако желаете, потребителят може да прочете стойността на оборотомера през I2C, за да проследи колко бързо се върти вентилатора, като прочете стойността на CNT2. CNT2 се увеличава всеки път, когато ACMP0H има нарастващ ръб и може да бъде асинхронно нулиран с команда I2C. Имайте предвид, че това е незадължителна функция и прагът на ACMP0H ще трябва да бъде променен според спецификациите на конкретния вентилатор, който се използва.

Стъпка 10: Дизайн на външна схема

Дизайн на външни вериги
Дизайн на външни вериги

Външната верига е доста проста. Има бутон, свързан към Pin6 на GreenPAK, за да превключите дали това конкретно устройство е избрано за ротационно управление, и светодиод, свързан към Pin12 и Pin13, за да покаже кога е избрано устройството.

Тъй като вентилаторът работи от 12 V, са необходими двойка FETs, за да се контролира превключването му. Pin18 и Pin19 на GreenPAK управляват nFET. Когато nFET е включен, той дърпа портата на pFET LOW, който свързва вентилатора към +12 V. Когато nFET е изключен, портата на PFET се изтегля от 1 kΩ резистор, който изключва вентилатора от +12 V.

Стъпка 11: Дизайн на печатни платки

Дизайн на печатни платки
Дизайн на печатни платки

За прототип на дизайна бяха сглобени няколко печатни платки. Печатната платка вляво е "Контролер на вентилатора", който съдържа ротационен енкодер, 12 V жак, SLG46108 GreenPAK и конектори за FT232H USB към I2C пробивна платка. Двете печатни платки вдясно са "вентилаторни платки", които съдържат SLG46826 GreenPAK, бутони, превключватели, светодиоди и заглавки на вентилатори.

Всяка дъска за вентилатори има обвита мъжка заглавка от лявата страна и женска заглавка от дясната страна, така че да могат да бъдат свързани с маргаритки. Всеки фен борд може да бъде попълнен с ресурси за независимо управление на два вентилатора.

Стъпка 12: Приложение C#

Приложение C#
Приложение C#

Написано е C# приложение за взаимодействие с вентилаторните платки през FT232H USB-I2C моста. Това приложение може да се използва за регулиране на честотата на всеки вентилатор с I2C команди, генерирани от приложението.

Приложението пингва всички 16 I2C адреса веднъж в секунда и попълва GUI с наличните подчинени адреси. В този пример вентилатор 1 (подчинен адрес 0001) и вентилатор 3 (подчинен адрес 0011) са свързани към платката. Регулирането на работния цикъл на всеки вентилатор поотделно може да се извърши чрез преместване на плъзгача или чрез въвеждане на стойност от 0-256 в текстовото поле под плъзгача.

Изводи

С помощта на този дизайн е възможно независимо управление на до 16 вентилатора (тъй като има 16 възможни I2C подчинени адреса) или с въртящ се енкодер, или с приложение на C#. Доказано е как да се генерира ШИМ сигнал с двойка офсет броячи и как да се увеличи и намали работния цикъл на този сигнал без преобръщане.

Препоръчано: