Fun Electronic

Электронные поделки, программирование микроконтроллеров, и прочая белиберда|Electronic Basteleien, Mikrokontroller Programmierung und anderes Quatsch

RSS
people

Переделка контроллера вентиляторов от Thermaltake|Umbau einen Ventilator-Kontroller von Thermaltake

[lang_de]Die Übersetzung kommt demnächst[/lang_de]

Приветствую своих дорогих читателей.

В этот раз речь пойдет о переделке контроллера вентиляторов от Thermaltake HARDCANO-12.

Случилось так, что этот контроллер работал -работал, да приказал нам долго жить, а сам отправился в мир иной.

Вот так выглядит коробочка от него, на которой хорошо видать дисплей.

Коробка из под Thermaltake HARDCANO 12

Разборки с устройством показали, что процессор не реагирует на кнопки управления. Выкидывать было жалко такую игрушку, тем более что внутренностей там всего ничего:

Внутренности контроллера

Всего одна платка поперек корпуса шириной около 5 см. Один контроллер от фирмы Holtek HT46R64, 4 мосфета, инвертор для EL-пленки, пищалка, микросхема логического инвертора, ну и коннектор питания. Вот собственно и все. Зато корпус красивый, с хорошей «мордой». А у меня была идея, как раз, сделать себе собственный контроллер вентиляторов, что бы компьютер не сильно шумел. Вот и подвернулся случай. Недого думая, нарисовал я схемку с использованием почти всех деталей со старой платы, протравил платку и спаял вот такое чудо:

Верхняя сторона:

Новый котроллер вентиляторов, верхняя сторона

Нижняя сторона:

Новый котроллер вентиляторов, нижняя сторона

И с подключенным дисплеем:

Новый котроллер вентиляторов с подключенным дисплеем

Контроллер взял свой любимый — AVR ATMega 128. Почему любимый, потому что их у меня просто много есть, но об этом как нибудь в другой раз.

Основная трудность в изготовлении именно этого проекта была в управлении дисплеем. Сам дисплей не имел своего контроллера на борту. Просто выводы сегментов шли напрямую к старому микроконтроллеру. Порыскав по интернету нашел его описание в pdf формате,  из которого вычитал, что он на своем борту имеет управление LCD дисплеями. А так же то, что тот чип на плате изготовлен маской. Т.е. попросту — не перепрограммируемый. Одноразовый, так сказать.

Тогда передо мной  встала задача узнать, как же управляются дисплеи, у которых нету своего контроллера. В принципе, ничего сложного не оказалось. Нужно просто менять довольно часто минус и плюс на выводах Commons и Segments, которые в данный момент включить надо. Вот и все, собственно. Но большинство из наших читателей в курсе, что у нас-то только 5 вольт имеется в наличии, если внимательно посмотреть на плату. Есть еще и 12 вольт, но это будет уже очень много. Порыскав в интернете, наткнулся на интересное решение этой проблемы.  Так как для дисплея достаточно разницы между Commons и Segments в 2.5 — 3 вольта, можно применить следующую схему:

Управление входом Сommon

Проводники CommDrv0 и CommDrv1 подключаются к ножкам микроконтроллера. Средняя точка между сопротивлениями идет на вход Common дисплея. В итоге у нас получился этакий делитель напряжения. А входы дисплея Segments подключаются напрямую к ножкам микроконтроллера. Теперь, когда нам надо на Common входе получить «+» а на Segment входе — «-», мы ставим выход микроконтроллера CommDrv1 в логический «0», а CommDrv0 — в логическую «1», и Segment ставим в «0».  Для смены полюсов меняем все местами: Segment — «1», CommDrv1 — «1», CommDrv0 — «0». Вот и все. И между Segments и Commons у нас будут наши искомые 2.5 вольта, поскольку у нас делитель с равными плечами.

Датчики температуры я взял тоже от оригинального изделия. Выглядят они вот так:

Датчик температуры

Прозвонив их Ом-метром выяснил, что это сопротивление на макисмум 10кОм, меняющееся в сависимости от температуры окружающей среды. Чем меньше температура, тем больше сопротивление, в нашем случае — 10 кОм. И чем больше температура — тем сопротивление меньше. Встает вопрос — как подключать к контроллеру. А все так же, по схеме делителя:

ADC вход

Как видно из схемы — на 5 вольт мы поставили обычное сопротивление в 10 кОм, а на землю у нас ведет наш датчик температуры. Теперь осталось в микроконтроллере преобразовать напряжение в средней точке в цифры, и можно принимать решение о том, надо ли включить вентилятор или выключить.

Включение вентилятора в схеме довольно простое:

Motor Driver

Сигнал с микроконтроллера приходит на буфер U2B  и включает мосфет Q2 (APM9410) . Обратите внимание на Pull-Up резистор R6. Он нужен для того, чтобы, когда процессор находится в ресете или же когда он еще не запрограммирован, вентилятор работал! Мы же не хотим, что бы наша система перегрелась, пока мы перепрограммируем контроллер? Так же стоит посмотреть на 3-й контакт штекера JP6, к которому подключается вентилятор. Это контакт скорости вращения вентилятора. На вентиляторе это выход с открытого коллектора, поэтому надо испольховать подтягивающее сопростивление. На схеме его не видать, так как используется внутреннее сопротивление в микроконтроллере.

Ну и осталось дело за малым — написать программу!

В тексте программы вы найдете процедуру таймера, во время прерывания которого происходит определение частоты вращения вентилятора. При подсчете оборотов вращения надо обратить внимание на один интересный момент. 3-й контакт вентилятора работает только тогда, когда на вентилятор подается напряжение! А так как для изменения скорости мы используем ШИМ — регулятор, то напряжение на вентиляторе присутствует не всегда! И этот момент надо отслеживать в программе!

А вот так выглядит девайс в работе:

Fun Controler в работе

Если сравнивать с функциональностью оригинального контроллера — то у моего теперь нету возможности переключения между градусами по Цельсию и Фаренгейту.

Зато  появилась возможность калибровки датчиков температуры. Для этого надо запастись небольшим количеством льда и кипятка, и замерить напряжение на датчиках, когда они опущены в таящий лед, и когда они опущены в кипящую воду. Так мы получим напряжение при 0 градусов и при 100 градусах Цельсия. Приблизительно, конечно, но нам и не нужна особая точность.

Так же появилась возможность калибровки вентиляторов. Тут я подразумеваю процесс определения минимального напряжения для каждого вентилятора, когда он начинает крутиться, и максимально возможное количество оборотов.

А так же появилась возможность, чего не было у оригинального устройства, добавления новых свойств и фичей! И это, на мой взгляд, самое интересное свойство всех устройств и поделок, которые сделаны собственноручно!

Ну и на последок список всех файлов для данного проекта:

13 комментариев to “Переделка контроллера вентиляторов от Thermaltake|Umbau einen Ventilator-Kontroller von Thermaltake”

  1. MasterAlexei Says:

    Еше бы создателям Термалтейка сказать об этом 😉 Схема подключения была один в один слизана с их платы.

    Поглядел сейчас даташитку на APM9410. В таблице стоит Gate Threshold Voltage Vgs — Min 1, Typ 1.5, max 2 V.

    И наш мосфет стоит снизу нагрузки, т.е. между Source и Gate надо максимум 2 вольта иметь, чтобы он полностью открылся, что мы и имеем.

    Вот если бы мы его поставили сверху нагрузки по схеме, тогда да, надо было бы подавать 12+Vgs. Или же, вы скорее всего подумали по P-мосфет. Там так же надо было бы подавать напряжение побольше.

  2. _dx Says:

    Да, Вы правы, Vgs не большой и в принципе наверное разница для кулера не велика(будет там честных 12V или около 10V) однако всё же ваши дальнейшие рассуждения не верны. Ещё хочу сказать, что в таком включении транзистор не работает в ключевом режиме и при более-менее серьёзных токах обязательно будет дико греться.

    Дело в том, что для того чтобы перевести его в режим насыщения — на затворе должно быть ~15V.

    >И наш мосфет стоит снизу нагрузки

    Как же снизу то, та? В схеме чётко видно, что он «сверху».

    Он именно напряжение питания коммутирует у Вас.

    >Или же, вы скорее всего подумали по P-мосфет. Там так же надо >было бы подавать напряжение побольше.

    Вот на P-мосфет как раз таки не нужно подавать ничего выше 12V.

    Только НИЖЕ. при 12 он будет закрыт, а всё что ниже 12 — будет его открывать. А вообще то отталкиваться нужно от потенциала Source и эти 12 будут для транзистора 0V, а понижение напряжения будет для него -1, -2, -3, -5 и тут то большинство из них уже и откроется ))) А относительно общего провода устройства там будет 12 — 5 = 7V

    Вы, простите, как-то не очень хорошо видимо поняли работу полевого транзистора.

    Чтобы долго не разглагольствовать, я лучше попрошу Вас провести небольшой эксперимент — выставьте скважность вашего ШИМ на максимум(100%) и измерьте напряжение на выходе.

    Если оно будет равно VCC12 (по схеме) — с меня пиво 😉

    И второй эксперимент: уберите R7 и вместо него сделайте подтяжку ~1K на +5V, имитируя тем самым высокий уровень контроллера(~5V) — это позволит вам убедиться в том, что при такой схеме подключить контроллеры напрямую тоже нельзя.

    Пожалуйста также ознакомьтесь с веткой форума

    electronix.ru/forum/index...amp;#entry193793

    Схему посмотрите, ссылка как раз ведет на сообщение со схемой.

    А потом комментарии почитайте )

    >Еше бы создателям Термалтейка сказать об этом

    Создатели Термалтейка просто экономили и ставили более дешевые N-Channel мосфеты. Кстати, старались минимизировать негативный эффект и выбрали с минимальным Vgs!

    Их я прекрасно понимаю, не понимаю я почему Вы меня не понимаете 🙂

    И всё же непорядок! На кулере не будет положенных ему 12V. Это хоть и не смертельно, но ИМХО неправильно.

  3. MasterAlexei Says:

    Вас то я понял 🙂

    Первый ваш коммент, в принципе, как и этот, я писал после «веселой» ночки борьбы со своим RAID массивом, который не хотел нормально увеличиваться после замены дисков и без потерь данных. Сейчас вроде все работает как надо.

    А эту схему я делал довольно давно, и еще до того, как прочитал все статейки на тему мосфетов, и естественно забыл, чего там и как, и отвечая на ваш коммент, думал, что тут сделал все правильно, как и в другой своей поделке, не поглядев схему внимательно (я обычно не помню всех подробностей всех своих поделок, которые делал полгода-год назад). Поэтому и думал, что поставил тут мосфеты снизу нагрузки.

    Если же я все таки правильно помню, то при 100% ШИМа — на вентиляторах было что-то около 10-10.5 вольт. Сейчас мерять — это разбирать половину компьютера, что совсем не входит в мои ближайшие планы.

    И кулеры даже с 10тью вольтами воют довольно громко и охлаждают, как им и положенно, а борьба была именно с тем, чтобы они не выли, как голодные волки, чего, собственно, мы и добились.

    Странно, почему же Термалтейковцы поставили эти мосфеты таким образом? Или я плату неправильно прочитал и схему неправильно срисовал?

    В принципе — это одна из моих первых таких поделок и я тогда был молодой и зеленый. Теперь то я уже кое чему научился ;-). Вам спасибо.

    Кстати — в своей машинке я поставил мосфеты правильно 😉 в H-мосте. Даже DC-DC StepUp конвертер поставил для них. Ездит. Правда незнаю, когда до ума доведу ее.

Leave a Reply

You must be logged in to post a comment.