Советы по контроллерам сенсорных экранов

№ 2’2004
Burr-Brown выпускает ряд специализированных аналого-цифровых преобразователей (АЦП) для сенсорных экранов. Конвертеры ADS7843, ADS7845 и новый ADS7846 предназначены для применения в качестве преобразователей сигналов от сенсорных экранов. Разработчики, использующие эти устройства, могут почерпнуть много полезного из данной статьи. В большинстве примеров обсуждается прибор ADS7843, но описанные методы применимы и к остальным названным преобразователям.

Burr-Brown выпускает ряд специализированных аналого-цифровых преобразователей (АЦП) для сенсорных экранов. Конвертеры ADS7843, ADS7845 и новый ADS7846 предназначены для применения в качестве преобразователей сигналов от сенсорных экранов. Разработчики, использующие эти устройства, могут почерпнуть много полезного из данной статьи. В большинстве примеров обсуждается прибор ADS7843, но описанные методы применимы и к остальным названным преобразователям.

Начнем с рассмотрения теории работы резистивного сенсорного экрана и использования этих специализированных аналого-цифровых преобразователей с такими экранами. В статье будут описаны технические решения, позволяющие повысить точность и снизить ошибки, исследована работа с применением специальных ручек (PENIRQ), описаны методы защиты конвертеров от электростатического потенциала (ЭСП) и обсуждены проблемы реализации интерфейсов связи с различными наиболее популярными микроконтроллерами.

Резистивные сенсорные экраны

Принцип работы резистивного сенсорного экрана основан на приложении напряжения к резистивной матрице и измерении сопротивления в точке касания экрана устройством ввода, ручкой или пальцем. Изменение коэффициента передачи резистивного делителя указывает точку касания на сенсорном экране.

Две наиболее популярные архитектуры резистивных экранов используют 4- или 5-проводную конфигурацию (рис. 1). Резистивные цепочки позволяют определить две координаты точки касания, хотя у экранов с 4-проводной конфигурацией может быть проведено и третье измерение — измерение давления нажатия.

Рис. 1. Резистивные цепочки 4- и 5-проводных сенсорных экранов
Рис. 1. Резистивные цепочки 4- и 5-проводных сенсорных экранов

Измерение пары координат у 4-проводных сенсорных экранов

Устройство 4-проводного сенсорного экрана показано на рис. 2. Как видно, он состоит из двух прозрачных резистивных слоев.

В 4-проводных сенсорных экранах напряжение прикладывается вдоль вертикальной или горизонтальной резистивной цепочки. Аналого-цифровой преобразователь измеряет разность потенциалов в точке касания экрана. При измерении координаты Y указующего устройства происходит подключение входа X+ к встроенному преобразователю, а ко входам Y– и Y+ — выходов драйверов, после чего производится оцифровка напряжения на входе X+. В точке касания происходит изменение напряжения за счет образовавшегося резистивного делителя. При таком методе измерения горизонтальная цепочка резисторов не оказывает влияния за счет того, что вход X + подключен ко входу аналого-цифрового преобразователя, имеющего очень высокое полное входное сопротивление.

Рис. 2. Конструкция 4-проводного сенсорного экрана
Рис. 2. Конструкция 4-проводного сенсорного экрана
Рис. 3. Конструкция 5-проводного сенсорного экрана
Рис. 3. Конструкция 5-проводного сенсорного экрана

При определении горизонтальной координаты Х ко входу конвертера данных подключается вход Y+. Этот метод позволяет определить обе координаты (X и Y) точки касания и передать их процессору обработки.

Измерение пары координат у 5-проводных сенсорных экранов

Конструкция 5-проводного сенсорного экрана показана на рис. 3. Резистивная панель состоит из одного прозрачного резистивного слоя и верхней металлической контактной площадки, отделенной изоляционными прокладками.

В 5-проводных сенсорных экранах напряжение прикладывается к углам верхнего резистивного слоя и при помощи пятого провода измеряется сопротивление на скользящем вертикальном контакте. Аналого-цифровой преобразователь измеряет напряжение на скользящем контакте, которое и указывает силу нажатия на экран. Измерение вертикальной координаты производится при подключении верхних левого и правого углов резистивного слоя к V+, а нижних левого и правого углов — к общему выводу (земле). При этом происходит подключение скользящего контакта к встроенному преобразователю, который и измеряет на нем напряжение. Величина измеренного напряжения определяется коэффициентом передачи образованного резистивного делителя. При измерении горизонтальной координаты левые верхний и нижний углы подсоединяются к общему выводу, правые верхний и нижний углы — к V+, после чего измеряется напряжение на подвижном контакте, несущее информацию о горизонтальной координате точки касания.

Дифференциальный и несимметричный режимы

Точность и надежность преобразования зависят от способности конвертера компенсировать постоянно меняющиеся условия работы. Эти изменяющиеся состояния воздействуют на напряжения, несущие информацию о координатах Y и X. Например, если аналого-цифровой преобразователь настроен на измерение абсолютного значения напряжения (несимметричный режим измерения), то изменение выходного напряжения драйвера будет вносить ошибку в измеряемые величины. Однако аналого-цифровой преобразователь, настроенный на измерение коэффициента передачи резистивного делителя (дифференциальный режим измерения), способен фактически скомпенсировать эти ошибки.

Переходные процессы в сенсорных экранах

При нажатии или касании сенсорного экрана на уровень напряжения в точке контакта влияют два механизма. Оба эти механизма вызывают колебания напряжения (дребезг), которые в течение некоторого времени устанавливаются к определенному постоянному уровню.

К этим механизмам относятся:

  1. механические колебания, вызванные вибрацией при нажатии на верхний слой экрана;
  2. электрические колебания, вызванные наличием паразитной емкости между верхним и нижним слоями сенсорного экрана и входом прибора ADS7843, который их опрашивает.

Несимметричный режим

В несимметричном режиме при обнаружении касания к сенсорному экрану процессор, управляющий ADS7843, пошлет служебный байт, который переведет ADS7843 в режим преобразования. После этого ADS7843 начинает подавать напряжение через встроенные ключи на полевых транзисторах и начнет собирать данные о координатах точки касания, что приведет к увеличению напряжения в точке касания. В течение некоторого времени будут наблюдаться колебания (дребезг), которые через некоторое время затухнут. По истечении времени сбора все внутренние ключи выключатся, и аналого-цифровой преобразователь перейдет в режим преобразования. Если следующий управляющий байт не поступит в течение режима преобразования, то ADS7843 перейдет в режим отключения или в режим ожидания следующей команды. При большой емкости между слоями панели (обычно применяемой для фильтрации помех) требуется выдержать время установления для того, чтобы напряжения, соответствующие паре координат, успели принять стабильные значения. В несимметричном режиме входное напряжение должно установиться не позднее, чем за три тактовых периода до начала формирования слова входных данных, иначе они будут содержать неверные значения.

Дифференциальный режим

Работа АЦП в дифференциальном режиме похожа на работу в несимметричном режиме, за исключением того, что внутренние ключи должны быть включены от начала сбора данных до окончания преобразования. При преобразовании в дифференциальном режиме напряжение перпендикулярной линии используется в качестве опорного, что позволяет измерять не абсолютное значение напряжения, а коэффициент передачи резистивного делителя. Это означает, что если наряжение на перпендикулярной линии изменится за счет изменения напряжения источника питания, за счет изменения полного выходного сопротивления драйвера при изменении его напряжения питания или температуры или за счет изменения полного сопротивления сенсорного экрана из-за изменения температуры, то это изменение будет скомпенсировано за счет работы АЦП в режиме измерения коэффициента передачи.

Однако если следующая команда управления выбирает тот же канал ADS7843, что и предыдущая команда, и если поступает она до окончания режима преобразования, то внутренние ключи прибора не отключатся после окончания преобразования. Это даст входному напряжению больше времени на установление, что позволит считать следующей командой стабилизировавшееся значение.

Разность между дифференциальным и несимметричным режимами

И в несимметричном, и в дифференциальном режимах, ADS7843 выбирает входной аналоговый сигнал от сенсорного дисплея только через три тактовых цикла (tACQ на рис. 4). Следовательно, за время tACQ входное напряжение должно установиться, иначе прибор ADS7843 конвертирует неверное значение напряжения.

При подключении драйвера к сенсорному экрану напряжение сначала резко нарастает, а потом, как показано на рис. 4, идет колебательный процесс установки напряжения. Для того чтобы выбранное АЦП прибора значение не содержало ошибки, выборку сигнала надо осуществлять через некоторое время после подключения драйвера, которое требуется для того, чтобы переходной колебательный процесс закончился. Есть два метода обеспечения этого условия.

Первый метод показан на рис. 4, a: в этом методе ADS7843 работает в несимметричном режиме и использует относительно низкочастотные тактовые импульсы. Низкая частота тактовых импульсов приводит к увеличению длительности трех тактов, предшествующих выборке сигнала. Драйверы подключаются в начале первого тактового цикла, и для того, чтобы выбираемое значение не содержало ошибок, напряжение на резистивных матрицах сенсорных экранов должно установиться за последующие два тактовых цикла.

Второй метод показан на рис. 4, b: в этом методе прибор работает в дифференциальном режиме и использует тактовые импульсы с более высокой частотой. Управляющий байт В, как и при предыдущем методе, подключает драйверы, что приводит к тому, что напряжение на сенсорном экране сначала резко нарастает, а потом начинает устанавливаться к истинному значению. При этом прибор начинает выполнять преобразование входного сигнала, но сразу после его окончания прибор начинает выполнять второе преобразование, инициализируемое управляющим байтом С. Если управляющие байты В и С одинаковые, то внутренний переключатель X/Y прибора ADS7843 не будет выключать драйвер после завершения преобразования по первой команде (байт В). Таким образом, командой байта С будет выбрано и преобразовано уже установившееся значение напряжения, которое не будет содержать ошибки. В этом методе данные, полученные в результате первого преобразования, должны быть игнорированы, так как выборка сигнала для этого преобразования произвелась до окончания переходного колебательного процесса.

Рис. 4. Временные диаграммы работы прибора ADS7843 в несимметричном и дифференциальном режиме
Рис. 4. Временные диаграммы работы прибора ADS7843 в несимметричном и дифференциальном режиме

Другим преимуществом этого метода является возможность снижения потребления. На рис. 4 показано, что преобразование по команде байта С заканчивается (за счет применения более высокочастотных тактовых импульсов) до окончания преобразования по команде байта А. Это приводит к тому, что между окончанием предыдущего преобразования и началом следующего преобразования прибор может переключаться в режим пониженного потребления. В первом методе преобразование будет производиться за более длительное время, что приведет, скорее всего, к тому, что после окончания преобразования надо будет сразу же начинать следующее, что не позволит переводить прибор в режим пониженного потребления.

Использование высокочастотных тактовых импульсов в несимметричном режиме не даст никакого преимущества, так как в этом режиме по окончании преобразования, как показано на рис. 4, с, происходит отключение драйверов. Это приведет к тому, что после каждого преобразования напряжение на сенсорном экране будет устанавливаться заново, и к моменту выборки не будет успевать стабилизироваться.

Преимущества дифференциального режима:

  1. Способность обработки сигналов сенсорных экранов, имеющих большое время установки напряжения, без увеличения времени аналого-цифрового преобразования. На рис. 4 показано, что если управляющие байты В и С одинаковые, то внутренний переключатель X/Y прибора ADS7843 не будет отключать драйвер после окончания преобразования, выполняющегося по команде управляющего байта В. Это позволяет перед выборкой сигнала сформировать временную задержку, необходимую для установки напряжения.
  2. Данные, полученные в результате преобразования по команде управляющего байта В, являются ошибочными, так как выборка входного напряжения по этой команде происходит до того, как напряжение на резистивной матрице сенсорного экрана примет установившееся значение. Однако данные, полученные в результате выполнения преобразования по команде управляющего байта С, являются истинными, так как выборка сигнала при этом преобразовании осуществляется по окончании переходного процесса.

  3. Использование более высокочастотных тактовых импульсов позволяет получить время, в течение которого прибор ADS7843 может находиться в дежурном режиме, что позволит снизить общее потребление.

На рис. 4 показано, что преобразование по команде управляющего байта С заканчивается раньше, чем преобразование по команде управляющего байта А. После окончания преобразования по команде управляющего байта С можно перевести прибор ADS7843 в дежурный режим до начала следующего преобразования. Однако по окончании преобразования по команде управляющего байта А прибор вероятнее всего должен начинать уже следующее преобразование, что не позволит перевести прибор в дежурный режим.

Работа в условиях шумов

При работе с сенсорными экранами необходимо позаботиться о снижении помех для повышения качества измерения. Сенсорный экран подключен к высокоомному входу аналого-цифрового преобразователя и его можно сравнить с антенной, подключенной ко входу приемника. На сенсорный экран могут наводиться помехи от источников фоновой подсветки ЖКИ или от внешнего источника электромагнитных или радиоизлучений. Самый простой способ снизить влияние шумов — подключить ко входу АЦП конденсатор, который вместе с сопротивлением резистивной матрицы сенсорного экрана образует фильтр нижних частот (ФНЧ). Обычно ко всем входам и выходам подключают конденсатор емкостью 0,01 мкФ. На рис. 5 показаны кривые, позволяющие выбрать номинал конденсатора в зависимости от сопротивления резистивного слоя сенсорного экрана и требуемой частоты опроса координатных пар.

Рис. 5. Кривые выбора номинала конденсатора фильтра помех в зависимости от сопротивления резистивного слоя сенсорного экрана и частоты опроса координатных пар
Рис. 5. Кривые выбора номинала конденсатора фильтра помех в зависимости от сопротивления резистивного слоя сенсорного экрана и частоты опроса координатных пар

Для формирования ФНЧ не рекомендуется добавлять последовательно с выходом драйвера резистор, так как это приведет к дополнительному падению напряжения и, как следствие, — к снижению разрешающей способности конвертера. Снижение разрешающей способности зависит от полного сопротивления используемого сенсорного экрана.

Однако при установке конденсаторов возникает и другая проблема — увеличение времени установки напряжения после подключения драйвера. Независимо от скорости преобразования и режима работы аналого-цифрового преобразователя, напряжение на выходе сенсорного экрана никогда не установится точно, особенно если АЦП работает в несимметричном режиме. В дифференциальном режиме сенсорный экран подключен и в течение времени выборки, и в режиме измерения, и в дежурном режиме. В зависимости от постоянной времени RC-цепочки, образованной полным сопротивлением резистивного слоя и конденсатором фильтра, для получения данных с заданной точностью может потребоваться несколько циклов преобразования.

Есть несколько способов получения более точных результатов. Первый способ — увеличение времени выборки. При этом методе производится увеличение длительности 6, 7 и 8 синхроимпульсов. Для обеспечения 12-битной точности выборку сигнала надо осуществлять через период времени, равный не менее 9 постоянным времени. Это может быть обеспечено за счет увеличения длительности 6, 7 и 8 тактовых импульсов или за счет введения дополнительного неучитываемого преобразования. Минимальная частота синхроимпульсов для обеспечения постоянства выбираемого напряжения должна быть 10 кГц. Второй способ — сравнение в цифровом виде нескольких результатов измерения.

Но, тем не менее, в некоторых прикладных программах уровень шума может иметь очень большое значение, в этом случае может потребоваться дополнительная фильтрация входных сигналов для обеспечения устойчивого чтения. Для обеспечения нужного уровня фильтрации в таких приложениях может понадобиться установить на всех четырех линиях ввода-вывода LC-фильтры.

Прерывание при нажатии PENIRQ

Функция прерывания при нажатии в приборе ADS7843 реализована при помощи простой аналоговой схемы — встроенного диода с открытым анодом. Вывод PENIRQ просто подключается через резистор к питанию. На рис. 6 показана упрощенная схема прерывания при нажатии, которая подключается при активизации дежурного режима и разрешении прерывания при нажатии (при этом конфигурационные биты PD1 и PD0 должны быть сброшены в 0).

При отсутствии нажатия на сенсорный экран ток через внутренний диод прибора ADS7843 не течет (за исключением незначительного тока утечки). Уровень напряжения в точке А приблизительно равен напряжению питания VCC.

Рис. 6. Упрощенная схема прибора ADS7843 при PD0, PD1 = 00
Рис. 6. Упрощенная схема прибора ADS7843 при PD0, PD1 = 00

При нажатии на сенсорный экран через внутренний диод потечет ток за счет того, что появится путь для постоянного тока от плюса питания через диод к общему выводу (на рис. 6 ток протекания тока IF показан пунктирной линией). Теперь напряжение в точке А станет ниже на значение, равное падению напряжения на открытом диоде. Снизившийся уровень напряжения в этой точке может сигнализировать микропроцессору о нажатии на сенсорный экран. Процессор при этом начинает выполнять процедуру обработки прерывания, в которой он активизирует прибор ADS7843 для выполнения преобразования.

Этот самый простой метод организации прерывания, показанный на рис. 6 и 7, вносит ошибку в результат преобразования АЦП. Эта ошибка часто называется ошибкой смещения, поскольку она вызвана протеканием постоянного тока через внутренний диод (см. путь протекания тока IF на рис. 7). Протекающий ток увеличивает напряжение на входе аналого-цифрового преобразователя и вносит в результат преобразования ошибку. Эта ошибка присутствует только при вычислении координаты Y, так как при вычислении координаты X этот внутренний диод оказывается включенным в обратном направлении.

На рис. 7 показана упрощенная схема прибора ADS7843, настроенного на измерение координаты Y (A2,тA1, A0 = 001).

Есть два пути протекания тока при нажатии на сенсорный экран (отмеченные на рис. 7 как IF и ITOUCH). Ток ITOUCH является сигнальным током, возникающим в результате нажатия на сенсорный экран и несущим информацию о координате точки нажатия, а ток IF — паразитный ток через диод, который вызывает ошибку смещения в преобразовании.

Рис. 7. Упрощенная схема прибора ADS7843 при A2, A1, A0 = 001
Рис. 7. Упрощенная схема прибора ADS7843 при A2, A1, A0 = 001

Ток IF не течет по всей поверхности сенсорного экрана. Если нажать на сенсорный экран около точки расположения диода (рис. 7), то напряжение на аноде диода будет маленьким и ток IF будет большой, при этом вносимая ошибка смещения будет велика. Однако если нажать на сенсорный экран около точки В, то диод окажется заперт напряжением VREF, ток IF будет очень маленьким и ошибка смещения будет незначительной.

Зависимость тока IF от координаты точки нажатия на сенсорный экран затрудняет программную коррекцию этой ошибки.

Методы коррекции ошибки смещения

На рис. 8 показан рекомендуемый метод снижения ошибки смещения.

В этом методе вывод PENIRQ подключен через резистор к выводу выбора кристалла nonCS, а не к линии питания VCC, как показано на рис. 7. Когда на вывод nonCS для инициализации прибора ADS7843 подан низкий уровень, этот уровень смещает внутренний диод в обратном направлении. Следовательно, через диод будет протекать только весьма незначительный обратный ток (ток утечки).

Рис. 8. Рекомендуемый метод снижения ошибки смещения
Рис. 8. Рекомендуемый метод снижения ошибки смещения
Рис. 9. Защита входа прибора ADS7843
Рис. 9. Защита входа прибора ADS7843

Значения подтягивающих резисторов R1 и R2 должны быть тщательно подобраны исходя из следующих условий:

  1. При снижении напряжения на выводе PENIRQ ввиду нажатия на сенсорный экран уровень напряжения на выводе nonCS должен быть достаточно высоким, чтобы не вызвать инициализацию прибора ADS7843. Это позволяет организовать совместное использование последовательной шины данных и предотвращает возникновение помех при работе других приборов.
  2. Так как ADS7843 включается при наличии на входе nonCS напряжения ниже 0,8 В, то R1 и R2 должны быть выбраны такими, чтобы даже в самом наихудшем случае напряжение на выводе nonCS было выше 0,8 В. Типовое значение номинала резистора R2 — 20 кОм.

  3. Значение сопротивления резистора R2 должно быть достаточно маленьким для того, чтобы обеспечить минимальное время реакции напряжения на выводе PENIRQ на касание экрана, так как некоторые процессоры не способны обнаружить медленно меняющиеся сигналы на входе прерывания.
  4. Схема прерывания при нажатии в приборах ADS7845 и ADS7846 реализована иначе, чем в приборе ADS7843. В приборах ADS7845 и ADS7846 при сканировании линий X и Y вывод встроенного диода PENIRQ подключается к общему проводу и вход X+ отключается от катода этого внутреннего диода, что позволяет исключить протекание тока диода в режиме измерения координат и позволяет избежать ошибок смещения.

Ложные переключения

Помехи на входе X+ могут вызывать ложные изменения сигнала прерывания при нажатии. Для фильтрации таких помех к выходу можно подключить RC-фильтр, состоящий из резистора номиналом 1 Ом, и конденсатора номиналом 0,01 мкФ.

Защита входа прибора ADS7843

На рис. 9 приведены некоторые рекомендации по защите входов прибора ADS7843 от высоковольтных выбросов, которые могут возникать на выходах сенсорного экрана. Эти выбросы могут возникать при воздействии высоковольтного ЭСП или от источников питания схем подсветки. Добавление ферритовых шайб и диодов привязки ко входам линий X и Y позволяет погасить эти выбросы прежде, чем они выведут из строя входы прибора ADS7843, а также позволяет ограничить входные сигналы, мгновенные значения которых выходят за пределы диапазона питания.

Примеры программ для управления работой прибора в дифференциальном режиме

Приведем два примера программ управления работой прибора ADS7843 в дифференциальном режиме.

На рис. 10 и 11 показаны два примера алгоритмов обмена данными прибора ADS7843 с микропроцессором. В обоих примерах подразумевается, что ADS7843 настроен на работу в дифференциальном режиме с протоколом выполнения преобразования за 16 тактов (см. рис. 6 в техническом описании прибора ADS7843). Эти программы возвращают результат преобразования напряжения горизонтальной оси в виде переменной DATAX, а вертикальной оси — DATAY.

Блок-схема 1

На рис. 10 показан пример реализации программы, расширяющей длительность выборки, которая позволяет избежать ошибок, возникающих при переходном процессе.

В этом примере переменная DATA1 используется для хранения результата текущего преобразования, DATA2 — для хранения предыдущего результата преобразования, а DATAX и DATAY — для хранения истинных значений координат X и Y. Переменные DATA1 и DATA2 используются для проверки правильности результатов преобразования — если эти переменные равны, принимается решение о том, что результат преобразования верен. Эта программа может использоваться с различными сенсорными экранами, независимо от постоянной времени этих экранов. Однако реализованный в этой программе метод может давать ошибки, если частота переходных колебаний равна или близка к частоте дискретизации.

Рис. 10
Рис. 10
Рис. 11
Рис. 11

Блок-схема 2

На рис. 11 приведен другой пример, в котором задержка на время переходных процессов также формируется программно, но в качестве верного результата берется результат последнего (n-го) преобразования. Эта программа намного проще предыдущей, но подходит только для экранов, имеющих подобные переходные характеристики. Этот метод, в отличие от предыдущего, за истинное значение принимает последний результат преобразования. Значение n зависит от времени установки напряжения на входе прибора ADS7843. Для правильного выбора значения n разработчик должен протестировать несколько однотипных сенсорных экранов.

Примечание: Если планируется активизировать дежурный режим прибора ADS7843 с включенной функцией PENIRQ, то необходимо выполнить дополнительный цикл преобразования со сброшенными битами PD1 и PD0. Однако если используется режим преобразования за 15 тактовых циклов, то можно сбросить биты PD1 и PD0 в ноль при выполнении преобразований по осям Y и X.

Литература

1. Application Bulletin. Touch Screen Controller Tips. http://focus.ti.com/lit/an/sbaa036/sbaa036.pdf.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *