Оглавление:

DIY PWM Control для компьютерных фанатов: 12 шагов
DIY PWM Control для компьютерных фанатов: 12 шагов

Видео: DIY PWM Control для компьютерных фанатов: 12 шагов

Видео: DIY PWM Control для компьютерных фанатов: 12 шагов
Видео: Переделываем DC-DC преобразователь для управления с Arduino 2024, Ноябрь
Anonim
DIY PWM Control для компьютерных фанатов
DIY PWM Control для компьютерных фанатов

В этом руководстве описывается создание полнофункционального ШИМ-контроллера 12-вольтового вентилятора ПК. Конструкция может управлять до 16 3-контактными компьютерными вентиляторами. В конструкции используется пара конфигурируемых ИС смешанного сигнала Dialog GreenPAK ™ для управления рабочим циклом каждого вентилятора. Он также включает два способа изменения скорости вращения вентилятора:

а. с квадратурным / поворотным энкодером

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

Ниже мы описали шаги, необходимые для понимания того, как чип GreenPAK был запрограммирован для создания ШИМ-управления для вентиляторов ПК. Однако, если вы просто хотите получить результат программирования, загрузите программное обеспечение GreenPAK, чтобы просмотреть уже заполненный файл дизайна GreenPAK. Подключите GreenPAK Development Kit к компьютеру и запустите программу, чтобы создать индивидуальную ИС для управления ШИМ для поклонников ПК.

Шаг 1: блок-схема системы

Блок-схема системы
Блок-схема системы

Шаг 2: Разработка поворотного декодера SLG46108

Поворотный декодер SLG46108
Поворотный декодер SLG46108
Поворотный декодер SLG46108
Поворотный декодер SLG46108
Поворотный декодер SLG46108
Поворотный декодер SLG46108

Поворотный энкодер используется для увеличения или уменьшения рабочего цикла вентиляторов вручную. Это устройство выдает импульсы на свои выходы канала A и канала B, которые разнесены на 90 °. См. AN-1101: Квадратурный декодер без тактовой частоты для получения дополнительной информации о том, как работает поворотный энкодер.

Синхронизированный поворотный декодер может быть создан с использованием Dialog GreenPAK SLG46108 для обработки сигналов каналов A и B и вывода их в виде импульсов против часовой стрелки (CCW) и по часовой стрелке (CW).

Когда канал A опережает канал B, схема выдает короткий импульс CW. Когда канал B опережает канал A, он выдает короткий импульс против часовой стрелки.

Три DFF синхронизируют вход канала A с часами. Точно так же задержка конвейера с OUT0, установленным на два DFF, и OUT1, установленным на три DFF, создает ту же функциональность для канала B.

Для создания выходов CW и CCW используйте несколько таблиц LUT, для получения дополнительной информации об этой стандартной конструкции поворотного декодера посетите этот веб-сайт.

Поворотный декодер GreenPAK будет получать входные импульсы A и B и выводить импульсы CW и CCW, как показано на рисунке 4.

Схема после вентилей XOR гарантирует, что никогда не будет импульса CW и импульса CCW одновременно, допуская любую ошибку с поворотным энкодером. Задержка спадающего фронта в 8 мс для сигналов CW и CCW вынуждает их оставаться на высоком уровне в течение 8 мс плюс один тактовый цикл, что необходимо для нисходящих SLG46826 GreenPAK.

Шаг 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 мс, затем используется для переключения защелки, которая определяет, выбран ли этот конкретный чип. Если он выбран, то 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 работает в течение количества тактовых циклов, записанных пользователем, как указано в команде I2C «Запись в CNT5» в таблице 1. В данном случае это 10 тактовых циклов. OneShot позволяет генератору 25 МГц работать точно в течение своей продолжительности, а не дольше, так что 3-битный LUT0 получает количество тактовых циклов, которые были записаны в CNT5.

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

Шаг 9: показания тахометра

Показания тахометра
Показания тахометра
Показания тахометра
Показания тахометра

При желании пользователь может считывать значение тахометра по I2C, чтобы отслеживать скорость вращения вентилятора, считывая значение CNT2. CNT2 увеличивается каждый раз, когда ACMP0H имеет нарастающий фронт, и его можно асинхронно сбросить с помощью команды I2C. Обратите внимание, что это дополнительная функция, и порог ACMP0H необходимо будет настроить в соответствии со спецификациями конкретного используемого вентилятора.

Шаг 10: Проектирование внешней схемы

Дизайн внешней схемы
Дизайн внешней схемы

Внешняя схема довольно проста. К контакту 6 GreenPAK подключена кнопка для переключения, выбрано ли это конкретное устройство для поворотного управления, и светодиод, подключенный к контактам 12 и 13, чтобы указать, когда выбрано устройство.

Поскольку вентилятор работает от напряжения 12 В, требуется пара полевых транзисторов для управления его переключением. Pin18 и Pin19 GreenPAK управляют nFET. Когда nFET включен, он подтягивает затвор pFET LOW, который подключает вентилятор к +12 В. Когда nFET выключен, затвор PFET подтягивается резистором 1 кОм, который отключает вентилятор. от +12 В.

Шаг 11: Дизайн печатной платы

Дизайн печатной платы
Дизайн печатной платы

Для прототипа конструкции было собрано несколько печатных плат. На печатной плате слева находится «контроллер вентилятора», в котором находится поворотный энкодер, разъем на 12 В, 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 #. Было продемонстрировано, как сгенерировать сигнал ШИМ с парой счетчиков смещения, и как увеличивать и уменьшать рабочий цикл этого сигнала без опрокидывания.

Рекомендуемые: