После некоторого времени, связанного с отладкой программного обеспечения, я обнаружил, что это требует огромных потерь в системе, поэтому я подумал о том, чтобы изначально создать аппаратный отладчик с одним триггером Шмитта (74HC14), конденсатором, кнопкой и резистором, как показано ниже, с сайта talkelectronics.com. :
Но я читал, что триггер Шмитта в два раза хуже, чем обычный инвертор при определении того, когда выводить максимум или минимум, потому что он переключает состояние на отметке 33% и 66%, когда обычный инвертор переключается ближе к отметке 50%. (но с версией HC это вероятно больше на 55%).
Мне было интересно, потому что триггер Шмитта, состоящий из шести инверторов в одном корпусе, значительно улучшил бы отладку с любой выбранной кнопкой на первом входе, если бы я сделал шесть схем на правой стороне с одинаковыми значениями компонентов и соединил все из них в сериале? (Пример: выход первой цепи на вход второй цепи, где встречаются конденсатор и резистор.)
Ответы:
Использование триггеров Шмитта в серии не уменьшит отказов.
Рассмотрим фильтр:
Ввод (U). Красная линия - это порог 50%, выход которого воспринимается как сигнал (A). Отскакивает каждый раз, когда вход пересекается.
Зеленые линии - что-то вроде 33% и 66%, как вы сказали. Но выход (B) переключается только тогда, когда вход (U) переходит от одного зеленого порога к другому.
Самое главное, что выходной сигнал либо полностью ВЫСОКИЙ, либо НИЗКИЙ (цифровой). Таким образом, если бы выход триггера Шмитта подавался на вход другого, по существу не было бы никакой разницы.
Возьмите отфильтрованный вывод сверху (B) и подумайте, как он будет виден другим триггером Шмитта:
Опять же, выход первого будет HIGH или LOW. Таким образом, он будет пересекать пороги одновременно, что приведет к тому же результату, что и вход. Нечего отрицать! Во всяком случае, я ожидал бы, что это создаст больше шума, потому что вы вводите больше компонентов и, следовательно, больше места для ошибок.
Похоже, что вы можете искать это триггер Шмитта с регулируемыми порогами. Некоторые симметричны (например: 33% и 66% или 10% и 90%). Другие несимметричны (например, 33% и 80%). Вы можете создать свой собственный с помощью операционного усилителя.
Попробуйте поиграть с этим симулятором, который я собрал некоторое время назад: Симуляция триггера Шмитта - Неинвертирующий Несимметричный
источник
Единственный триггер Шмитта с аналоговым фильтром перед ним может быть использован для устранения неполадок. Однако после этого триггера Шмитта сигнал полностью цифровой. Любые дополнительные триггеры Шмитта не изменят это. В идеале они сохранят сигнал.
По отдельной теме, устранение неполадок в прошивке не должно представлять большой нагрузки. Обычным способом является выборка состояния переключателя в периодическом прерывании, которое у вас уже есть. Вы объявляете дебазированное состояние текущим значением переключателя, когда видите, что переключатель находится в этом состоянии для N последовательных выборок. Я обычно требую, чтобы коммутатор находился в одном и том же состоянии в течение 50 последовательных прерываний в 1 мс, чтобы новое состояние считалось действительным. Обычно это занимает очень небольшую долю от общего числа циклов процессора.
источник