Я управляю 4-контактным вентилятором PWM для ПК от PIC16F684, скорость вращения которого определяется показаниями АЦП датчика приближения. Это все работает хорошо.
Изначально я не планировал использовать выходной сигнал тахометра от вентилятора, но, поскольку он доступен, я следил за ним с помощью своего прицела, чтобы убедиться, что мое отображение между близостью и скоростью вращения вентилятора работает.
Теперь, что я заметил, так это то, что, когда ШИМ работает с вентилятором на 100%, сигнал тахометра (который является открытым стоком, подключенным через резистор 10 кОм) хорош и чист:
Тем не менее, когда я бегу на менее чем 100%, это шумно:
Увеличение этого шума:
Я предполагаю, что на него воздействует сигнал ШИМ, но я хотел бы понять, почему и как, чтобы я мог очистить его в случае необходимости в будущем. На самом деле меня интересует, что вам следует делать, когда вы видите такой шум, как вы находите причину и как вы ее «исправляете». Прицел умело срабатывает нормально, поэтому мне интересно, если я просто подам его на вывод внешнего прерывания на PIC (RA2), который является входом триггера Шмитта с уровнями CMOS, тогда я не "увижу" шум, и я например, может выводить чистый сигнал из другого контакта, чтобы погас светодиод или что-то еще.
Так может ли кто-нибудь объяснить в общих чертах, как распознать и исправить шумовые сигналы? Или, если это слишком широко, может быть, только эта конкретная проблема? Кроме того, если что-то не так с моей схемой, было бы неплохо знать тоже. На схеме ниже, сигнал, который я показываю, является входом TACH слева от цепи:
ОБНОВЛЕНИЕ
После полезных советов от @MichaelKaras и @techydude я исключил Q2 как источник любой проблемы, полностью удалив его из цепи и заземлив вентилятор напрямую. Не оказывает существенного влияния на шум.
Поэтому я затем кодировал внешнее прерывание на RA2, чтобы отразить «очищенный» сигнал из запасного контакта (в данном случае RA1), который очень помог, но все еще мерцал из-за ложных прерываний. (Таким образом, я бы установил прерывание для удержания переднего фронта, а затем переключил его на спадающий фронт при срабатывании и наоборот, соответственно установив / сбросив RA1).
Но после добавления 100 нФ конденсатора через R3 (как часть предложения @ techydude) я теперь получаю гораздо более стабильный выход. На приведенном ниже снимке экрана показан сигнал TACH после очистки через триггерный вход RA2 Шмитта и повторный вывод на RA1:
Ответы:
О вашей схеме:
Все выглядит хорошо, вы можете увеличить R2 до 10 кОм или даже до 100 кОм, емкость MOST настолько мала, у FAN будет гораздо большая инерция вращения, чем задержка выключения в MOST, возможно, даже с 1M. Таким образом, местоположение вашего 100R не имеет значения, и пока вы не тратите мА. Если вы никогда не удерживаете de uC в режиме сброса, это технически даже не требуется вообще, так как ваш uC будет активно тянуть его высоко или низко.
Что касается сигнала ШИМ, вы можете увидеть, допускает ли таблица данных внешнее напряжение до 12 В, хотя я сомневаюсь, что в любом случае это будет иметь большое значение.
По поводу шума:
РЕДАКТИРОВАТЬ: Я неправильно понял ваш график для кГц, что глупо, если вы думаете об этом, где это Гц. Часть моей истории немного изменится (например, разговор о необходимости МГц для цифровой работы), но общая идея остается.
Я оставлю весь пост как есть, но для сигнала 100 Гц с шумом 30 кГц вместо 100 кГц с шумом> 5 МГц (тоже не имеет смысла, не так ли?), Вы могли бы увеличить резисторы, которые взаимодействуют с конденсаторами в 10 раз, а также увеличьте конденсаторы в 50-100 раз. Это даст вам в 1000 раз более низкую частоту фильтрации во всех примерах. Но также можно просто увеличить конденсаторы в 10–20 раз, чтобы получить более резкие края или более быстрый отклик на интересующий вас сигнал, поскольку 30 кГц очень далеки от 100 Гц.
Так что считайте этот пост написанным для высоких частот и уменьшайте количество идей, чтобы их было гораздо проще реализовать! (Особенно цифровой отказ в 3.)
Конец редактирования
Поскольку у вас есть такой хороший вариант использования для работы с методами снижения шума, я постараюсь создать такой, который подходит для вашей ситуации.
Чтобы кто-нибудь читал, знайте:
Это только шум на цифровом сигнале
В цифровом сигнале вы можете сделать предположение, что вас интересуют только два напряжения: «включено» и «выключено». Все, что находится между ними, бессмысленно и принадлежит шуму или неправильности. В аналоговом сигнале вам необходимо знать о каждом уровне напряжения и выполнять некоторую фактическую фильтрацию с нагрузками C, L и т. Д.
Проблема в вашем сигнале состоит в том, что отрицательные пики шума на высоком уровне и положительные пики шума на низком уровне очень близки друг к другу, поэтому простой стандартный триггер, даже с регулируемым уровнем, не может абсолютно гарантировать, что вы никогда не получите смущенный.
Ваши варианты:
1. Изменить смещение:
Позитив имеет очень низкие отрицательные пики, потому что ваше подтягивание не может выиграть от шума. Самая простая вещь, которую вы можете попробовать - это уменьшить это сопротивление. Существует риск, что это также увеличит пики сигнала выключения, что может не всегда работать. Но очень возможно, что это даст вам некоторое пространство между шипами, чтобы установить простой гистерезис.
2. Измените уровни напряжения
Вы можете легко, если это позволяет вентилятор, изменить Tacho на более высокий уровень напряжения и добавить промежуточное состояние:
смоделировать эту схему - схема, созданная с использованием CircuitLab
Теперь между высоким и низким пиками может быть достаточно места, чтобы MOST всегда был включен, даже когда есть отрицательные пики и всегда выключен, даже если есть положительные пики. Может потребоваться несколько диодов, стабилитронов или резисторов, чтобы получить заданное значение в новой ситуации, но если пики на отрицательном сигнале остаются такими, какие они есть, они не должны запускать MOSFET, пока вы этого не сделаете. замените его на тот, у которого порог затвора ниже 2В.
3. Добавьте «медленный» гистерезис:
Это трюк, который обычно используется, когда вы знаете, что сигнал с резким шумом по крайней мере на порядок больше, чем интересующий вас сигнал. Он немного задержит сигнал, поэтому его нельзя использовать в ситуациях, когда точный момент изменения вкл / выкл важно.
Но для сигнала, когда вы хотите знать только его форму или частоту, это очень надежный метод. Он в основном начинает срабатывать, когда напряжение пересекает порог, но завершает это действие только тогда, когда остается там. Есть много способов сделать это.
Вы можете сделать это в контроллере (что является самым простым в подсчете компонентов): вы можете запустить с фланга, а затем сэмплировать еще несколько значений на достаточной скорости, чтобы увидеть высокий уровень между всплесками шума, но не путайте с отсутствием целого периода низкого уровня. Затем вы делаете заранее определенное суждение, основываясь на знании вашего сигнала и шума. Например, если вы можете сэмплировать на частоте 10 МГц, вы можете захватить 50 сэмплов и быть уверенным, что самая высокая частота 100 кГц не будет проигнорирована, если вы будете следовать правилу большинства. Т.е. как минимум 25 должно быть низким, чтобы оно действительно было низким. Ваши пики только очень тонкие и в большинстве случаев это исходный сигнал, так что это может сработать, но число большинства можно отрегулировать. Это будет работать и с частотой 1 МГц и с 6 или 7 сэмплами, но фактического большинства будет меньше, поэтому здесь снова могут быть некоторые риски.
Вы также можете сделать это внешне: но это уже НАМНОГО сложнее, чем добавление простого фильтра, особенно когда вы смотрите на результат с помощью ОК с некоторым гистерезисом на входе. Но об этом интересно думать, так что давайте:
смоделировать эту схему
U1 - любой подходящий операционный усилитель или компаратор. Операторы являются лучшими коммутаторами, часто с лучшими колебаниями, но для под-МГц операционный усилитель с приличным рельсом / рельсовым колебанием легко подойдет.
В то время как этот тип гистерезиса может быть построен по меньшей мере на один резистор меньше, этот легче объяснить и, следовательно, легче изменить.
Сначала представьте это без конденсатора:
Во-первых, обратите внимание, что на резисторный делитель влияет выход U1, он будет подтягивать его чуть выше и выше через видимое сопротивление 20 кОм. Допустим, на положительном входе U1 напряжение 1,1 В округляется в сторону уменьшения, когда его выход равен 0, и 3,9 В округляется в большую сторону, когда его выход составляет 5 В.
Если входной сигнал Tacho при установившемся режиме высокий, выход U1 будет низким из-за инвертирующего характера входа Tacho. Таким образом, отрицательный вход будет, опять же из-за дополнительного подтягивающего резистора, около 2,3 В. Поскольку положительный вход составляет всего 1,1 В, вход должен упасть ниже 2,2 В, чтобы отрицательный вход видел напряжение ниже, а выход переворачивался.
Когда выходной сигнал перевернется, отрицательный вход увидит 3,6 В (потому что в этот момент входной сигнал равен 2,2 В, выходной сигнал U1 равен 5 В, поэтому их среднее значение, составляющее резисторы 10 кОм, составляет около 3,6 В), но положительное значение входной сигнал переключится с 1,1 В на 3,9 В, так что отрицательный сигнал все еще находится ниже положительного входа, а выходной сигнал останется на уровне 5 В.
Если сигнал теперь быстро «прерывается» и переворачивается обратно, выходной сигнал U1 быстро возвращается обратно, но тогда пик уже должен был упасть ниже 2,2 В, так что это лучше, чем ничего.
Если сигнал упадет до 0, стабильная ситуация станет только сильнее, отрицательный вход упадет до 2,5 В (поскольку мы предполагаем, что тахограф FAN достаточно силен для понижения), а положительное значение будет примерно на уровне 3,9. V.
Теперь сигнал должен подняться выше 2,7 В, чтобы выход перевернулся в другую сторону. Скорее всего, 95% ваших шипов будут уже проигнорированы.
Добавление конденсатора:
При использовании конденсатора входящий сигнал должен обеспечивать достаточное количество энергии в течение времени, достаточного для зарядки или разрядки конденсатора. По сути, это уже RC-фильтр. Любой всплеск, который быстро погружается, а затем восстанавливается, не сможет разрядить конденсатор.
Значение C, конечно, зависит от исходного сигнала и шумового сигнала. У меня есть припаркованный мяч 510pF для сигнала источника 100 кГц против длительности пика 1us, но на самом деле я не особо разбираюсь в математике, это просто интуиция, основанная на времени RC, что это может быть близко к тому, что будет работать.
4. Отфильтровать шум
Это немного похоже на фильтрацию аналогового сигнала. Вы можете использовать простую сеть RC, как обсуждалось в предыдущем разделе:
смоделировать эту схему
Поскольку пики шума не превышают 1 мкс, они не могут вносить значительных изменений в напряжение на конденсаторе, поскольку время его срабатывания составляет 5 мкс. Это означает, что энергия в шипах сглаживается до среднего. Поскольку вы видите высокие вершины и низкие провалы на шипах, даже возможно, что средние значения будут очень близки к 0 В и 5 В, но это можно сказать только с лучшими фотографиями или просто экспериментом. Поскольку вы подаете его на вывод uC, RC-времени, вероятно, будет достаточно, чтобы увидеть его как высокое или низкое. Это даст небольшое искажение из-за более медленной зарядки, чем разрядка, вызванной подтягивающим резистором. Некоторое изменение значений может привести к результату, который незначителен.
Если этого недостаточно, вы можете добавить еще несколько компонентов, но вы очень быстро переусердствуете, когда ваш доминирующий шум по крайней мере в 10 раз «быстрее» вашего сигнала.
Вы можете добавить индуктор 4,7 мкГн последовательно с резистором, чтобы сгладить еще несколько высокочастотных фронтов, возможно, даже 10 мкГн.
Но, честно говоря, в случае «подачи его в ОК» единственная причина поэкспериментировать с L в сигнале вашего рода - это найти баланс, в котором R велико, C мало, а L просто помогает сгладить некоторые фланги, так что R2 / R1 будет достаточно маленьким, чтобы игнорировать разницу во времени подъема и спада. такие как R1 33k, C 150pF и L последовательно с R1 56uH. Или, может быть, ферритовый шарик вместо индуктора, немного зависит от остроты ваших шипов.
Но уже обдумав это, я бы сказал.
источник
Подобный шум от тахометра вентилятора является обычным, потому что схема (которая обычно включает в себя датчик эффекта Холла) в вентиляторе, который генерирует тахо-выход, сама включается / выключается на частоте вашего ШИМ (когда ваш ШИМ-выход находится на каком-либо другом уровне). чем 100% -на), а не только питание самого двигателя. Конечно, у них будет какая-то емкость для сглаживания питания в этой схеме, но, скажем, с 12 В блоком питания вентилятора, при условии, что есть достаточная емкость для поддержания нескольких вольт между минимальными периодами выключения ШИМ, этого достаточно для того, чтобы оба управляли Холлом. Влияние датчика и подтягивания выходного сигнала тахометра (если вентилятор включает собственное подтягивание выходного сигнала тахометра), чтобы обеспечить извлекаемый выходной сигнал. Да, фанаты грязны, когда вы их ШИМ. Некоторые вентиляторы имеют ШИМ-вход, независимый от их источника питания +12 В.
Ваш ШИМ, кажется, составляет около 27 кГц. Таким образом, в данной конкретной ситуации хорошо то, что ваш тахо-выход при выходе 100%, кажется, составляет около 800 Гц, что составляет <1/30 частоты вашего ШИМ, поэтому фильтрация этого тахо-выхода, чтобы избавиться от большей части ШИМ-шума, легко и стоит делать. Здесь уже поздно, поэтому я CBF работал через кальки, но потому что он с открытым стоком и это напряжение вашего подтягивающего напряжения (в вентиляторе), которое притесняется ШИМ, колпачком между тахометром и шиной +12 В (не ШИМ) выход из вашей схемы привода вентилятора), вероятно, будет лучшим вариантом, чем крышка на тахометре на землю. Попробуйте оба и посмотрите. Начните с керамической крышки 100n соответствующего напряжения и посмотрите, как она выглядит.
С входом Schmigger на PIC вы можете даже уйти, не выполняя никакой фильтрации этого тахо-выхода, прежде чем вставить его в PIC, но у вас есть такой дифференциал частоты, который легко позволит вам пройти долгий путь к его очистке вверх.
Одна из возможных проблем с обработкой сигнала тахометра от вентилятора, хотя: если вентилятор вытягивает его до +12 с 10К внутри (некоторые делают, некоторые нет), и вы также подтягиваете сигнал тахографа к своему + 5V рельс, тогда вы на самом деле тянете его вниз! Существуют различные конфигурации цепей, чтобы справиться с этим, в зависимости от напряжения питания вентилятора, силы подтягивания и т. Д. Попробуйте измерить его с помощью мультиметра и сообщите нам.
источник
Возможный источник шума в сигнале TACH может быть из-за того, что FET IRF150 не является достаточно низким включенным импедансом. Это может быть связано с тем, что FET RdsON достаточно высок или FET не полностью включен при предоставленном напряжении возбуждения затвора.
Когда ток переключения вентилятора и выключается с сигналом ШИМ будет падение на сопротивлении FET понуждают «GND» ссылка вентилятора поднять вверх и вниз и перевести на шум видно на сигнале TACH.
Вы можете проверить это, чтобы увидеть, имеет ли место описанный эффект, поместив вывод GND прицела на сток FET, а затем посмотрите на сигнал TACH. Сигнал будет выглядеть чище.
Решение состоит в том, чтобы выбрать FET с гораздо более низким RdsON, если он поставляется с приводом затвора, который предоставляет ваша система.
Другая возможная идея - использовать P-FET для переключения провода + 12 В вентилятора вместо провода GND.
Обратите внимание, что используемая схема резистора затвора приводит к потере части вашего потенциального затвора. Переместите резистор 1К на другую сторону 100Ом.
источник
Это звучит как работа для фильтра нижних частот. Вам нужно сохранить полезный сигнал с f 1 около 1 кГц и удалить сигнал сбоя с f 2 около 25 кГц. Частота среза может быть выбрана как среднее геометрическое для f 1 и f 2 (неоптимальное, но простое):
f c = sqrt (1 * 25) = 5 кГц.
Предполагая , что простой RC-фильтр будет достаточно, и вы уже имеют сопротивление в цепи TACH (R 3 = 10 кОм), соответствующее значение конденсатора должен быть рассчитан в соответствии с частотой 5 кГц времени Костанта :
C = 1 / (2 * pi * fc * R) = 1 / (6,28 * 5000 * 10000) = 3,2 * 10 -9 F.
Поэтому все, что вам нужно сделать, это припаять конденсатор 3 нФ между линией TACH и землей. Это ослабит высокочастотный шум в 20 и более раз, что должно быть достаточно для вашего применения.
источник