Модуль сенсорной клавиатуры TTP229



Модуль сенсорной клавиатуры TTP229
Просматривая в сети различные электронные модули, меня заинтересовал недорогой модуль сенсорной клавиатуры на микросхеме TTP229, и я решил приобрести его. Микросхема имеет 16 входов для подключения сенсорных электродов (кнопок), соответственно на плате модуля имеются 16 сенсорных квадратных площадок с номерами 1-16. Также на плате имеются контактные площадки для перемычек, с помощью которых можно настраивать режим работы клавиатуры. Микросхема TTP229 передает данные по двухпроводной линии, протокол связи схож с последовательным интерфейсом SPI, кроме этого имеются 8 выходных буферов, с возможностью выбора типа логического выхода. Микросхема обладает низким энергопотреблением, всего 2-9 мкА в спящем режиме.

На следующей картинке представлена схема модуля сенсорной клавиатуры:
Схема клавиатуры TTP229
Обвязка микросхемы минимальная, сенсорные кнопки E1-E16 подключаются непосредственно к выводам микросхемы. С помощью конденсаторов CJ0-CJ3, CJWA, CJWB можно регулировать чувствительность сенсорных кнопок, чем больше емкость конденсаторов, тем ниже чувствительность, кроме этого чувствительность зависит от размера самих кнопок. Рекомендуемая емкость конденсаторов находится в пределах 1-50 пФ.

Линии микросхемы TP0-TP7 играют двойную роль, кроме отслеживания состояния сенсорных кнопок, можно настраивать режим работы клавиатуры с помощью перемычек JP1-JP8. Если перемычка установлена, то линия микросхемы подтягивается к общему проводу через высокоомный резистор, на входе устанавливается низкий логический уровень “0”, при отсутствии перемычки высокий уровень “1”. Ниже в таблице приведены основные режимы работы:

Вывод микросхемы Состояние вывода Описание
TP0
(перемычка JP1)

TP1
(перемычка JP2)

TP0 TP1 Задействовано 8 выходных буферов: обычный логический выход, активный логический уровень – высокий.
Последовательный интерфейс передачи данных: обычный логический выход, активный логический уровень – низкий.
1 1
1 0 Задействовано 8 выходных буферов: обычный логический выход, активный логический уровень – низкий.
Последовательный интерфейс передачи данных: обычный логический выход, активный логический уровень – высокий.
0 1 Задействовано 8 выходных буферов: выход открытый сток с подтяжкой к 1, активный логический уровень – низкий.
Последовательный интерфейс передачи данных: обычный логический выход, активный логический уровень – низкий.
0 0 Задействовано 8 выходных буферов: выход открытый сток с подтяжкой к 0, активный логический уровень – высокий.
Последовательный интерфейс передачи данных: обычный логический выход, активный логический уровень – высокий.
TP2
(перемычка JP3)
1 Задействовано 8 кнопок (E1-E8) и выходные буферы
0 Задействовано 16 кнопок (E1-E16)
TP3
(перемычка JP4)

TP4
(перемычка JP5)

TP3 TP4 Одна группа (16 кнопок): фиксируется нажатие только одной кнопки
1 1
1 0 1-я группа: E1-E4, E9-E12 — фиксация нажатия одной кнопки
2-я группа: E5-E8, E13-E16 — фиксация нажатия одной кнопки
0 1 1-я группа: E1-E4, E9-E12 — фиксация нажатия одной кнопки
2-я группа: E5-E8, E13-E16 — фиксация нажатия нескольких кнопок
0 0 Одна группа (16 кнопок): фиксируется нажатие нескольких кнопок
TP5
(перемычка JP6)
1 Частота опроса кнопок в спящем режиме равна 8 Гц
0 Частота опроса кнопок в спящем режиме равна 64 Гц
TP6
(перемычка JP7)
1 Длительность опроса кнопок в спящем режиме равна 4 мс
0 Длительность опроса кнопок в спящем режиме равна 2мс
TP7
(перемычка JP8)
1 Защита от “залипания” кнопки отключена
0 Защита от “залипания” кнопки включена: максимальное время 80 секунд

Если на линии TP2 высокий логический уровень (TP2=1), то активно 8 сенсорных кнопок (на схеме E1-E8), остальные 8 линий микросхемы TP8-TP15 перенастраиваются на выход (Out1-Out8). Логический уровень на выходных линиях зависит от состояния сенсорных кнопок, 1-я кнопка соответствует выходу Out1, 2-я кнопка выходу Out2 и т.д., также данные о состоянии кнопок передаются по последовательному интерфейсу. В режиме 16 активных кнопок (TP2=0), линии микросхемы TP8-TP15 перенастраиваются на вход. В этом случае информация о состоянии кнопок передается только по последовательному интерфейсу. Таким образом, линии TP8-TP15 могут отслеживать состояние сенсорных кнопок E9-E16, или выступать в качестве выходных буферов.

Линия TP0 отвечает за тип логического выхода, значению TP0=1 соответствует обычный логический выход, если значение равно 0, то получаем выход с открытым стоком. От состояния линии TP1 зависит активный уровень выходных буферов и последовательного интерфейса. С помощью линий TP3, TP4 можно установить два режима сканирования кнопок: фиксация “нажатия” только одной кнопки либо сразу нескольких кнопок, это может быть удобно, когда необходимо отслеживать “нажатие” какой-либо комбинации кнопок. Линии TP5, TP6 отвечают за частоту и длительность сканирования кнопок в спящем режиме. В микросхеме имеется функция защиты от “залипания” кнопок, например в случае попадания на кнопку постороннего предмета, произойдет срабатывание, и если защита включена, через 80 секунд кнопка заново калибруется и возвращается в отжатое состояние. За эту функцию отвечает линия TP7.

Микросхема TTP229 автоматически переходит в спящий режим, если в течение определенного времени не было зафиксировано “нажатия” на кнопки. Кроме этого имеется функция постоянной авто-калибровки сенсорных кнопок, что позволяет микросхеме подстраиваться под изменение окружающего “емкостного” фона, и корректно фиксировать прикосновение.

На следующей картинке приведена диаграмма передачи данных по последовательному интерфейсу с временными характеристиками:
Диаграмма последовательного порта TTP229
Линия SCL предназначена для тактирования внешним управляющим устройством, на линию SDO микросхема TTP229 выдает данные о состоянии кнопок. Когда микросхема фиксирует “нажатие” кнопки, она выдает на линию сигнал DV длительностью 93 мкс, который можно использовать для прерывания в микроконтроллере. Далее при наличии сигнала тактирования микросхема выдает один или два байта данных о состоянии кнопок (в зависимости от режима работы: 8 или 16 активных кнопок). Как видно полярность сигналов на линиях SCL, SDO зависит от выбора активного логического уровня. Биты D0-D15 отображают состояние кнопок E1-E16. Значение битов зависит от активного уровня, если активный уровень низкий, при “нажатии” кнопки соответствующий бит установится в 0, если кнопка отжата – 1. При высоком активном уровне все наоборот. Частота тактирования может лежать в пределах 1-512 кГц. Если сигнал тактирования отсутствует в течение 2 мс, то последовательный интерфейс возвращается в исходное состояние.

Для примера я подключил сенсорную клавиатуру к микроконтроллеру PIC16F628A, для отображения номера “нажатой” кнопки использовал цифровой индикатор на драйвере MAX7219. Схема подключения представлена ниже:
Подключение клавиатуры TTP229 к микроконтроллеру
Дополнительно к выходным линиям клавиатуры подключил светодиоды HL1-HL8 через резисторы R2-R9. Переключатель SA1 предназначен для выбора режима работы микроконтроллера, прием 8-ми или 16-и байт данных, режим должен соответствовать настройкам сенсорной клавиатуры, (перемычка JP3, 8 или 16 активных кнопок). Необходимо выбрать высокий активный логический уровень для последовательного интерфейса, для выходных буферов — открытый сток с подтяжкой к 0, для этого на клавиатуре необходимо установить перемычки JP1, JP2, остальные перемычки я не устанавливал. В исходном состоянии светодиоды остаются выключенными.

Код программы представлен ниже:

Для линии RB4 микроконтроллера настроено прерывание по изменению уровня сигнала, при возникновении которого вызывается обработчик прерываний, в котором выполняется прием данных от сенсорной клавиатуры, один или два байта в зависимости от состояния переключателя SA1. Далее путем сдвига принятых байтов вычисляется номер “нажатой” кнопки, который сохраняется в регистре knp_kod. После чего происходит выход из обработчика прерываний с установкой флага flag,0. В основной программе по установленному флагу происходит вывод номера кнопки на цифровой индикатор. Сигнал прерывания DV от модуля клавиатуры поступает при каждом изменении состояния кнопок, то есть прикоснулись к кнопке — возникло прерывание, убрали палец – очередное прерывание. Светодиоды HL1-HL8 зажигаются при прикосновении к кнопкам в режиме TP2=1, когда задействовано 8 кнопок.

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

Внешний вид клавиатуры TTP229Клавиатура TTP229, макетная плата

На следующем видеоролике можно увидеть сенсорную клавиатуру в действии:

Последние записи:

Комментариев 3 на “Модуль сенсорной клавиатуры TTP229

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

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