Советы по контроллерам сенсорных экранов
Burr-Brown выпускает ряд специализированных аналого-цифровых преобразователей для сенсорных экранов. Конвертеры ADS7843, ADS7845 и новый ADS7846 предназначены для применения в качестве преобразователей сигналов от сенсорных экранов. Разработчики, использующие эти устройства, могут почерпнуть много полезного из данной статьи. В большинстве примеров обсуждается прибор ADS7843, но описанные методы применимы и к остальным названным преобразователям.
Начнем с рассмотрения теории работы резистивного сенсорного экрана и использования этих специализированных аналого-цифровых преобразователей с такими экранами. В статье будут описаны технические решения, позволяющие повысить точность и снизить ошибки, исследована работа с применением специальных ручек (PENIRQ), описаны методы защиты конвертеров от электростатического потенциала (ЭСП) и обсуждены проблемы реализации интерфейсов связи с различными наиболее популярными микроконтроллерами.
Резистивные сенсорные экраны.
Принцип работы резистивного сенсорного экрана основан на появлении приложении напряжения к резистивной матрице и измерении сопротивления в точке касания экрана устройством ввода, ручкой или пальцем. Изменение коэффициента передачи резистивного делителя указывает точку касания на сенсорном экране.
Две наиболее популярные архитектуры резистивных экранов используют 4 или 5 проводную конфигурацию (см. рисунок 1). Резистивные цепочки позволяют определить две координаты точки касания, хотя у экранов с 4 проводной конфигурацией может быть проведено и третье измерение- измерение давления нажатия.
Рисунок 1. Резистивные цепочки 4 - и 5 - проводных сенсорных экранов.
Измерение пары координат у 4 - проводных сенсорных экранов.
Устройство 4 - проводного сенсорного экрана показано на рисунке 2. Как видно он состоит из двух прозрачных резистивных слоев.
Рисунок 2. Конструкция 4 - проводного сенсорного экрана.
В 4 - проводных сенсорных экранах напряжение прикладывается вдоль вертикальной или горизонтальной резистивной цепочки. Аналого-цифровой преобразователь измеряет разность потенциалов в точке касания экрана. При измерении координаты Y указующего устройства происходит подключение входа X+ к встроенному преобразователю, а ко входам Y- и Y+ - выходов драйверов, после чего производится оцифровывание напряжения на входе X+. В точке касания происходит изменение напряжения за счет образовавшегося резистивного делителя. При таком методе измерения горизонтальная цепочка резисторов не оказывает влияния за счет того, что вход X + подключен ко входу аналого-цифрового преобразователя, имеющего очень высокое полное входное сопротивление.
При определении горизонтальной координаты Х ко входу конвертера данных подключается вход Y+. Этот метод позволяет определить обе координаты (X и Y) точки касания и передать их процессору обработки.
Измерение пары координат у 5 - проводных сенсорных экранов.
Конструкция 5 - проводного сенсорного экрана показана на рисунке 3. Резистивная панель состоит из одного прозрачного резистивного слоя и верхней металлической контактной площадкой, отделенной изоляционными прокладками.
Рисунок 3. Конструкция 5 - проводного сенсорного экрана.
В 5 - проводных сенсорных экранах напряжение прикладывается к углам верхнего резистивного слоя и при помощи пятого провода измеряется сопротивление на скользящем вертикальном контакте. Аналого-цифровой преобразователь измеряет напряжение на скользящем контакте, которое и указывает силу нажатия на экран. Измерение вертикальной координаты производится при подключении верхних левого и правого углов резистивного слоя к V+, а нижних левого и правого углов - к общему выводу (земле). При этом происходит подключение скользящего контакта к встроенному преобразователю, который и измеряет на нем напряжение. Величина измеренного напряжения определяется коэффициентом передачи образованного резистивного делителя. При измерении горизонтальной координаты левые верхний и нижний углы подсоединяются к общему выводу, правые верхний и нижний углы - к V+, после чего измеряется напряжение на подвижном контакте, несущее информацию о горизонтальной координате точки касания.
Отличия дифференциального и несимметричного режимов.
Точность и надежность преобразования зависят от способности конвертера компенсировать постоянно меняющиеся условия работы. Эти изменяющиеся состояния воздействуют на напряжения, несущие информацию о координатах Y и X. Например, если аналого-цифровой преобразователь настроен на измерение абсолютного значения напряжения (несимметричный режим измерения), то изменение выходного напряжения драйвера будет вносить ошибку в измеряемые величины. Однако, аналого-цифровой преобразователь, настроенный на измерение коэффициента передачи резистивного делителя (дифференциальный режим измерения), способен фактически скомпенсировать эти ошибки.
Переходные процессы в сенсорных экранах.
При нажатии или касании сенсорного экрана на уровень напряжения в точке контакта влияют два механизма. Оба эти механизма вызывают колебания напряжения (дребезг), которые в течение некоторого времени устанавливаются к определенному постоянному уровню.
К этим механизма относятся:
- Механические колебания, вызванные вибрацией при нажатии на верхний слой экрана.
- Электрические колебания, вызванные наличием паразитной емкости между верхним и нижним слоями сенсорного экрана и входом прибора ADS7843, который их опрашивает.
Несимметричный режим.
В несимметричном режиме при обнаружении касания к сенсорному экрану процессор, который управляет ADS7843, пошлет служебный байт, который переведет ADS7843 в режим преобразования. После этого ADS7843 начинает подавать напряжение через встроенные ключи на полевых транзисторах и начнет собирать данные о координатах точки касания, что приведет к увеличению напряжения в точке касания. В течение некоторого времени будут наблюдаться колебания (дребезг), которые через некоторое время затухнут. По истечении времени сбора все внутренние ключи выключатся, и аналого-цифровой преобразователь перейдет в режим преобразования. Если следующий управляющий байт не поступит в течение режима преобразования, то ADS7843 перейдет в режим отключения или в режим ожидания следующей команды. При большой емкости между слоями панели (обычно применяемой для фильтрации помех) требуется выдержать время установления для того, чтобы напряжения, соответствующие паре координат, успели принять стабильные значения. В несимметричном режиме входное напряжение должно установиться не позднее, чем за три тактовых периода до начала формирования слова входных данных, иначе они будут содержать неверные значения.
Дифференциальный режим.
Работа АЦП в дифференциальном режиме похожа на работу в несимметричном режиме, за исключением того, что внутренние ключи должны быть включены от начала сбора данных до окончания преобразования. При преобразовании в дифференциальном режиме напряжение перпендикулярной линии используется в качестве опорного, что позволяет измерять не абсолютное значение напряжения, а коэффициент передачи резистивного делителя. Это означает, что, если напряжение на перпендикулярной линии изменится за счет изменения напряжения источника питания, изменения полного выходного сопротивлении драйвера при изменении его напряжения питания или температуры или изменения полного сопротивления сенсорного экрана из-за изменения температуры, то это изменение будет скомпенсировано за счет работы аналого-цифрового преобразователя в режиме измерения коэффициента передачи.
Однако если следующая команда управления выбирает тот же канал ADS7843, что и предыдущая команда, и если поступает она до окончания режима преобразования, то внутренние ключи прибора не отключатся после окончания преобразования. Это позволит входному напряжению иметь больше времени на установление, что позволит считать следующей командой стабилизировавшееся значение.
Разность между дифференциальным и несимметричным режимами.
И в несимметричном, и в дифференциальном режимах, ADS7843 выбирает входной аналоговый сигнал от сенсорного дисплея только через три тактовых циклов (tACQ на рисунке 4). Следовательно, за время tACQ входное напряжение должно установиться, иначе прибор ADS7843 конвертирует неверное значение напряжения.
Рисунок 4. Временные диаграммы работы прибора ADS7843 в несимметричном и дифференциальном режиме.
При подключении драйвера к сенсорному экрану, напряжение сначала резко нарастает, а потом, как показано на рисунке 4, идет колебательный процесс установки напряжения. Для того, чтобы выбранное АЦП прибора значение не содержало ошибки, надо выборку сигнала осуществлять через некоторое время после подключения драйвера, которое требуется для того, чтобы переходной колебательный процесс закончился. Есть два метода обеспечения этого условия.
Первый метод показан на рисунке 4(a): в этом методе ADS7843 работает в несимметричном режиме и использует относительно низкочастотные тактовые импульсы. Низкая частота тактовых импульсов приводит к увеличению длительности трех тактов, предшествующих выборке сигнала. Драйверы подключаются в начале первого тактового цикла, и для того, чтобы выбираемое значение не содержало ошибок, напряжение на резистивных матрицах сенсорных экранов должно установиться за последующие два тактовых цикла.
Второй метод показан на рисунке 4 (b): в этом методе прибор работает в дифференциальном режиме и использует тактовые импульсы с более высокой частотой. Управляющий байт В, как и при предыдущем методе, подключает драйверы, что приводит к тому, что напряжение на сенсорном экране сначала резко нарастает, а потом начинает устанавливаться к истинному значению. При этом прибор начинает выполнять преобразование входного сигнала, но сразу после его окончания прибор начинает выполнять второе преобразование, инициализируемое управляющим байтом С. Если управляющие байты В и С одинаковые, то внутренний переключатель X/Y прибора ADS7843 не будет выключать драйвер после завершения преобразования по первой команде (байт В). Таким образом, командой байта С будет выбрано и преобразовано уже установившееся значение напряжения, которое не буде содержать ошибки. В этом методе данные, полученные в результате первого преобразования, должны быть игнорированы, так как они выборка сигнала для этого преобразования произвелась до окончания переходного колебательного процесса.
Другим преимуществом этого метода является возможность снижения потребления. На рисунке 4 показано, преобразование по команде байта С оканчивается (за счет применения более высокочастотных тактовых импульсов) до окончания преобразования по команде байта А. Это приводит к тому, что между окончанием предыдущего преобразования и началом следующего преобразования прибор может переключаться в режим пониженного потребления. В первом методе преобразование будет производиться за более длительное время, что приведет, скорее всего, к тому, что после окончания преобразования надо будет сразу же начинать следующее, что не позволит переводить прибор в режим пониженного потребления.
Использование высокочастотных тактовых импульсов в несимметричном режиме не даст никакого преимущества, так как в этом режиме по окончании преобразования, как показано на рисунке 4 (с), происходит отключения драйверов. Это приведет к тому, что после каждого преобразования напряжение на сенсорном экране будет устанавливаться заново и к моменту выборки не будет успевать установиться.
Преимущества дифференциального режима:
· Способность обработки сигналов сенсорных экранов, имеющих большое время установки напряжения, без увеличения времени аналого-цифрового преобразования. На рисунке 4 показано, что если управляющие байты В и С одинаковые, то внутренний переключатель X/Y прибора ADS7843 не будет отключать драйвер после окончания преобразования, выполняющегося по команде управляющего байта В. Это позволяет перед выборкой сигнала сформировать временную задержку, необходимую для установки напряжения.
Данные, полученные в результате преобразования по команде управляющего байта В являются ошибочными, так как выборка входного напряжения по этой команде происходит до того, как напряжение на резистивной матрице сенсорного экрана примет установившееся значение. Однако, данные, полученные в результате выполнения преобразования по команде управляющего байта С, являются истинными, так как выборка сигнала при этом преобразовании осуществляется по окончании переходного процесса.
· Использование более высокочастотных тактовых импульсов позволяет получить время, в течение которого прибор ADS7843 может находиться в дежурном режиме, что позволит снизить общее потребление.
На рисунке 4 показано, что преобразование по команде управляющего байта С заканчивается раньше, чем преобразование по команде управляющего байта А. После окончания преобразования по команде управляющего байта С, можно перевести прибор ADS7843 в дежурный режим до начала следующего преобразования. Однако, по окончании преобразования по команде управляющего байта А, прибор вероятнее всего должен начинать уже следующее преобразование, что не позволит перевести прибор в дежурный режим.
Работа в условиях шумов
При работе с сенсорными экранами необходимо позаботиться о снижении помех для повышения качества измерения. Сенсорный экран подключен к высокоомному входу аналого-цифрового преобразователя и его можно сравнить с антенной, подключенной ко входу приемника. На сенсорный экран могут наводиться помехи от источников фоновой подсветки ЖКИ или от внешнего источника электромагнитных или радио излучений. Самый простой способ снизить влияние шумов - подключить ко входу АЦП конденсатор, который вместе с сопротивлением резистивной матрицы сенсорного экрана образует фильтр нижних частот (ФНЧ). Обычно ко всем входам и выходам подключают конденсатор емкостью 0,01 мкФ. На рисунке 5 показаны кривые, позволяющие выбрать номинал конденсатора в зависимости от сопротивления резистивного слоя сенсорного экрана и требуемой частоты опроса координатных пар.
Рисунок 5. Кривые выбора номинала конденсатора фильтра помех в зависимости от сопротивления резистивного слоя сенсорного экрана и частоты опроса координатных пар.
Для формирования ФНЧ не рекомендуется добавлять последовательно с выходом драйвера резистор, так как это приведет дополнительному падению напряжения и как следствие - к снижению разрешающей способности конвертера. Снижение разрешающей способности зависит от полного сопротивления используемого сенсорного экрана.
Однако, при установке конденсаторов возникает и другая проблема- увеличение времени установки напряжения после подключения драйвера. Независимо от скорости преобразования и режима работы аналого-цифрового преобразователя, напряжение на выходе сенсорного экрана никогда не установится точно, особенно если АЦП работает в несимметричном режиме. В дифференциальном режиме сенсорный экран подключен и в течение времени выборки, и в режиме измерения, и в дежурном режиме. В зависимости от постоянной времени RC цепочки, образованной полным сопротивлением резистивного слоя и конденсатором фильтра, для получения данных с заданной точностью может потребоваться несколько циклов преобразования.
Есть несколько способов получения более точных результатов. Первый способ- увеличение времени выборки- при этом методе производится увеличение длительности 6, 7 и 8 синхроимпульсов. Для обеспечения 12 битной точности, выборку сигнала надо осуществлять через период времени, равный не менее 9 постоянным времени. Это может быть обеспечено за счет увеличения длительности 6, 7 и 8 тактовых импульсов или за счет введения дополнительного неучитываемого преобразования. Минимальная частота синхроимпульсов для обеспечения постоянства выбираемого напряжения должна быть 10 кГц. Второй способ- сравнение в цифровом виде нескольких результатов измерения.
Но, тем не менее, в некоторых прикладных программах уровень шума могут иметь очень большое значение, и может потребоваться дополнительная фильтрация входных сигналов для обеспечения устойчивого чтения. Для обеспечения нужного уровня фильтрации в таких приложениях может потребоваться установления на всех четырех линиях ввода-вывода L/C фильтров.
Прерывание при нажатии
Функция прерывания при нажатии (PENIRQ) часто неправильно истолковывается. В этом разделе дается более детальная информация об PENIRQ и затрагиваются аспекты возникновения ошибок смещения, возникающих за счет наличия внутри прибора диода, подключенного к выводу PENIRQ. Так же рассматриваются вопросы ложных срабатываний.
Работа в режиме PENIRQ
Функция прерывания при нажатии в приборе ADS7843 реализована при помощи простой аналоговой схемы - встроенного диода с открытым анодом.
Функция прерывания при нажатии в приборе ADS7843 реализуется простым подключением вывода PENIRQ через резистор к питанию. На рисунке 6 показана упрощенная схема прерывания при нажатии, которая подключается в приборе ADS7843 при активизации дежурного режима и разрешении прерывания при нажатии (при этом конфигурационные биты PD1 и PD0 должны быть сброшены в 0).
Рисунок 6. Упрощенная схема прибора ADS7843 при PD0, PD1 = 00.
При отсутствии нажатия на сенсорный экран ток через внутренний диод прибора ADS7843 не течет (за исключением незначительного тока утечки). Уровень напряжения в точке А приблизительно равно напряжению питания VCC.
При нажатии на сенсорный экран через внутренний диод потечет ток за счет того, что появится путь для постоянного тока от плюса питания через диод к общему выводу (на рисунке 6 ток протекания тока IF показан пунктирной линией). Теперь напряжение в точке А станет ниже на значение, равное падению напряжения на открытом диоде. Снизивсившийся уровень напряжения в этой точке может сигнализировать микропроцессору о нажатии на сенсорный экран. Процессор при этом начинает выполнять процедуру обработки прерывания, в которой он активизирует прибор ADS7843 для выполнения преобразования.
Этот самый простой метод организации прерывания, показанный в рисунках 6 и 7, вносит ошибку в результат преобразования АЦП. Эта ошибка часто называется ошибкой смещения, поскольку она вызвана протеканием постоянного тока через внутренний диод (см. путь протекания тока IF на рисунке 7). Протекающий ток увеличивает напряжение на входе аналого-цифрового преобразователя и вносит в результат преобразования ошибку. Эта ошибка присутствует только при вычислении координаты Y, так как при вычислении координаты X этот внутренний диод оказывается включенным в обратном направлении.
Рисунок 7. Упрощенная схема прибора ADS7843 при A2,A1,A0 = 001.
На рисунке 7 показана упрощенная схема прибора ADS7843, настроенного на измерение координаты Y (A2,A1,A0 = 001).
Есть два пути протекания тока (отмеченные на рисунке 7 как IF и ITOUCH) при нажатии на сенсорный экран. Ток ITOUCH является сигнальным током, возникающим в результате нажатия на сенсорный экран и несущий информацию о координате точки нажатия, а ток IF - паразитный ток через диод, который вызывает ошибку смещения в преобразовании.
Ток IF не течет по всей поверхности сенсорного экрана. Если нажать на сенсорный экран около точки расположения диода (см. рисунок 7), то напряжение на аноде диода будет маленьким и ток IF будет большой, при этом вносимая ошибка смещения будет велика. Однако, если нажать на сенсорный экран около точки В, то диод окажется заперт напряжением VRef, ток IF будет очень маленьким и ошибка смещения будет незначительной.
Зависимость тока IF от координаты точки нажатия на сенсорный экран затрудняет программную коррекцию этой ошибки.
Методы коррекции ошибки смещения.
На рисунке 8 показан рекомендуемый метод снижения ошибки смещения.
Рисунок 8. Рекомендуемый метод снижения ошибки смещения.
В этом методе вывод PENIRQ подключен через резистор к выводу выбора кристалла nonCS, а не к линии питания VCC как показано на рисунке 7. Когда на вывод nonCS для инициализации прибора ADS7843 подан низкий уровень, то этот уровень смещает внутренний диод в обратном направлении. Следовательно, через диод будет протекать только весьма незначительный обратный ток (ток утечки).
Значения подтягивающих резисторов R1 и R2 должны быть тщательно выбраны исходя из следующих условий:
1) При снижении напряжения на выводе PENIRQ ввиду нажатия на сенсорный экран, уровень напряжения на выводе nonCS должен быть достаточно высоким, чтобы не вызвать инициализацию прибора ADS7843. Это позволяет организовать совместное использование последовательной шины данных и предотвращает возникновение помех работе другим приборам.
Так как ADS7843 включается при наличии на входе nonCS напряжения ниже 0.8 В, то R1 и R2 должны быть выбраны такими, чтобы даже в самом наихудшем случае напряжение на выводе nonCS было выше 0.8 В. Типовое значение номинала резистора R2 - 20 кОм.
((R2/(R1+R2))*(VCC – VDIODE)) – VDIODE > 0.8 В
R2 > R1/11
VDIODE = 0.6 В
2) Значение сопротивления резистора R2 должно быть достаточно маленьким для того, чтобы обеспечить минимальное время реакции напряжения на выводе PENIRQ на касание экрана, так как некоторые процессоры неспособны обнаружить медленно меняющиеся сигналы на входе прерывания.
Схема прерывания при нажатии в приборах ADS7845 и ADS7846 реализована по-другому, чем в приборе ADS7843. В приборах ADS7845 и ADS7846 при санировании линий X и Y, вывод встроенного диода PENIRQ подключается к общему проводу и вход X+ отключается от катода этого внутреннего диода, что позволяет исключить протекание тока диода в режиме измерения координат и позволяет избежать ошибок смещения.
Ложные переключения.
Помехи на входе X+ могут вызывать ложные изменения сигнала прерывания при нажатии. Для фильтрации таких помех к выходу можно подключить RC фильтр, состоящий из резистора, номиналом 1 Ом, и конденсатора, номиналом 0.01 мкФ.
Защита входа прибора ADS7843
Рисунок 9. Защита входа прибора ADS7843
На рисунке 9 приведены некоторые рекомендации по защите входов прибора ADS7843 от высоковольтных выбросов, которые могут возникать на выходах сенсорного экрана. Эти выбросы могут возникать при воздействии высоковольтного ЭСП или от источников питания схем подсветки. Добавление ферритовых шайб и диодов привязки ко входам линий X и Y позволяет погасить эти выбросы прежде, чем они выведут из строя входы прибора ADS7843, а так же позволяет ограничить входные сигналы, мгновенные значения которых выходят за пределы диапазона питания.
Примеры программ для управления работой прибора в дифференциальном режиме.
В этом разделе приведены два примера программ управления работой прибора ADS7843 в дифференциальном режиме.
Рисунок 10.
Рисунок 11.
На рисунках 10 и 11 показаны два примера алгоритмов обмена данными прибора ADS7843 с микропроцессором. В обоих примерах подразумевается, что ADS7843 настроен на работу в дифференциальном режиме с протоколом выполнения преобразования за 16 тактов (см. рисунок 6 в техническом описании прибора ADS7843). Эти программы возвращают результат преобразования напряжения горизонтальной оси в виде переменной DATA X, а вертикальной оси- DATAY.
Блок-схема 1
На рисунке 10 показан пример реализации программы, расширяющей длительность выборки, которая позволяет избежать ошибок, возникающих при переходном процессе.
В этом примере переменная DATA1 используется для хранения результата текущего преобразования, DATA2 - для хранения предыдущего результата преобразования, а DATAX и DATAY - для хранения истинных значений координат X и Y. Переменные DATA1 и DATA2 используются для проверки правильности результатов преобразования - если эти переменные равны, то принимается решение о том, что результат преобразования верен. Эта программа может использоваться с различными сенсорными экранами, независимо от постоянной времени этих экранов. Однако реализованный в этой программе метод может давать ошибки, если частота переходных колебаний равна или близка к частоте дискретизации.
Блок-схема 2
На рисунке 11 приведен другой пример, в котором задержка на время переходных процессов также формируется программно, но в качестве верного результата берется результат последнего (n- ого) преобразования.
Эта программа намного проще предыдущей, но подходит только для экранов, имеющих подобные переходные характеристики. В этом методе, в отличие от предыдущего, за истинное значение принимается последний результат преобразования. Значение "n" зависит от времени установки напряжения на входе прибора ADS7843. Для правильного выбора значения "n" разработчик должен протестировать несколько однотипных сенсорных экранов.
Примечание: Если Вы планируете активизировать дежурный режим прибора ADS7843 с включенной функцией PENIRQ, то Вы должны выполнить дополнительный цикл преобразования со сброшенными битами PD1 и PD0. Однако если используется режим преобразования за 15 тактовых циклов, то Вы можете сбросить биты PD1 и PD0 в ноль при выполнении преобразований по осям Y и X.
|
|
88 Kb Engl Исходный документ |
|
|
RUS Параметрический поиск по контроллерам сенсорных экранов |
|