Содержание статьи
В большинстве современных материнских плат присутствует крайне удобная функция управления вентиляторами охлаждения, позволяющая динамически менять обороты кулеров в зависимости от температуры процессора. Это дает возможность не гонять пыль зазря, когда машина простаивает, а заодно существенно снизить шум. Настройка этой системы обычно выполняется в UEFI или с использованием утилит от производителя материнской платы. А что делать, если подобные варианты недоступны? Придется взяться за паяльник и добавить необходимую функциональность самостоятельно.
Известные решения
На алике продается множество готовых решений, однако мне ни одно не понравилось. Так, приобретенная мной китайская плата на поверку оказалась линейным регулятором напряжения!
А я все смотрел на нее и думал, зачем там такие мощные полевики стоят. Ответ прост: они работают в линейном режиме. Нет, железка, конечно, обороты регулирует, однако при понижении напряжения в какой‑то момент кулеры останавливаются, и это происходит далеко не в крайнем положении движка резистора. При этом на транзисторе регулятора мощность продолжает рассеиваться в виде тепла. Мне такое и даром не нужно.
Справедливости ради надо сказать, что железка эта дешевая и одинаково работает со всеми типами кулеров на 12 В. Существуют, конечно, штуки посерьезнее, с дисплеем и множеством настроек, но на мой вкус они дико избыточны, с одной стороны, и дороги — с другой. Смотрятся они прикольно, но бестолково.
Кроме того, существует немало схем самодельных контроллеров, но перед тем, как рассмотреть некоторые из них, разберемся сперва с самими вентиляторами.
Анатомия и физиология вентилятора
Низковольтные вентиляторы используют бесщеточные двигатели постоянного тока и различаются между собой в основном типом интерфейса. Мелочи вроде разного напряжения питания вроде 5, 12, 24 В и далее со всеми остановками оставим за кадром, как очевидные.
Вентиляторы бывают двухпроводные, трехпроводные и четырехпроводные. С первыми все просто и понятно: два провода — это питание, подал на них напряжение — крутит, отключил — не крутит. В трехпроводном интерфейсе к линиям питания добавляется выход тахометра, выдающего по два импульса на оборот кулера. Этот вывод представляет собой выход с открытым коллектором, иными словами, ему нужна подтяжка к плюсу питания для работы.
В четырехпроводном варианте предусмотрен дополнительный вывод для контроля оборотов, которые задаются ШИМ‑сигналом. У выхода есть внутренняя подтяжка к плюсу, поэтому, если его оставить висеть в воздухе, обороты будут максимальны. А еще для подачи ШИМ‑сигнала можно использовать выход с открытым коллектором.
Легко видеть, что такая распиновка обеспечивает полную обратную совместимость, поэтому нет нужды ломать голову, какой кулер подключать к материнской плате. Работать будет любой, подходящий по напряжению. Теперь, вооружившись статьей Why and How to Control Fan Speed for Cooling Electronic Equipment, разберемся, как устроены вентиляторы. Итак, сердцем бесщеточного мотора вентилятора является датчик Холла, который определяет положение магнитного ротора. Когда к датчику приближается северный полюс магнита, на его выходе образуется логическая единица, с южным полюсом — наоборот.
Собственно, сигнал с датчика Холла служит для управления ключами, питающими катушки, и типичная упрощенная схема бесщеточного вентилятора выглядит так.
Здесь видно, откуда берется сигнал тахометра и что он собой представляет, а также как к этому делу приладить ШИМ‑контроль оборотов. Обрати внимание, что управляемый ШИМ‑сигналом ключ коммутирует только силовую часть мотора, не нарушая работу датчика Холла и позволяя корректно определить число оборотов независимо от уровня сигнала на выводе PWM. Двухпроводной вентилятор отличается лишь тем, что наружу не выведен выход TACHO. А на практике это может выглядеть еще проще — упакованным в одну микросхему, где будут сразу и датчик, и ключи, и прочая обвязка.
info
Вот здесь и здесь один веселый чех ковыряет вентилятор от компьютерного блока питания. У него даже есть видео, неплохо поясняющее принцип работы кулера.
Так как же им рулить?
Существуют четыре классических подхода к управлению оборотами вентиляторов, их мы и рассмотрим. Сразу скажу, что четвертый — наиболее предпочтительный.
Вариант первый. Дискретный
Тут все просто. Вентилятор включается, только когда это необходимо, а в остальное время он выключен. После включения он работает на максимальных оборотах. Вариант хороший, однако он далеко не всегда применим, так как во многих случаях активное охлаждение необходимо и на холостом ходу, поэтому останавливаться тут смысла я не вижу.
Вариант второй. Линейный регулятор
На вентилятор подается питание с линейного регулятора. Иными словами, когда нужно снизить обороты, на кулер подают меньше штатных 12 В, и скорость вращения снижается. Так как входное напряжение у нас уже стабильное и отфильтрованное, то ставить специализированную микросхему типа LM317 необязательно, можно обойтись и простым эмиттерным или истоковым повторителем либо использовать источник тока.
Вариант простой и универсальный, поскольку подходит для любого типа вентиляторов. Широко используется китайцами. Подобные устройства стоят около 300 рублей, так что дешевле их купить, чем собирать самому. Упомянутый выше китайский контроллер работает именно так.
Но у этого решения есть несколько серьезных минусов. Во‑первых, бесщеточным вентиляторам нужно порядка 5 В для питания датчика Холла, иначе крутиться он не будет, и такой режим работы для двигателя явно нештатный. Для «пятивольтовых» кулеров это еще большая проблема, так как у них диапазон напряжений, при которых сохраняется работоспособность, значительно уже.
Во‑вторых, напряжение, при котором двигатель стартует, всегда чуть выше напряжения, при котором он останавливается. То есть если выставить низкие обороты, то вентилятор может не запуститься при включении. И третья неприятность — низкий КПД, поскольку вся мощность, которая падает на регуляторе, будет уходить в тепло.
Вариант третий. Медленный ШИМ по питанию
Этот способ лишен большинства недостатков предыдущего и достаточно часто используется. Суть его состоит в том, что двигатель питается ШИМ‑сигналом.
Главное — выбрать невысокую частоту ШИМ‑сигнала. Например, в представленной схеме частота должна быть около 50 Гц. Схема подойдет для любого из рассмотренных нами вентиляторов, единственная проблема возникнет с сигналом тахометра: он будет некорректным. Впрочем, выбор частоты ШИМ‑сигнала ниже частоты тахометра отчасти решает эту проблему.
С КПД у данной схемы тоже все в порядке. Если надо регулировать обороты двух- или трехпроводного кулера, то это лучшее решение. Из минусов только проблемы с измерением частоты оборотов. Любопытно, что если установить параллельно двигателю конденсатор на несколько десятков микрофарад, то схема начнет работать как описанный выше линейный регулятор.
Вариант четвертый, штатный
Как известно, в промышленности сидят далеко не глупые инженеры. Само собой, они придумали способ регулировки оборотов. Так появились четырехпиновые кулеры. Они позволяют не только штатно менять обороты, но и отслеживать их изменение, благодаря чему можно, например, вовремя выявить неисправность вентилятора. Как это работает? Так же, как и в предыдущем способе, только ШИМ‑сигнал коммутирует непосредственно обмотки двигателя, а датчик Холла при этом постоянно получает питание.
Соответственно, обороты измеряются корректно в любом случае. На интерфейс четырехпиновых кулеров есть несколько спецификаций — постарше от Intel и посвежее от Noctua. Выжимка главной сути этих документов звучит так:
- вывод TACHO с открытым коллектором для работы нуждается в подтяжке к питанию и выдает по два импульса на оборот вала;
- вход PWM имеет внутреннюю подтяжку к +5 В и может быть подключен как к CMOS-выводу (например, GPIO), так и к выходу с открытым коллектором. Спецификация от Noctua строже и не рекомендует использовать открытый коллектор, ссылаясь на то, что заваленные передние фронты импульсов могут сделать работу вентилятора непредсказуемой. В любом случае сигнал на входе PWM не должен превышать +5 В, иначе кулер выйдет из строя;
- частота ШИМ‑сигнала должна лежать в интервале от 21 до 27 кГц, рекомендованная — 25 кГц;
- степень заполнения ШИМ‑сигнала от 20 до 100%, ниже 20% поведение неопределенное. В большинстве случаев обороты остаются минимальными и не регулируются в сторону уменьшения.
На практике я погонял китайский серверный кулер с ГСС в разных режимах и могу сказать, что PWM одинаково хорошо работает и с открытым коллектором, и с полумостовым выходом. Частота ШИМ‑сигнала роли не играет, вентилятор работает и с 1 кГц, и с 40 кГц, разницы на глаз не видно. Правда, пишут, что если взять частоту ШИМ в звуковом диапазоне, то кулер может начать пищать, поэтому указанный в спецификации диапазон выглядит разумно. На рисунке представлена практическая схема ШИМ‑регулятора на NE555.
warning
Обрати внимание, что в данном случае NE555 питается от +5 В. Если подать на вход PWM +12 В, кулер сгорит, я проверил!
Собственно, если перед тобой не стоит задача именно управлять оборотами, а хочется их просто снизить, чтобы система охлаждения работала потише, можно использовать обычный мультивибратор на логике или «рассыпухе». Коэффициент заполнения будет 50%, соответственно, и обороты 50%, а вот шум упадет очень существенно. Впрочем, даже к мультивибратору можно прикрутить регулировку заполнения.
От теории к практике
Что‑то подобное я поначалу и планировал собрать, однако, поразмыслив, понял, что неудобно каждый раз крутить ручку, ведь компьютер может располагаться далеко. Нужно реализовать программное управление, а ручка — это дополнительная опция. Осталось решить, как общаться с компьютером. Прямо скажем, мне очень хотелось использовать UART, тем паче что на материнской плате, под которую это ваялось, есть COM-порт, но к UART нужен преобразователь уровней, а значит, пришлось бы добавлять лишний корпус. Поэтому такой вариант я отбросил сразу.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»