Линейка продуктов KEEN SIDE
РадиоЛоцман - Все об электронике

Добавьте функцию триггера Шмитта в ПЛИС и вентильные матрицы

Благодаря внутреннему гистерезису очень полезная схема триггера Шмитта принимает медленно нарастающий входной сигнал и формирует чистый, без выбросов выходной сигнал. К сожалению, программируемые пользователем логические устройства, такие как ПЛИС и программируемые вентильные матрицы, обычно не предлагают прямого метода синтеза логических элементов и буферов с триггерами Шмитта. В этой статье показано, как с помощью нескольких внешних компонентов и небольшого кода на языке VHDL можно реализовать триггер Шмитта и использовать его в различных полезных приложениях.

Датчики давления азиатских производителей

Чтобы создать эквивалент базового буфера c триггером Шмитта, используют два внешних резистора, создающих вокруг буфера положительную обратную связь (Рисунки 1а и 1б). Можно также использовать четыре внешних резистора для установки двух пороговых уровней на входах RS-триггера (Рисунок 1в).

Используйте часть программируемого логического устройства или вентильной матрицы для реализации буфера с триггером Шмитта (а), добавив два (б) или четыре внешних резистора (в).
Рисунок 1. Используйте часть программируемого логического устройства
или вентильной матрицы для реализации буфера с триггером
Шмитта (а), добавив два (б) или четыре внешних резистора (в).

Следующие формулы описывают положительный и отрицательный пороговые уровни базового триггера Шмитта, соответственно:

В этих формулах VTH представляет собой пороговое входное напряжение ПЛИС/вентильной матрицы, а VCC – напряжение источника питания.

Добавьте резистор и конденсатор к базовому буферу с триггером Шмитта, чтобы создать недорогой генератор.
Рисунок 2. Добавьте резистор и конденсатор к базовому буферу с триггером
Шмитта, чтобы создать недорогой генератор.

Основанный на эквивалентной схеме триггера Шмитта на Рисунке 1б, недорогой резистивно-емкостной генератор на Рисунке 2 требует четырех внешних пассивных компонентов. Резистор R и конденсатор C задают частоту колебаний схемы. Обратите внимание, что значения сопротивлений R1 и R2 должны быть больше, чем R. Листинги 1 и 2 содержат VHDL-реализацию и RTL-архитектуру этой схемы, соответственно.

Листинг 1.

Entity Oscillator is
   Port (
       A : in std_logic;
       B : in std_logic;
       OUT : out std_logic
   ;)
end Oscillator;

Листинг 2.

architecture RTL of Oscillator is
begin
   A <= B;
   OUT <= not A;
end RTL;

На Рисунке 3 буфер с открытым коллектором обеспечивает запуск базовой схемы ждущего мультивибратора с перезапуском на основе триггера Шмитта путем разряда времязадающего конденсатора C. Длительность выходного импульса схемы приблизительно равна постоянной времени RC. VHDL-реализация и RTL-архитектура показаны в Листинге 3.

Листинг 3.

Entity Monostable is
   Port (
       A : in std_logic;
       B : in std_logic;
       Trigger : in std_logic;
       C : out std_logic;
       OUT : out std_logic
   ;)
end Monostable;

architecture RTL of Monostable is
begin
   A <= B;
   OUT <= not A;
   C <= ’0’ when Trigger= ’1’ else ’Z’;
end RTL;

В этой версии ждущего мультивибратора с перезапуском, основанного на буфере с триггером Шмитта, буфер с активным низким уровнем удерживает времязадающий конденсатор C в разряженном состоянии.
Рисунок 3. В этой версии ждущего мультивибратора с перезапуском, основанного
на буфере с триггером Шмитта, буфер с активным низким уровнем
удерживает времязадающий конденсатор C в разряженном состоянии.

Перезапускаемый ждущий мультивибратор можно преобразовать в показанный на Рисунке 4 ждущий мультивибратор без перезапуска, используя логический элемент «И-НЕ» с открытым коллектором для разряда времязадающего конденсатора C. Пока на выходе схемы в течение установленного временного интервала остается высокий логический уровень, система блокирует внешние запуски. Как и в предыдущей схеме, длительность выходного импульса приблизительно равна постоянной времени RC. В Листинге 4 приведены VHDL- и RTL-коды.

Листинг 4.

   Port (
       A : in std_logic;
       B : in std_logic;
       Trigger : in std_logic;
       C : out std_logic;
       OUT : out std_logic
   ;)
end Monostable;

architecture RTL of Monostable is
begin
   A <= B;
   OUT <= not A;
   C <= ’0’ when Trigger= ’1’ and A=’0’ else ’Z’;
end RTL;

Логический элемент «И-НЕ» блокирует импульсы запуска, образуя ждущий мультивибратор без перезапуска.
Рисунок 4. Логический элемент «И-НЕ» блокирует импульсы запуска,
образуя ждущий мультивибратор без перезапуска.

Базовую схему буфера на ПЛИС с обратной связью можно использовать, чтобы обеспечить гистерезис для схемы подавления дребезга контактов. На Рисунке 5 резистор R4 обеспечивает ток очистки контактов, а элементы R3 и C образуют фильтр нижних частот для снижения шума, создаваемого дребезгом контактов. Номиналы компонентов зависят от требований конкретного приложения.

Используйте триггер Шмитта для устранения дребезга контактов переключателя.
Рисунок 5. Используйте триггер Шмитта для устранения
дребезга контактов переключателя.

EDN

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Add a Schmitt-trigger function to CPLDs, FPGAs, and applications

ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя