Приветствую вас, монстры-электронщики.
Детальное описание и полный перечень вопросов см. ниже, но основной вопрос задаю сразу: можно ли использовать один вход микроконтроллера STM32 и обычный 8-канальный мультиплексор типа CD4051B для тахометра (счётчика цифровых импульсов, идущих с частотой от 5Гц до 1000Гц)? Я желаю просто переключаться каждые 5-10 секунд между 8-ю сигналами вместо того, чтобы громоздить 8-канальный захват и подсчёт в самом микроконтроллере. Многоканальный ШИМ съедает довольно много периферии. Полагаю, лучше отделаться тремя-четырьмя ножками для управления мультиплексором (ну и входным измерительным таймером МК, конечно).
Постановка задачи
Построить 8-зонный контроллер охлаждения для мини-СХД, используя вентиляторы с ШИМ и обратной связью, например,
Arctic Cooling F12 PWM CO (500-1500 об/мин). Если кто-то из уважаемых монстров не совсем в теме: эти вентиляторы управляются ШИМ (контакт №4), обратная связь (по фактическим оборотам) приходит импульсами (контакт №3, тахометр).
Более подробное описание
Используются термодатчики типа BMP180 (это I2C).
Добавляется SD-карточка для хранения потоковой телеметрии (это SPI) и часы реального времени для простановки меток (это ещё раз I2C). Ещё немного, и хоть в космос запускай (шутка).
Архитектура микроконтроллера - STM32F103 (что было под рукой).
Сделать 8-канальный ШИМ на STM32, как я понимаю, вообще не проблема (два таймера по четыре канала, несущая частота одинаковая). Но вот добавлять туда же 8-канальный тахометр как-то уже слишком жирно. Тем более, самое интересное при работе с STM32 начинается, когда изучаешь ERRATA SHEET, из которого выясняется, например, конфликт при работе I2C2 вместе с SPI2 и USART3 …
Попробовал найти I2C PWM-драйвер, но варианты для роботов типа PCA9685 имеют несущую частоту ШИМ порядка 1.6кГц, в то время как для вентиляторов рекомендовали уходить в область 20..100кГц во избежание ненужных акустических эффектов…
Вопросы
1) Можно ли использовать обычный 8-канальный мультиплексор типа CD4051B для подсчёта импульсов тахометра 5..1000Гц переключаясь по очереди, например, каждые 5 секунд? Может, взять другой мультиплексор?
2) Какая всё-таки частота ШИМ рекомендуется для гражданских вентиляторов? Кто-то говорит 20кГц, кто-то 100кГц, где истина?
3) Нужно ли подтягивать вверх выход тахометра в схеме с мультиплексором CD4051B? Если да, это ведь надо делать до мультиплексора, верно?
UPD
4) Я правильно понимаю, что у 4-проводных вентиляторов (в отличие от 3-проводных) возвратный сигнал "тахометра" никак не модулируется самим ШИМ-сигналом? Не хочется гоняться за своим собственным модуляционным хвостом, подобно собаке.
всем спасибо заранее