Принципы работы сенсорных панелей и их поддержка в микроконтроллерах NXP
Наиболее часто в электронике применяются резистивные и емкостные сенсорные панели. Основные задачи при разработке приборов с использованием данных устройств - это достижение высокой точности определения координат воздействия, снижение шумов, калибровка и достижение низкого энергопотребления.
Технология сенсорных панелейЧто такое сенсорная панель дисплея? Обычно это прозрачная панель, расположенная над самим дисплеем, которая восприимчива к прикосновению с последующей возможностью точного определения его координат. Существует несколько основных технологий построения сенсорных панелей: резистивная, емкостная, инфракрасная. Наиболее распространенными являются резистивные панели, хотя в последнее время емкостные приобретают все большую популярность.
Емкостная технология
Принцип работы панели на данном принципе действия основан на определении события нажатия посредством фиксирования изменения силы поля на углах емкостной пластины.
Слабый сигнал переменного тока подается на каждый угол пластины. Прикосновение любого проводящего материала к пластине будет вызывать утечку тока, что и фиксируется датчиками на тех же углах.
Слабым местом данной технологии является потребность в сложной математической обработке при определении координат прикосновения. Кроме того, экраны уже не воспринимают нажатие через перчатку.
Резистивная технология
Панель состоит из двух пластин, расположенных друг над другом. На одну из пластин нанесен слой проводящего резистивного материала в вертикальной, а на другой пластине - в горизонтальной ориентации, и от каждой пластины выведены по 2 электрода.
Детектирование нажатия в резистивных панелях заключается в определении наличия контакта между двумя проводящими пластинами.
После того как нажатие зафиксировано, производится измерение координаты точки воздействия: сначала по горизонтали, затем - по вертикали. Само определение координат сводится к определению сопротивления в каждом из плеч получившегося «резисторного» делителя.
Даная технология использует простейшую математику для определения координат.
Резистивные панели легче, чем емкостные, хотя могут ослаблять яркость экрана, находящегося под ними, на 15%, а в отдельных случаях - и еще больше.
Основные нюансы при использовании резистивных панелейРазрешающая сила сенсорных панелей резистивного типа ограничена разрядностью АЦП-контроллера и разностью напряжения, которое подается на электроды панели. Так, например, 10-битное АЦП может измерять в идеальном варианте до 1024 уровней напряжения (иначе говоря, точек на сенсорной панели).
Однако, на практике есть некоторые ограничения: так, например, при подаче на панель напряжения 3,3 В рабочие напряжения окажутся в пределах от 0,4 В до 2,9 В, давая рабочий диапазон только 2,5 В. И для дисплея 800x600 это дает 775 уникальных уровней (от изначальных 1024), которые можно будет измерить. Диапазоны рабочих напряжений у разных моделей панелей могут несколько отличаться.
Другая проблема для определения координат - это устранение влияния шумов и достижение приемлемой повторяемости результата. Здесь важную роль играет даже малейшее варьирование напряжения питания. На точность полученного результата прямо пропорционально влияет точность АЦП. Кроме того, неудачное расположение гибкого шлейфа, соединяющего сенсорную панель и контроллер, может быть причиной различных помех. Для того, чтобы свести ошибки к минимуму при разработке контроллера АЦП следует обратить внимание на несколько важных правил:
- Разрешение АЦП должно быть выше разрешения дисплея.
- Напряжение работы панели должно быть как можно выше, чтобы свести к минимуму влияние шумов.
- Для улучшения стабильности показаний можно использовать конденсаторы на линиях. Однако не следует ими «злоупотреблять», так как они влияют на потребляемую мощность.
- Усредняющие фильтры могут несколько улучшить точность.
Кроме всего прочего, у панелей есть важный недостаток: они могу изменять свои параметры с течением времени. Это происходит из-за износа резистивных пластин. Кроме того, каждая панель в своем роде уникальна и требует также изначальной калибровки.
Потому время от времени следует вызывать процедуру калибрования экрана. Программно это реализуется посредством сопоставления координат нескольких точек на экране с напряжениями панели, соответствующими этим точкам. Затем вводятся поправки в алгоритм пересчета напряжений в логические координаты.
ЭнергопотреблениеРезистивные панели - малопотребляющие устройства, потому что требуют питания только тогда, когда происходит нажатие.
Сам контроль нажатия требует крайне мало энергии, так как не подразумевает протекания тока через панель. Общее сопротивление каждой панели составляет обычно от нескольких сотен Ом до нескольких кОм. Поэтому потребляемый ток будет напрямую зависеть от напряжения питания панели, и чем напряжение меньше, тем будет ниже потребление, однако сильное снижение может повредить точности измерения. Также, по возможности, следует избегать конденсаторных фильтров. Отрицательной стороной фильтрации может стать сильно увеличенное время установки напряжения делителя, что может также стать причиной ошибочного восприятия нажатия.
Принцип измерения координаты воздействия на сенсорную панельОпределение события нажатия сводится к подаче опорного напряжения на одну пластину и земли - на другую пластину. Как только верхняя пластина (см. рисунок 1) в результате воздействия извне коснется нижней, контролируемое напряжение упадет, и простой логический вход это зафиксирует.
Рис. 1. Простейшее определение нажатия на панель
Как только контроллер обнаружил нажатие на сенсорную панель, для определения координаты задействуется АЦП. На рисунке 2 представлен пример того, как можно измерить координату в одной из плоскостей (во второй плоскости измерение будет произведено аналогичным образом).
Рис. 2. Измерения координаты
После измерения обеих координат напряжение с пластин снимается, и экран возвращается в режим пониженного энергопотребления.
Аппаратная поддержка сенсорных панелей в семействах микроконтроллеров LH7 и LPC3000 от NXPВ ARM-микроконтроллеры NXP старших семейств встроены аппаратные контроллеры сенсорных панелей. Базовой частью аппаратного контроллера является 10-битный АЦП. Кроме того, контроллер снабжен аппаратным детектором нажатия и силовыми ключами для управления измерением. Процесс измерения полностью автоматизирован и не требует вмешательства контроллера. Также встроенный контроллер не требует никаких внешних компонентов.
Контроллер программируется на автоматическое определение нажатия. Как только нажатие будет зафиксировано, запустится автоматический замер координат в обеих плоскостях. Этим замером управляет логический автомат. Он может быть настроен под конкретный частный случай и содержит регулировки времени установления сигнала. В нем также заданы очередность открывания полевых ключей и значение выбранного опорного напряжения.
Рис. 3. Устройство аппаратного TS-контроллера
Как только координаты будут готовы, совершится вызов специализированного прерывания, после чего координаты будут программно доступны в FIFO-стеке АЦП. Данные значения считываются, а затем контроллер сенсорной панели снова переводится в режим низкого потребления с ожиданием прикосновения.
Реализация поддержки сенсорной панели в микроконтроллерах NXP на базе АЦП
Аппаратная реализация
АЦП микроконтроллеров NXP позволяет достаточно просто реализовать контроль сенсорных панелей. Кроме АЦП потребуется несколько логических входов-выходов с возможностью подачи достаточного тока на сенсорную панель напряжения питания. Если требуется достаточно большой ток для пропускания через панели, то, возможно, потребуются внешние полевые ключи.
Пример подключения микроконтроллера к сенсорной панели представлен на рисунке 4.
Рис. 4. Подключение сенсорной панели к микроконтроллера общего назначения
Как видно из рисунка, для реализации контроллера потребуется 2 канала АЦП, 4 вывода общего назначения, а также отключаемый источник опорного напряжения.
Рис. 5. Калибрование сенсорной панели по 2 точкам
Программная реализация
Первая задача - это определение события нажатия:
- GPIO1-3 устанавливаются в состояние входов, а на GPIO4 устанавливается низкий логический уровень. После этого разрешается прерывание на GPIO1. Как только будет произведено нажатие на панель, сработает прерывание, и далее останется определить координаты точки нажатия.
Координаты определяются так:
- GPIO2 устанавливается в режим выхода и в состояние логической 1, а GPIO4 - в состояние выхода и логического 0, GPIO1 и GPIO3 переводятся в режим входов.
- Производится преобразование на канале ADC1. Так находится условная координата по X.
- GPIO1 устанавливается в режим выхода и в состояние логической 1, а GPIO3 в состояние выхода и логического 0, GPIO2 и GPIO4 переводятся в режим входов.
- Производится преобразование на канале ADC2. Так находится условная координата по Y.
- Далее система переводится снова в режим ожидания нажатия.
Калибровка
Калибровка дисплея производится по двум и более точкам. Возьмем для примера дисплей 320x240. И разместим точки калибрования на координатах (10; 10) и (310; 230). Рассмотрим калибрование только по оси X (по Y будет все аналогично). Итак, измеренные напряжения на обеих точках оказались равными 3,08 и 0,28 В соответственно.
Определим приращение напряжения на каждый пиксель путем расчета простейшей пропорции:
Далее, можно найти значения напряжения на краю экрана
И теперь для определения координаты любой точки из полученного напряжения нужно следовать формуле:
где Uх - измеренное напряжение.
Например, для точки с напряжением 1,8 В, координата будет равна 147.
Вывод
Использование сенсорных панелей совместно с микроконтроллерами NXP представляется достаточно удобным и экономически выгодным решением
Получение технической информации, заказ образцов, поставка -
e-mail: mcu.vesti@compel.ru
Ваш комментарий к статье | ||||