0
Использование встроенного UART для детектирования прерывания по фронту
Vishwas Vaidya
Прерывания по фронту в микропроцессорных устройствах удобны для обработки асинхронных событий, таких как срабатывание переключателей, изменение уровней сигналов и возникновение импульсов. Однако, в простых микроконтроллерах, как правило, ресурсов для обработки подобных прерываний немного.
С помощью неиспользуемого канала UART микроконтроллера (если таковой найдется) можно сделать детектор фронтов. Это позволит избежать перехода к более дорогому контроллеру в ситуации, когда все прочие средства генерации прерываний по фронту исчерпаны, а приложению потребовался еще один вход внешнего прерывания.
В предлагаемой схеме вывод Rx асинхронного приемника выполняет функцию входа прерывания по фронту. Когда на вывод Rx приходит отрицательный перепад напряжения, UART интерпретирует его как появление стартового бита.
Тактируемый импульсами внутренней синхронизации UART, продолжая выборку входного сигнала, считывает значение 0x00 при установленном бите «break error». Ошибка обусловлена тем, что к моменту ожидаемого появления стоп-бита на входе продолжает сохраняться низкий логический уровень.
Процедура обработки прерывания детектирует состояние «нулевой байт с ошибкой разрыва» и сигнализирует программе об обнаружении перепада во входном сигнале. Для минимизации времени реакции на появление фронта скорость обмена UART должна быть установлена достаточно высокой, но, в то же время, достаточно низкой для того, чтобы отфильтровывать дребезг и шумовые ошибки.
![]() ![]() По материалам сайта www.rlocman.ru
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости. Популярные статьи по ремонту audio - videoНовые статьи по радиоэлектронике |