Решения Microchip Technology для реализации сенсорного управления
Строятся такие кнопки, как правило, на емкостных сенсорах (рис. 1), принцип действия которых основан на изменении емкости при касании поверхности над токопроводящим покрытием [1].
Компания Microchip Technology Inc. предлагает ряд решений для реализации сенсорных элементов управления (кнопки, слайдеры, тачпады) на базе следующих периферийных модулей [2]:
- один компаратор и таймер;
- сдвоенный компаратор с RS-триггером и 2 таймера;
- блок емкостных датчиков (CSM— capacitive sensing module);
- блок измерения времени заряда (CTMU— charge time measurement unit).
Решение на базе микроконтроллера с одним компаратором и таймером
Если стоит задача внедрения в устройство одной сенсорной кнопки, тоMicrochip предлагает реализовать ее на одном компараторе с таймером на простейших микроконтроллерах Microchip со встроенным компаратором, например на 6-выводных PIC10F204/6 (рис. 2) [3].
На интегрированном в микроконтроллер компараторе и внешней RC-цепочке построен генератор. Частота генератора определяется постоянной времени RC-цепочки, образованной резистором и суммарной емкостью сенсора, которая, в свою очередь, определяется емкостью сенсорной кнопки Ср (рис. 1) и емкостью Cf, вносимой при касании сенсора.
Касание кнопки можно рассматривать как подключение параллельно еще одной емкости Cf (рис. 2), что ведет к изменению частоты генератора. Именно это изменение фиксируется микроконтроллером.
Выход компаратора используется в качестве счетного входа таймера Timer 0, приращение таймера производится по перепаду из 0 в 1 на выходе компаратора. Зная емкость Cp и сопротивление резистора, можно вычислить ожидаемое значение таймера TMR0 за фиксированное время. Время измерения выбирается из соображений, чтобы прошло достаточно много циклов для обеспечения требуемой точности, но не произошло переполнение TMR0, из этих же соображений удобно установить делитель частоты TMR0 в максимальное значение 1:256. Касание кнопки приводит к снижению частоты генерации и, соответственно, частоты переключения компаратора. Таким образом, считывая по циклу значение TMR0 через заданное фиксированное время и сравнивая его с ранее вычисленным, можно сделать вывод о касании кнопки.
Компания Microchip предлагает схему реализации сенсорной кнопки и пример исходного кода модуля на базе дешевых 6-выводных микроконтроллеров PIC10F204/6 с подробным описанием принципа работы [3].
Решение на базе микроконтроллера со сдвоенным компаратором с RS-триггером и двумя таймерами
Для организации до четырех сенсорных кнопок Microchip предлагает решение на сдвоенном компараторе с двумя таймерами, которое реализуется на 8-битных микроконтроллерах семейств PIC16F887/690/616 (рис. 3) [4].
В данном примере Timer 0 задает частоту детектирования касания кнопки, а Timer 1 используется для обнаружения касания, аналогично Timer 0 в первом примере.
Следует отметить, что PIC-микроконтроллеры имеют мультиплексор на входе сдвоенных компараторов, что позволяет обрабатывать большее количество кнопок.
Полную схему для реализации сенсорных кнопок на базе PIC16F887/690/616 с примером исходного кода и подробным описанием принципа работы можно скопировать с сайта www.microchip.com/mtouch [4].
Решение на базе микроконтроллера с блоком емкостных датчиков (CSM)
Ввиду быстро растущего интереса разработчиков к сенсорному управлению Microchip выпустила микроконтроллеры PIC16F со специальным модулем для создания емкостных датчиков— блоком CSM (рис. 4) [5]. Что дает применение блока емкостных датчиков (CSM):
- возможность построения интегрированной схемы детектирования касания сенсорных кнопок, не требующей внешних элементов;
- интегрированный мультиплексор для подключения до 16 емкостных сенсоров;
- работу в режиме Sleep для снижения энергопотребления.
Детектирование касания при помощи блока емкостных датчиков CSM сходно с предыдущими методами, но не требует внешних элементов кроме самой кнопки. В качестве счетчика тактов, вырабатываемой генератором частоты, используется Timer 1. В качестве источника запуска и останова счетчика Timer 1 может использоваться Timer 0, Timer 2 или сторожевой таймер WDT. Алгоритм вычисления частоты и детектирования касания кнопки тот же. Возможность использования WDT позволяет определять наличие касания в режиме Sleep. При этом генератор CSM переводится в энергосберегающий режим, а при обнаружении касания кнопки микроконтроллер выходит из режима Sleep и обрабатывает событие нажатия в нормальном режиме.
Преимуществом данного метода в сравнении с предыдущими является возможность работы сенсорных кнопок в режиме энергосбережения Sleep, а также отсутствие внешних элементов.
Решение на базе микроконтроллера с блоком измерения времени заряда (CTMU)
В новых 16-битных микроконтроллерах семейств PIC24FJ256GA110 (контроллер общего назначения — 4 UART, 3 SPI, 3 I 2 C) и PIC24FJ256GB106 (контроллер с USB OTG) добавлен блок измерения времени заряда (CTMU — Charge Time Measurement Unit) (рис. 5) [6].
Анализ состояния емкостного сенсора в CTMU принципиально отличается от ранее описанных методов, так как производится измерение не частоты, а напряжения, до которого зарядилась емкость за фиксированное время (рис. 6). Принцип действия заключается в следующем: разряженная до 0 В суммарная емкость схемы сенсора начинает заряжаться источником тока и заряжается в течение фиксированного времени; далее при помощи АЦП измеряется уровень напряжения, до которого зарядилась емкость CАЦП (рис. 7).
CTMU отличается значительно большей функциональностью, детектирование сенсорных кнопок — лишь одно из ее возможных применений. Как вариант— микроконтроллер с CTMU может быть использован для управления емкостной тач-панелью дисплея. В совокупности с бесплатной графической QVGA-библиотекой Microchip это позволяет быстро разработать и внедрить в проектируемое устройство наглядный пользовательский интерфейс. Другие применения CTMU: измерение абсолютного и относительного изменения заряда, причем относительное не требует калибровки (для детектирования касания сенсорной кнопки);
- измерение временных промежутков (динамический рефлектометр, измерение длины кабеля);
- высокоскоростной ШИМ;
- ЦАП;
- измерение температуры при помощи одного диода.
Преимуществами данного метода являются возможность работы в режиме энергосбережения Sleep, отсутствие внешних элементов и существенно бoльшая скорость реакции на касание кнопок.
Средства разработки и другие варианты применения
Для ознакомления и быстрого освоения работы с емкостными сенсорами на базе микроконтроллеров PIC16 со встроенными компараторами компания Microchip предлагает стартовый набор PICDEM Touch Sense 1 Development Kit (рис. 8) [7]. В него входят:
- демонстрационная плата с полной поддержкой сенсорного управления mTouch;
- графический пользовательский интерфейс для экспериментальных разработок;
- управление типа «кнопка» и типа «слайдер».
Для ознакомления и быстрого освоения работы с клавиатурами на основе модуля CTMU Microchip предлагает стартовый набор MPLAB Starter Kit for PIC24F (рис. 9) [8]. Его основные особенности:
- интерактивное меню, выведенное на дисплей при помощи параллельного порта PMP;
- управление емкостными сенсорами, реализованное при помощи CTMU; отображение времени и даты с использованием модуля часов реального времени RTCC;
- использование ШИМ и программного переназначения выводов (PPS) для управления RGB светодиодами;
- встроенный USB host;
- отображение данных в реальном времени в режиме multitasking (мультизадачность) — АЦП и PMP;
- захват данных в реальном времени (multi-tasking — USB).
Компания Microchip Technology Inc. предоставляет ряд готовых схемотехнических решений, алгоритмов и примеров программ для конкретных микроконтроллеров — от базового семейства PIC10 до высокопроизводительных 16-битных PIC24 (таблица) для реализации всевозможных сенсорных кнопок, клавиатур, джойстиков, слайдеров ит.д.
Количество кнопок может быть увеличено за счет внешнего мультиплексора и разделения обработки каждой из них по времени, то есть снижения частоты сканирования. Так-же для увеличения количества кнопок при том же количестве каналов Microchip предлагает решения, основанные на учете воздействия двух сенсоров одновременно (рис. 10) [9].
Таблица. Сферы применения микроконтроллеров Microchip для емкостных датчиков
Метод реализации |
Микроконтроллер |
Кол-во каналов для кнопок* |
Особенности МК |
Применение |
Один компаратор и таймер |
PIC10F204/6 | 1 | Простейшие 68выводные МК, 4 I/O, 4 МГц (1 MIPS), EEPROM 256 байт, RAM 16/24 байт, Flash 0,25/0,5 KWords, Timer 1x8bit |
1–2 сенсорные кнопки |
PIC12F с компаратором | 1 | 8 pins, 6 I/O, до 20 МГц (5MIPS), 256 байт EEPROM, 128 байт RAM, 2 KWords Flash, Timers 2×88бит, 1×168бит, 1 ECCP |
||
Любой PIC с компаратором | 1 шт./комп. | Имеются представители во всех семействах | ||
Сдвоенный компаратор с RS8триггером и 2 таймера |
PIC16F631/677/685/ 687/689/690 |
4 | 20 pins, 18 I/O, до 20 МГц (5 MIPS), 256 байт EEPROM, 256 SRAM, 4 KWords Flash, Timers 2×88бит, 1×168бит, 10×128бит ADC, 1 ECCP, 1 EUSART, 1 SSP |
Клавиатура, 4–10 клавиш |
PIC16F882/883/884/ 886/887 |
4 | 28/40/44 pins, 24/35 I/O, до 20 МГц (5 MIPS), 256 байт EEPROM, 368 байт SRAM, 8 KWords Flash, Timers 2×88бит, 1×168бит, 14×108бит ADC, 1 ECCP, 1 EUSART, 1 MSSP |
||
PIC16F610/616/ 16HV610/616 |
4 | 14 pins, 11 I/O, до 20 МГц (5 MIPS), 128 байт SRAM, 2 KWords Flash, Timers 2×88бит, 1×168бит, 8×108бит ADC |
||
PIC18F13K50/14K50 | 3 | 20 pins, 15 I/O, до 48 МГц (12 MIPS), 256 байт EEPROM, 768 байт SRAM, 8 KWords Flash, Timers 1×88бит, 3×168бит, 11×108бит ADC, 1 ECCP, 1 EUSART, 1 MSSP, USB |
||
Блок емкостных датчиков (CSM) |
PIC16F722/3/4/6/7 | До 16 | 28/40/44 pins, 25/36 I/O, 8/16xCSM, до 20 МГц (5 MIPS), 368 байт SRAM, 8 KWords Flash, Timers 2×88бит, 1×168бит, 14×88бит ADC, 1 AEUSART, 2 CCP, 1 MSSP |
Клавиатура, более 15 клавиш |
Блок измерения времени заряда (CTMU) |
PIC24FJ 128/192/256 GA1 06/08/10 |
До 16 | 64/80/100 pins, 53/69/85 I/O, 31/42/46 PPS pins, до 32 МГц (16 MIPS), 16 кбайт SRAM, 256 кбайт Flash, Timers 5×168бит, 9 CCP, 4 UART(+IrDA), 3 SPI/I 2 C, 16×108бит ADC/CTMU, 3 Comparators, 1 PMP/PSP |
Клавиатура, более 15 клавиш, в устройствах с высокой произ8 водительностью, графическим пользовательским интерфейсом, голосовым оповещением, USB и т. д. |
PIC24FJ 64/128/192/256 GB1 06/08/10 |
До 16 | 64/80/100 pins, 52/68/84 I/O, 29/40/44 PPS pins, до 32 МГц (16 MIPS), 16 кбайт SRAM, 256 кбайт Flash, Timers 5×168бит, 9 CCP, 4 UART(+IrDA), 3 SPI/I 2 C, 16×108бит ADC/CTMU, 3 Comparators, 1 PMP/PSP, USB OTG |
(*)— непосредственно количество каналов для подключения сенсорных кнопок.
К примеру, на рис. 11а на четырех емкостных датчиках (один цвет — один датчик) организовано 10 кнопок. На рис. 11б приведен метод для создания клавиатуры с количеством кнопок AXB, с использованием (A+B) каналов. Следует обратить внимание, что при использовании каждого из сенсоров для нескольких кнопок накладываются следующие ограничения:
- детектирование касания кнопки — только после сканирования состояния всех датчиков;
- требуется более высокая скорость сканирования;
- невозможно распознать касание нескольких кнопок одновременно.
Классическая реализация слайдера на емкостных сенсорах в зависимости от требуемой чувствительности требует достаточно много каналов для подключения датчиков. Компания Microchip Technology Inc. предлагает решение с использованием двух каналов (рис. 12), что позволяет выиграть как по количеству каналов, так и в чувствительности.
Для оптимального выбора критерия нажатия кнопки Microchip предоставляет программу mTouch Dainostic Tool (рис. 13) [10]. Емкостные сенсоры активно вытесняют классические механические элементы управления. Например, в медицине это позволяет полностью стерилизовать терапевтические приборы, в промышленности — обеспечить надежность и вандалозащищенность, в офисах — создать привлекательный индивидуальный дизайн. Все это обусловливает быстрый рост сегмента емкостных сенсоров.
Широкий выбор периферийных модулей, производительности, портов ввода/вывода и различных корпусов микроконтроллеров Microchip, на основе которых можно реализовать сенсорное управление, позволяет подобрать оптимальный для конкретной задачи контроллер. А специализированные модули для реализации сенсорного управления и наличие готовых схем с подробными описаниями и исходными кодами программ предоставляют разработчику дополнительные возможности. Наличие наглядного графического интерфейса для диагностики и отладки систем с сенсорным управлением делает их создание более простым и быстрым, а функционирование — надежным.
На пике развития и повсеместного внедрения систем с сенсорным управлением Microchip Technology Inc. активно завоевывает этот рынок, предлагая целый ряд специализированных решений, охватывая огромный сектор прикладных задач от простейших кнопок до сенсорных дисплеев.
Литература
- Layout and Physical Design Guidelines for Capacitive Sensing. http://ww1.microchip.com/downloads/en/AppNotes/01102a.pdf
- Дизайн-центр Microchip по емкостным сенсорам. http://www.microchip.com/mtouch
- Capacitive Sensing with PIC10F. http://ww1.microchip.com/downloads/en/AppNotes/01202A.pdf
- Introduction to Capacitive Sensing. http://ww1.microchip.com/downloads/en/AppNotes/01101a.pdf
- Using the Capacitive Sensing Module on the PIC16F72X. http://ww1.microchip.com/downloads/ en/AppNotes/01171A.pdf
- CTMU Reference Manual http://ww1.microchip.com/downloads/en/DeviceDoc/39724a.pdf
- PICDEM Touch Sense 1 Demo Board Users Guide. http://ww1.microchip.com/downloads/en/DeviceDoc/41346A.pdf
- MPLAB Starter Kit for PIC24F User’s Guide. http://ww1.microchip.com/downloads/en/DeviceDoc/PIC24F%20Starter_UG_DS-51725a.pdf
- Capacitive Multibutton Configurations. http://ww1.microchip.com/downloads/en/AppNotes/01104A.pdf
- mTouch Users Guide http://www.microchip.com/stellent/groups/picmicro_sg/documents/devicedoc/en534865.pdf