Содержание
Интернет-магазин
Аппаратные модули позволяют облегчить возлагаемые на программу микроконтроллера задачи, упростить схему и реализацию различных функций. Использование аппаратных возможностей микроконтроллера позволит, например, единожды сконфигурировав контроллер, возложить на аппаратные модули микроконтроллера функции стабилизации напряжения импульсного источника питания, и освободить программные ресурсы на опрос кнопок управления, индикацию режимов прибора и т.п.
Понимание возможностей аппаратных модулей микроконтроллера и неочевидные варианты их применения помогут упростить схемотехнику и повысить надежность разрабатываемого прибора.
Микроконтроллеры Microchip содержат богатый набор периферийных модулей, включая RS-триггеры и аналоговые компараторы. Данная статья призвана описать некоторые аспекты использования этой аналого-цифровой периферии.
Простейший RS-триггер (R - reset - сброс; S - set - установка) строится на двух элементах ИЛИ-НЕ.
Рис.1. Схема простейшего RS-триггера.
Подачей на входы RS-триггера того или иного сигнала можно «установить» (лог.1) или «сбросить» (лог.0) выход такого триггера.
Табл. 1. Таблица состояния RS-триггера.
вход S | вход R | выход Q |
---|---|---|
0 | 0 | хранение пред.состояния |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 0 |
Триггеры, в том числе и RS-триггер, обладает памятью – текущее состояние триггера зависит от предыдущего. Поэтому в логических схемах триггеры могут использоваться для подавления дребезга контактов, построения счетчиков, арифметических регистраторов и других «умных» схем. RS-триггер так же является основой микросхемы 555-го таймера.
Микросхема 555 таймера была разработана в начале 70-х годов прошлого века, и с момента появления на рынке стала пользоваться беспрецедентной популярностью. Успех этой микросхемы можно объяснить несколькими причинами, главными из которых являлись универсальность, стабильность и низкая стоимость. Не может быть никаких сомнений в том, что появление 555-го таймера стало таким же важным событием в электронной промышленности как и появление операционного усилителя.
Способность 555-го таймера производить длительные задержки времени, а также возможность построения различных дискретных схем для всевозможных приложений, привлекло многих разработчиков и позволило отказаться от механических таймеров и аналоговых схем с применением операционных усилителей.
Типовая схема 555-го таймера приведена на рисунке 2.
Рис.2. Упрощенная схема микросхемы «таймера 555»
В «домикроконтроллерную» эпоху таймер 555 широко использовался для создания различных генераторов, схем задержки и других схем.
Связка компараторов и RS-триггера в PIC-микроконтроллерах Microchip легко образует 555-й таймер внутри микроконтроллера, причем указанная встроенная периферия контроллеров PIC имеет массу возможностей по конфигурированию и использованию совместно с другой периферией микроконтроллера (источниками опорных напряжений, модулем ШИМ, таймерами, входными сигналами).
Рис. 3. Схема конфигурации компаратора микроконтроллеров PIC18F14K50/22.
Рис. 4. Схема конфигурации RS-триггера микроконтроллеров PIC18F14K50/22.
Такой таймер получает гибкость конфигурирования, возможность выводить необходимые выводы наружу микроконтроллера и возможность программного управления.
Моностабильный мультивибратор (одновибратор) это разновидность триггера, который имеет емкостную связь выхода со входом, в результате этого схема всегда возвращается в исходное состояние – если с помощью входного импульса перевести схему в другое состояние, то она вернется в первоначальное с задержкой, которая определяется емкостью и параметрами схемы. Добавив в схему с микроконтроллером PIC три элемента (резистор, конденсатор и диод) можно получить одновибратор, который формирует импульс, длительность которого определяется постоянной времени RC-цепочки.
Рис. 5. Схема одновибратора.
В начальном состоянии на инверсном выходе триггера установлен уровень лог.1, конденсатор заряжен, на выходе компаратора лог.0. При установке лог.1 на входе S триггера, что можно сделать программно или аппаратно с помощью внешних сигналов, триггер перекидывается в противоположное состояние, конденсатор С начинает разряжаться через резистор R. При достижении порога, заданного источником опорного напряжения, на выходе компаратора появляется лог.1, триггер перекидывается в исходное состояние, конденсатор быстро заряжается через диод. Схема устанавливается в исходное состояние.
Таким образом, короткий входной импульс или программное включение триггера на короткое время, формируют импульс с фиксированной длительностью.
Рис.6. Диаграмма, иллюстрирующая работу одновибратора.
Функционально формирователь задержки подобен одновибратору, за исключением того, что состояние выхода должно измениться не сразу, а по истечении определенного времени, а затем вернуться в исходное состояние.
Оба компаратора следят за напряжением на конденсаторе. В исходном состоянии на входе схемы высокий уровень, транзистор открыт и конденсатор разряжен, на инверсном выходе триггера лог. «1». При поступлении на вход сигнала низкого уровня транзистор закрывается, конденсатор начинает заряжаться. При достижении напряжения на конденсаторе нижнего порога, выход триггера установится в лог. «0» - получили задержку фронта входного сигнала.
Рис. 7. Схема формирователя задержанного сигнала.
Если из схемы одновибратора убрать диод, а на вход установки завести сигнал с компаратора, то мы получим мультивибратор (генератор). В начальном состоянии на выходе триггера установлен уровень лог.1, конденсатор заряжается через резистор R до уровня напряжения CVref, при достижении которого на выходе верхнего компаратора появится лог.0 (S=0, R=1). Триггер перекидывается в противоположное состояние, конденсатор С начинает разряжаться через резистор R. При достижении нижнего порога на выходе нижнего компаратора появляется лог.1, триггер перекидывается в исходное состояние, конденсатор начинает снова заряжаться. Таким образом, мы получили полностью программно-независимый генератор.
Рис. 8. Схема мультивибратора.
Рис.9. Диаграмма, иллюстрирующая работу мультивибратора.
Очевидно, что если в схеме мультивибратора программно изменять величину опорного напряжения, то можно изменять генерируемую частоту. Данный пример может пригодиться для создания разного рода сирен и звуковых генераторов не требующих высокой стабильности частоты и освободить встроенный модуль ШИМ для других задач. На рис.10 приведена диаграмма, показывающая осциллограммы напряжений на входе компаратора и на выходе программируемого источника опорного напряжения (Vref_Low, см. рис. 8). Верхний порог Vref_High установлен жестко от встроенного фиксированного источника опорного напряжения 2.048В.
Рис.10. Диаграмма, иллюстрирующая работу управляемого мультивибратора.
Генератор на компараторах может пригодиться не только для формирования сигнала переменной частоты. Если один из частотозадающих элементов схемы является чувствительным элементом, то мы можем получить преобразователь изменяемый параметр-частота. Например, если вместо резистора поставить термистор, то получим преобразователь температура-частота, если вместо емкости поставить датчик влажности, то получим преобразователь влажность-частота. Частоту генератора можно измерить с помощью внутреннего таймера или модуля захвата, тем самым получить числовое значение измеряемого параметра (температура или влажность).
На описанном выше принципе можно создать сенсорную клавиатуру. В общем случае емкостной сенсор (кнопка) является небольшой металлической поверхностью (металлизированным участком печатной платы или др.). Если пользователь подносит палец к емкостному датчику, то он вносит в схему дополнительную емкость. Это изменение емкости детектируется PIC® микроконтроллером с помощью встроенной периферии и программы. Разработанная компанией Microchip технология измерения емкости mTouch™ использует емкость сенсора как частотозадающий элемент генератора. Микроконтроллер измеряет частоту генератора, и любое смещение частоты, при прикосновении пользователя, обнаруживается и проверяется программным обеспечением. На рис.11 показана схема генератора для реализации емкостного сенсора.
Пример реализации сенсорных кнопок с использованием RS-триггера подробно описан в статье Использование Microchip PICkit 2 Debug Express для создания емкостного сенсорного переключателя на основе технологии mTouch™.
Рис. 11. Схема детектора прикосновения (сенсорной кнопки).
Компараторы в современных контроллерах PIC имеют мультиплексор, позволяющий поочередно подключать несколько входов с емкостными сенсорами, поэтому можно реализовать емкостную клавиатуру с несколькими клавишами без применения дополнительных элементов и мультиплексоров.
Контроллер вентилятора должен регулировать частоту вращения электродвигателя в зависимости от сопротивления чувствительного элемента. В отличии от мультивибратора, в данном устройстве нам нужно регулировать не частоту следования импульсов, а величину среднего напряжения на двигателе, т.е. нам нужен управляемый ШИМ генератор. Такой генератор можно получить из одновибратора с его периодическим запуском. Запуск одновибратора можно осуществлять от встроенного в PIC контроллере генератора импульсов (см. рис. 3). Термистор определяет скорость заряда конденсатора, а значит и ширину импульсов аппаратного ШИМ. Чем больше сопротивление термистора, тем шире импульсы и больше скорость вращения вентилятора.
Рис. 12. Схема контроллера вентилятора.
Рис. 13. Диаграммы иллюстрирующие работу контроллера вентилятора.
Встроенные RS-триггер и компаратор могут пригодиться для построения повышающего импульсного источника питания, из внешних элементов понадобятся операционный усилитель и несколько дискретных элементов. Если в качестве источника опорного напряжения использовать встроенный программируемый ЦАП, то получим регулируемый источник.
Рис. 14. Схема импульсного источника питания.
Итак, мы рассмотрели некоторые примеры применения встроенных RS-триггера и компараторов микроконтроллеров PIC производства компании Microchip. Естественно, что перечень возможных применений встроенной периферии не ограничен приведенными примерами. Новые PIC микроконтроллеры имеют массу возможностей по конфигурированию и совместному использованию различных периферийных модулей, включая источники опорных напряжений, ЦАП, АЦП, модулей ШИМ, таймерами, входными сигналами, поэтому возможности их совместного применения ограничены лишь фантазией разработчика.
Дискуссия
А в каких контроллерах присутствует триггер? Что-то в тех, которые использую не встречал.
PIC16F 616, 610, 882/3/4/6/7, 631, семейство PIC16F690 (677,685,687,689), PIC16F1xxx, PIC18F1xK50, PIC18F1xK22 ну и будущие контроллеры!