Могут ли несколько триггеров Шмитта в серии полностью отменить переключение?

8

После некоторого времени, связанного с отладкой программного обеспечения, я обнаружил, что это требует огромных потерь в системе, поэтому я подумал о том, чтобы изначально создать аппаратный отладчик с одним триггером Шмитта (74HC14), конденсатором, кнопкой и резистором, как показано ниже, с сайта talkelectronics.com. :

говорящая электроника

Но я читал, что триггер Шмитта в два раза хуже, чем обычный инвертор при определении того, когда выводить максимум или минимум, потому что он переключает состояние на отметке 33% и 66%, когда обычный инвертор переключается ближе к отметке 50%. (но с версией HC это вероятно больше на 55%).

Мне было интересно, потому что триггер Шмитта, состоящий из шести инверторов в одном корпусе, значительно улучшил бы отладку с любой выбранной кнопкой на первом входе, если бы я сделал шесть схем на правой стороне с одинаковыми значениями компонентов и соединил все из них в сериале? (Пример: выход первой цепи на вход второй цепи, где встречаются конденсатор и резистор.)

Майк
источник
3
«потому что он переключает состояние на отметке 33% и 66%» , не в этом ли смысл использования триггера Шмитта? ... Так что в середине есть окно, где он не переключается, таким образом, отсекая?
Борт
5
Как дебасинг может сильно сказаться на системе? Отладка программного обеспечения может быть такой же простой, как поддержание интервала 50 мс между считыванием кнопок.
Wouter van Ooijen
2
@Mike Может, у тебя неправильное представление о триггерах Шмитта? Знаете ли вы, что у них есть гистерезис, и что асимметричные точки переключения «перекрываются»: нет средней полосы, где сигнал не определен.
труба
4
Ваша проблема не имеет к этому никакого отношения - ваша проблема в том, что вы не знаете, как писать программные средства, разбирающиеся таким образом, который не является дико неэффективным. Я настоятельно рекомендую опубликовать еще один вопрос на форуме, посвященном обзору кода, чтобы спросить, что вы сделали неправильно в своем программном обеспечении, потому что даже самый дешевый 8-битный процессор может отсеивать кучу входных данных без потери пота.
Грэм
2
@Mike Если у вас нет тысяч событий в секунду, которые вы должны отменить, я не понимаю, как это может оказать какое-либо измеримое влияние на время выполнения.
Дмитрий Григорьев

Ответы:

12

Использование триггеров Шмитта в серии не уменьшит отказов.

Рассмотрим фильтр:

Сравнение формы сигнала триггера Шмитта

Ввод (U). Красная линия - это порог 50%, выход которого воспринимается как сигнал (A). Отскакивает каждый раз, когда вход пересекается.

Зеленые линии - что-то вроде 33% и 66%, как вы сказали. Но выход (B) переключается только тогда, когда вход (U) переходит от одного зеленого порога к другому.

Самое главное, что выходной сигнал либо полностью ВЫСОКИЙ, либо НИЗКИЙ (цифровой). Таким образом, если бы выход триггера Шмитта подавался на вход другого, по существу не было бы никакой разницы.

Возьмите отфильтрованный вывод сверху (B) и подумайте, как он будет виден другим триггером Шмитта:

Триггер Шмитта в серии с другим

Опять же, выход первого будет HIGH или LOW. Таким образом, он будет пересекать пороги одновременно, что приведет к тому же результату, что и вход. Нечего отрицать! Во всяком случае, я ожидал бы, что это создаст больше шума, потому что вы вводите больше компонентов и, следовательно, больше места для ошибок.

Похоже, что вы можете искать это триггер Шмитта с регулируемыми порогами. Некоторые симметричны (например: 33% и 66% или 10% и 90%). Другие несимметричны (например, 33% и 80%). Вы можете создать свой собственный с помощью операционного усилителя.

Попробуйте поиграть с этим симулятором, который я собрал некоторое время назад: Симуляция триггера Шмитта - Неинвертирующий Несимметричный

Симуляция триггера Шмитта - неинвертирующий, несимметричный

Борт
источник
Учитывая, что я сделаю печатную плату, иногда связывание двух последовательно соединенных преобразователей сделает печатную плату намного проще. Сколько еще шума я ожидаю, если подключу два этих инвертора последовательно?
Майк
Для этой установки «шум», вероятно, будет незначительным. Там может быть микросекунда времени распространения. Напряжение «шум» не будет слишком большой проблемой, так как каждый триггер в конце концов является фильтром. Я не стал бы беспокоиться об этом, если только приложение не сильно зависит от времени, но я предполагаю, что это не потому, что это просто кнопка.
Борт
15
Могут ли несколько триггеров Шмитта в серии полностью отменить переключение?

Единственный триггер Шмитта с аналоговым фильтром перед ним может быть использован для устранения неполадок. Однако после этого триггера Шмитта сигнал полностью цифровой. Любые дополнительные триггеры Шмитта не изменят это. В идеале они сохранят сигнал.

По отдельной теме, устранение неполадок в прошивке не должно представлять большой нагрузки. Обычным способом является выборка состояния переключателя в периодическом прерывании, которое у вас уже есть. Вы объявляете дебазированное состояние текущим значением переключателя, когда видите, что переключатель находится в этом состоянии для N последовательных выборок. Я обычно требую, чтобы коммутатор находился в одном и том же состоянии в течение 50 последовательных прерываний в 1 мс, чтобы новое состояние считалось действительным. Обычно это занимает очень небольшую долю от общего числа циклов процессора.

Олин Латроп
источник