Программа Сервисный Центр
0

Использование встроенного UART для детектирования прерывания по фронту


Vishwas Vaidya Прерывания по фронту в микропроцессорных устройствах удобны для обработки асинхронных событий, таких как срабатывание переключателей, изменение уровней сигналов и возникновение импульсов. Однако, в простых микроконтроллерах, как правило, ресурсов для обработки подобных прерываний немного. С помощью неиспользуемого канала UART микроконтроллера (если таковой найдется) можно сделать детектор фронтов. Это позволит избежать перехода к более дорогому контроллеру в ситуации, когда все прочие средства генерации прерываний по фронту исчерпаны, а приложению потребовался еще один вход внешнего прерывания. В предлагаемой схеме вывод Rx асинхронного приемника выполняет функцию входа прерывания по фронту. Когда на вывод Rx приходит отрицательный перепад напряжения, UART интерпретирует его как появление стартового бита. Тактируемый импульсами внутренней синхронизации UART, продолжая выборку входного сигнала, считывает значение 0x00 при установленном бите «break error». Ошибка обусловлена тем, что к моменту ожидаемого появления стоп-бита на входе продолжает сохраняться низкий логический уровень. Процедура обработки прерывания детектирует состояние «нулевой байт с ошибкой разрыва» и сигнализирует программе об обнаружении перепада во входном сигнале. Для минимизации времени реакции на появление фронта скорость обмена UART должна быть установлена достаточно высокой, но, в то же время, достаточно низкой для того, чтобы отфильтровывать дребезг и шумовые ошибки.
Использование встроенного UART для детектирования прерывания по фронту
Рисунок 1. Отрицательный перепад напряжения UART воспринимает как начало стартового импульса. Если положительный перепад будет принят раньше стопового бита (красная линия), это будет интерпретировано как помеха, а байт проигнорирован. При правильном выборе скорости обмена, в случае, когда ложные выбросы вызывают прерывание контроллера, вход возвращается в высокое логическое состояние раньше, чем завершается выборка байта (Рисунок 1). Процедура обработки прерываний детектирует теперь «нулевой байт» без каких-либо ошибок. Прикладная программа (Рисунок 2) распознает эту ситуацию как помеху и игнорирует ее.
Использование встроенного UART для детектирования прерывания по фронту
Рисунок 2. Блок схема алгоритма показывает, как работает основанный на UART детектор фронта. Если в позициях b0…b7 будут приняты нули, и бит «break error» установлен, алгоритм распознает фронт импульса. Если необходимо детектировать положительный перепад напряжения, просто добавьте транзисторный инвертор перед входом микроконтроллера.На английском языке: Use An On-Chip UART To Detect An Edge-Triggered InterruptПеревод: AlexAAN по заказу РадиоЛоцман

По материалам сайта www.rlocman.ru

 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Декабрь 2016 (12)
Ноябрь 2016 (42)
Октябрь 2016 (34)
Сентябрь 2016 (38)
Август 2016 (34)
Июль 2016 (36)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"