Интерфейс четырехпроводного сенсорного экрана с микроконтроллером LPC2478
Введение
Микроконтроллер LPC2478 основан на ядре ARM7TDMI-S, работающем на частотах до 72 МГц вместе с широким диапазоном периферийных устройств, включая интерфейс 10/100 Ethernet, CAN 2.0B, USB 2.0 Host/Device/OTG, четыре последовательных асинхронных порта, два высокоскоростных порта SSP и т.д. Но основное отличие от остальных представителей семейства LPC2000 - наличие на кристалле полнофункционального контроллера ЖК-дисплея.
Данный контроллер поддерживает разрешение экрана до 1024x768 точек, глубину цвета до 24 бит и виды экранов TFT и STN.
При использовании графических приложений с интерфейсом пользователя остро встает вопрос о способе ввода информации в разрабатываемое устройство. Вводя в устройство клавиатуру, разработчику необходимо решать одновременно несколько вопросов: сколько клавиш на клавиатуре будет необходимо и достаточно для удобного ввода информации, где разместить клавиатуру на устройстве, и т.д. С использованием сенсорных экранов все эти вопросы сразу снимаются. Сенсорный экран способен обеспечить полнофункциональный свободный или контекстный ввод информации, и при этом нет необходимости увеличивать габариты устройства для размещения клавиатуры или трекбола.
Существует несколько видов сенсорных экранов, основанных на различных физических принципах:
- резистивные,
- емкостные,
- ультразвуковые,
- оптические, и т.д.
В статье рассматривается принцип действия четырехпроводного сенсорного экрана как наиболее популярного на сегодняшний день для встраиваемых применений.
Основы четырехпроводных сенсорных экранов
Четырехпроводной резистивный сенсорный экран - это датчик, состоящий из двух прозрачных пластин, имеющих идеальное и однородное удельное сопротивление и обычно отделяемых изоляционным пространством. Металлизированные контакты «x»-уровня идут вдоль «y»-направления таким образом, что сопротивление измеряется между двумя концами «x»-направления. Точно так же «y»-уровень имеет металлизированные контакты, которые идут в «x»-направлении так, чтобы сопротивление было измерено по оси y (см. рис. 1).
Рис. 1. Структура четырехпроводного резистивного экрана
При касании с достаточным давлением поверхность основной пластины в месте касания контактирует с пластиной основания. В точке контакта слой основания фактически делит главный слой на два последовательных резистора таким же образом, как скользящий контакт на потенциометре делит потенциометр на два резистора. Концы основной пластины походят на два конца потенциометра, где другая пластина служит контактом. (см. рис. 2).
Рис. 2. Резистивный делитель, образующийся при касании экрана
В соответствии со смещением, каждая пластина может функционировать как делитель напряжения, где выходное напряжение представляет ортогональную координату точки контакта.
Смещение оси X позволяет нам использовать ось Y, чтобы измерить сигнал по оси X. Аналогично, смещение оси Y позволяет нам использовать ось X, чтобы измерить сигнал по оси Y. (см. рис. 3).
Рис. 3. Измерение сигнала по осям X и Y
Смещение обеих осей может быть использовано, чтобы с помощью аппаратных средств обнаружить, когда экран был затронут, и генерировать прерывание (см. рис. 4).
Рис. 4. Определение факта прикосновения
В дополнение к чтению координат X и Y также возможно определить, что контакт произошел, и, используя это условие, генерировать прерывание. При обнаружении состояния контакта, сигнал X+ от экрана соединен с выводом порта, настроенного как вход с высоким сопротивлением и подключенным через резистор питанием (далее ПКНП - подтяжка к напряжению питания) (см. рис. 4). Вывод Y- соединен с другим выводом порта, настроенным как выход логического нуля. Оставшиеся выходы X- и Y+ соединены с контактами порта, запрограммированного, как входы без высокого входного сопротивления, фактически эти контакты остаются открытыми.
При нажатии на экран делитель напряжения создает разницу между напряжением ПКНП и сопротивлением экрана контакта (Rxa и Ryb на рисунке 4). Сопротивление экрана значительно меньше, чем сопротивление ПКНП, связанной с X+. Когда происходит контакт, напряжение, замеренное на контакте X+, будет близко к нулю. Это и является основанием вызова прерывания.
Некоторые микроконтроллеры NXP, например, LPC3250, имеют контроллер сенсорного экрана непосредственно на кристалле. Преимущества такой реализации:
- автоматическое обнаружение контакта,
- задержка на время урегулирования,
- измерение положения X и Y,
- обеспечение прерывания при окончании преобразования АЦП.
Это минимизирует нагрузку на ядро и снижает время разработки программного обеспечения. Однако аппаратная реализация контроллера сенсорного экрана требует увеличения площади кристалла, что повышает стоимость микроконтроллера.
Интерфейс четырехпроводных сенсорных экранов
Основные требования
Сопротивление каждой оси сенсорного экрана обычно меньше, чем 1 К. В описании для одного модуля, например, указано минимальное сопротивление X-направления 300 Ом и максимальное 900 Ом. Точно так же сопротивление Y-направления определено от 200 до 650 Ом. Это выполняется, чтобы согласовать сопротивление выходов порта микроконтроллера и сенсорного экрана.
В случае семейства LPC2300, измерения X-положения сделаны так, что контакт X+ согласован с логической единицей, а контакт X- - с логическим нулем соответствующих выводов порта. Вход A/D, подсоединенный к контакту Y+, используется, чтобы измерить напряжение между точкой контакта и VSS, при этом контакт Y- должен быть «открыт». Это достигается путем настройки соответствующего вывода порта как входного без внутренней подтяжки к напряжению питания или к земле. Y-измерения положения сделаны аналогичным образом.
Смещение и измерения для каждого из четырех проводов сенсорного экрана показаны в таблице 1.
Таблица 1. Интерфейс сенсорного экранаФункции | Сигналы сенсорного экрана | |||
---|---|---|---|---|
X+ | Y+ | X- | Y- | |
Аппаратные средства определения нажатия | Цифровой вход с ПКНП | открыт | открыт | Vss |
Чтение X-позиции | Источник напряжения | Измерение напряжения | Vss | открыт |
Чтение Y-позиции | Измерение напряжения | Источник напряжения | открыт | Vss |
Оба вывода, X- и Y-, должны быть или открытыми или подключенными к Vss, как следует из таблицы 1. Этому требованию удовлетворяет классическая конфигурация с открытым коллектором.
Как показано в таблице 1, и X+, и Y+ должны быть или источником напряжения, или точкой измерения напряжения. Источник напряжения может быть реализован при функционировании вывода как порта выхода. Измерение напряжения осуществляется с помощью АЦП. Таким образом сигналы X+ и Y+ должны быть подключены к выводам МК, которые имеют и цифровой выход, и выход АЦП. Помимо этого, если требуется аппаратное обнаружение нажатия, сигнал X+ должен быть связан с выводом, который имеет цифровой вход с подключением питания через умеренно высокий резистор.
Назначение контактов ввода/вывода
Основываясь на изложенных выше требованиях, сенсорный экран следует подключать к МК, как показано в таблице 2.
Таблица 2. Назначение выводов сенсорного экранаФункции | Сигналы сенсорного экрана | |||
---|---|---|---|---|
X+ (P0.24/AD0.1) | Y+ (P0.25/AD0.2) | X- (P0.8) | Y- (P0.9) | |
Аппаратные средства определения нажатия | Цифровой вход с ПКНП | Цифровой вход без ПКНП | Цифровой вход без ПКНП | Выход «логический ноль» |
Чтение X-позиции | Выход «логическая единица» | AD0.2 | Выход «логический ноль» | Вход без ПКНП |
Чтение Y-позиции | AD0.1 | Выход «логическая единица» | Вход без ПКНП | Выход «логический ноль» |
На микроконтроллере LPC2478 максимальное сопротивление порта с ПКНП определено равным 100 Ом. Наличие ПКНП определяет верхний предел аналогово-цифрового преобразования, а наличие подтяжки к земле - его нижний предел. Во многих ситуациях это не имеет решающего значения. Для графического дисплея разрешением 320x240 получается масштабированное преобразование с 10-битного АЦП (1024 градации) до 320 (или 240), а значит, потеря некоторого диапазона АЦП не важна. Рассмотрим дисплейный модуль с разрешением 240 точек в вертикальном направлении, с минимальным сопротивлением экрана 200 Ом в Y-направлении. Каждый из выводов, используемых для измерения Y-направления, Y+ и Y-, вносит по 100 Ом последовательно в общее сопротивление Y-направления сенсорного экрана. Только половина напряжения появляется в экране. При использовании 10-битного АЦП для представления 240 пикселей в Y-направлении будут доступны 512 значений.
Кроме того, когда сенсорный экран подключен к дисплейному модулю, четыре угловых пикселя дисплея часто не совпадают с крайними точкамB пластин сенсорного экрана. Чтобы сопоставить точку нажатия с позицией пикселя на дисплее, необходима калибровка.
Программное обеспечение, используемое для реализации сенсорного экрана, и описание функций, можно найти по адресу: http://www.standardics.nxp.com/support/documents/microcontrollers/pdf/an10675.pdf.
Ответственный за направление в КОМПЭЛе - Валерий Куликов
Получение технической информации, заказ образцов, поставка -
e-mail: mcu.vesti@compel.ru
Ваш комментарий к статье | ||||