Построение систем емкостных датчиков прикосновений На базе MSP430. Датчики силы, механического напряжения и прикосновения

Тач-сенсоры (датчики касания) бывают разных принципов действия, например резистивный (проводящие пленки), оптический (инфракрасный), акустический (SAW), емкостной и т.д. Данный проект является экспериментом с емкостным датчиком касания. Этот вид датчика хорошо известен как указывающее устройство, используемое в планшетных ПК и смартфонах.

Принцип емкостного датчика касания

Емкостный датчик касания обнаруживает изменение емкости, происходящее на электроде от закрытия проводящим предметом, например пальцем. Есть несколько методов измерения емкости. В этом проекте используется метод интеграции, который используется в измерителе емкости. Изменение емкости Cx довольно небольшое, около 1пФ до 10пФ, но оно будет легко обнаружено, потому что у измерителя емкости разрешение измерения составляет 20пФ. Также, объекты, которые будут обнаруживаться должны быть заземлены, чтобы создать Cx схему согласно с принципом действия. Однако она хорошо работает, даже если человеческое тело изолировано от земли. Это может быть по нижеследующей причине.

Аппаратная часть

Программное обеспечение

Во-первых, откалибруйте каждую точку (получите эталонное время связи с Cs), а затем запустите сканирование в постоянном периоде. Когда время интеграции увеличился и превысит порог, он решит “обнаружено”. Гистерезису требуется порог, или выход не будет стабильным при полу прикосновении. Время измерения для каждой точки равно времени интегрирования, так что это может быть сделано очень быстро.

Измеритель емкости измеряет время интеграции с разрешением один такт (100 нс) с аналоговым компаратором и функцией входной фиксации. Однако эта функция не доступна на всех портах ввода/вывода. Для реализации датчика касания на любом порту ввода/вывода, время интеграции измеряется опросом программным обеспечением, и разрешение становится 3 такта (375ns). В нормальном состоянии число отчета времени около 80, и это достаточно для сенсорных кнопок.

Заключение

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U? МК AVR 8-бит

ATtiny2313-20PU

1 В блокнот
R1-R8 Резистор

1 МОм

8 В блокнот
R9-R16 Резистор R9-R16 8 В блокнот
C1 Электролитический конденсатор 100 мкФ 1 В блокнот
C2 Конденсатор 100 нФ 1 В блокнот
D1-D8 Светодиод 8

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

Конденсаторы могут быть сенсорными

В течение последнего десятилетия или около того стало действительно трудно представить себе мир с электроникой без сенсорных датчиков прикосновений. Смартфоны являются тому наиболее заметным и распространенным примером, но, конечно, существуют и другие многочисленные устройства и системы, которые обладают датчиками прикосновений. Для построения сенсорных датчиков прикосновений могут использоваться и емкость, и сопротивление; в данной статье мы будем обсуждать только емкостные датчики, которые более предпочтительны в реализации.

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

Емкостные сенсорные датчики касания делятся на две основные категории: на основе взаимной емкости и на основе собственной емкости. Первый из них, в котором конденсатор датчика состоит из двух выводов, которые действуют как излучающий и приемный электроды, является более предпочтительным для сенсорных дисплеев. Последний, в котором один вывод конденсатора датчика подключен к земле, является прямым подходом, который подходит для сенсорной кнопки, слайдера или колеса. В данной статье мы рассмотрим датчики на основе собственной емкости.

Конденсатор на базе печатной платы

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

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

Возможно, сейчас вы захотите узнать, какую емкость реально обеспечивает такая разводка печатной платы. Кроме того, как мы рассчитаем ее точно? Ответ на первый вопрос: емкость очень мала, может составлять около 10 пФ. Что касается второго вопроса: не беспокойтесь, если забыли электростатику, потому что точное значение емкости конденсатора не имеет никакого значения . Мы ищем только изменения в емкости, и мы можем обнаружить эти изменения без знания номинального значения емкости печатного конденсатора.

Влияние пальца

Так что же вызывает эти изменения емкости, которые контроллер датчика прикосновений собирается обнаружить? Ну, конечно же, человеческий палец.

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

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

Палец как диэлектрик

Обычно мы думаем о конденсаторе, как имеющем фиксированную величину, определяемую площадью двух проводящих пластин, расстоянием между ними и диэлектрической проницаемостью материала между пластинами. Мы, конечно, не можем изменить физические размеры конденсатора, просто прикоснувшись к нему, но мы можем изменить диэлектрическую проницаемость, так как палец человека обладает диэлектрическими характеристиками, отличающимися от материала (предположительно воздуха), который он вытесняет. Это правда, что палец не будет находиться в настоящей области диэлектрика, т.е. в изолирующем пространстве непосредственно между проводниками, но такое «вторжение» в конденсатор необязательно:

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

Оказывается, что человеческая плоть является довольно хорошим диэлектриком, потому что наши тела состоят в основном из воды. Относительная диэлектрическая проницаемость вакуума равна 1, а относительная диэлектрическая проницаемость воздуха лишь немного выше (около 1,0006 на уровне моря при комнатной температуре). Относительная диэлектрическая проницаемость воды намного выше, около 80. Таким образом, взаимодействие пальца с электрическим полем конденсатора представляет собой увеличение относительной диэлектрической проницаемости, и, следовательно, приводит к увеличению емкости.

Палец как проводник

Любой, кто испытал на себе удар электрического тока, знает, что кожа человека проводит ток. Я уже упоминал выше, что прямого контакта между пальцем и сенсорной кнопкой (то есть ситуации, когда палец разряжает печатный конденсатор) нет. Тем не менее, это не означает, что проводимость пальца не имеет значения. Она на самом деле весьма важна, так как палец становится второй проводящей пластиной в дополнительном конденсаторе:

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

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

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

Близкое расстояние или контакт

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

Оба механизма изменения емкости, описанные выше, оказывают влияние, которое зависит от расстояния. Для механизма на базе диэлектрической проницаемости количество «мясного» диэлектрика взаимодействие с электрическим полем конденсатора увеличивается при приближении пальца к проводящим частям печатного конденсатора. Для механизма на базе проводящих свойств емкость конденсатора с пальцем (как и любого другого конденсатора) обратно пропорциональна расстоянию между проводящими пластинами.

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

Заключение

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

Надеюсь, статья оказалась полезной. Оставляйте комментарии!

Емкостной датчик прикосновений

Основным элементом, необходимым для реализации системы емкостных датчиков является конденсатор переменной емкости. Он должен иметь простую конструкцию и чувствительность к прикосновениям. Так как чувствительный элемент построен как «открытый» конденсатор, электрическое поле может взаимодействовать с внешним емкостным объектом, в нашем случае — пальцем. На рисунке 1 показан вид сверху и сбоку емкостного датчика, реализованного непосредственно на плате.

Рис. 1.

Как показано на рисунке 1, конденсатор образуется между проводящим слоем и заземлением. Взаимодействие проводящего слоя и окружающих его проводников создают базовую емкость, величина которой может быть измерена. Базовая емкость такого датчика составляет около 10 пФ. Когда проводник, т.е. палец, приближается к открытому конденсатору, в результате интерференции электрического поля, изменяется емкость конденсатора. Из-за емкости пальца, емкость датчика увеличивается даже без прикосновения. С помощью измерения емкости датчика и сравнивания каждого результата с базовой емкостью, микроконтроллер может определить не только факт нажатия кнопки, но и последовательность включений, что используется для реализации более сложных интерфейсов, таких как слайдеры.

Чувствительность датчика зависит от расстояния между проводящим и заземляющим слоем. Рекомендованное расстояние — 0,5 мм. Кроме этого, общая чувствительность системы зависит от толщины платы: при уменьшении толщины платы уменьшается чувствительность. Рекомендованная толщина платы 1…1,5 мм.

Емкость датчика без емкости пальца составляет около 5…10 пФ.

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

Конструкция датчика и интерфейса с пользователем

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

Реализация емкостного датчика на печатной плате

Зависимости емкостного датчика могут быть отображены на примере обычного плоского конденсатора. Рисунок 2 отображает его ключевые элементы.

Рис. 2.

Под термином «базовая емкость» понимается результат измерения емкости датчика, который не был подвержен никакому воздействию. Для простоты в качестве базовой емкости возьмем емкость конденсатора, образованного проводящим слоем в верхней части печатной платы и заземляющим — в нижней (нижняя и верхняя пластины на рисунке 2).

Расстояние d определяется самой печатной платой. Как сказано ранее, при уменьшении d, увеличивается базовая емкость и уменьшается чувствительность. Удельные емкости пространства (e 0) и материала (e r) определяют диэлектрическую постоянную платы.

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

Таким образом, в процессе разработки нужно минимизировать базовую емкость датчика. Условием хорошей чувствительности и надежности системы является максимизация изменения емкости при приближении пальца к датчику. Конечно, эти две цели взаимоисключающие: при увеличении площади датчика до размеров пальца увеличивается базовая емкость, так как она пропорциональна А.

Рис. 3.

На рисунке 3 показано расположение кнопок и слайдера, используемое в качестве примера в этом документе.

Рис. 4. Построение слоев (красный — верхний сигнальный слой, синий — нижний заземляющий слой)

На рисунке 4 показаны четыре варианта размещения датчика на печатной плате, отличающиеся по построению заземляющего слоя.

Вверху слева отображен только верхний сигнальный слой: четыре прокладки датчика, окруженные верхним заземляющим слоем; нижний слой не используется. В верхней правой части рисунка показан такой же дизайн платы с заполнением заземляющего слоя 25%. Внизу слева — версия с 50% и справа — 100% заполнением.

Рекомендуется использовать несколько заземляющих слоев под каждым датчиком для изоляции элементов датчика от шума и других внешних изменений, способных вызвать изменение базовой емкости. Очевидно, что 100% заполнение, как показано в левом нижнем углу рисунка 4, обеспечивает максимальную шумовую изоляцию, а также увеличивает базовую емкость. Для получения оптимального соотношения шумовой изоляции и базовой емкости, принято использовать заполнение от 50% до 75%.

Изоляционный слой датчика

В этом типе приложения изоляционный слой датчика выполняется из пластика. Благодаря этому слою, пальцы не контактируют непосредственно с датчиком. Модель, представленная на рисунке 2, может быть использована для визуализации интерфейса взаимодействия пальца и конденсатора. При этом нижняя обкладка выступает в роли датчика, а верхняя — палец пользователя. Становится ясным, что при увеличении площади взаимодействия до размеров пальца, увеличивается А, максимизируется изменение емкости. При увеличении слоя изоляции d, изменение емкости уменьшается обратнопропорционально. Ключевой момент, который нельзя игнорировать, это материал из которого выполняется изоляция. Диэлектрическая постоянная изоляционного материала, а так же его толщина очень сильно влияют на чувствительность и простоту использования емкостного датчика прикосновений. В таблице 1 представлены диэлектрические постоянные некоторых материалов.

Таблица 1. Диэлектрические постоянные материалов

Кроме самого изолятора, важным моментом является соединение датчика и изолятора. Если соединение не плотное и имеются промежутки, емкость датчика изменится. Поэтому часто используются клейкие изоляторы.

Использование MSP430 для измерения емкости датчика прикосновений

Теперь рассмотрим два метода измерения емкости датчика прикосновений.

Метод измерения на основе осциллятора

Первый метод основан на использовании осциллятора. Реализовать этот метод можно на базе MSP430, с использованием его компаратора и емкостного датчика в качестве элемента настройки. Любые изменения емкости датчика приведут к изменению частоты, которая может быть измерена с помощью таймера Timer_A микроконтроллера MSP430. На рисунке 5 показан пример такой системы.

Рис. 5.

Резисторы R создают опору для компаратора, когда на Px.y установлен высокий уровень. Этот сигнал противоположен по полярности сигналу зарядки или разрядки емкости датчика (C sensor), что приводит к длительным осцилляциям. При равных значениях сопротивления R граничные значения составляют 1/3 V cc и 2/3 V cc , частота осцилляций вычисляется по формуле:

f OSC = 1/

Подсчитав число периодов осцилляций в течение заданного промежутка времени, можно вычислить частоту и измерить емкость. В рассматриваемом приложении сопротивление резистора R C составляет 100 кОм. В результате частота осцилляций равна приблизительно 600 кГц при емкости датчика 10 пФ.

В качестве источника тактового сигнала используется интегрированный 12 килогерцовый VLO. Этот сигнал подается на сторожевой таймер WDT. С каждым прерыванием сторожевого таймера ядро анализирует состояние регистра таймера Timer_A, TAR. Вычисляется разница двух последних значений регистра. В реальности абсолютное значение емкости не нужно, интересно только ее изменение.

Возможно построение системы с несколькими емкостными датчиками. Для этого требуется построение мультиплексора на компараторе Comparator_A+ (рисунок 6).

Рис. 6.

Для реализации системы требуется по одному резистору на каждый датчик и три резистора для компаратора.

Метод измерения емкости на основе резистора

Второй метод измерения емкости датчика прикосновений основан на использовании внешнего резистора для зарядки или разрядки емкостного датчика. Для зарядки или разрядки используется один из портов MSP430, время заряда или разряда измеряется с помощью встроенного таймера Timer_A. На рисунке 7 изображен пример системы с использованием микроконтроллера MSP430 для измерения времени разряда конденсатора.

Рис. 7.

При значении емкости C sensor = 10 пФ и R = 5,1 М время разрядки составляет около 250 мкс. Px.y конфигурируется как выход с высоким уровнем для зарядки конденсатора. Он может быть переконфигурирован как вход, для разряда C sensor через R. Максимальный ток через порт MSP430 составляет ±50 нА.

Если порт Px.y поддерживает работу с прерываниями (у MSP430 это порты P1.x и P2.x), внутренний сигнал низкого уровня может использоваться как порог, при достижении которого они генерируются. При получении этого прерывания, ядро анализирует содержимое регистра таймера Timer_A. Таймер может использовать в качестве источника тактового сигнала внутренний DCO. Частота генерируемого сигнала при этом составляет 8 или 16 МГц (в зависимости от семейства MSP430).

Рис. 8.

На рисунке 8 показан один измерительный цикл. Таймер начинает отсчет с нуля и в момент, когда напряжение на датчике достигает порога V IT , значение таймера считывается. Также таймер может работать в режиме постоянного счета, при этом нужно производить считывание его значений в момент начала и конца разряда конденсатора и вычислять их разницу. При увеличении емкости датчика возрастает время разряда конденсатора и увеличивается число циклов таймера за время измерения.

Выше говорилось, что для каждого порта нужен один резистор. Схему можно упростить, если использовать один резистор для двух портов. Во время измерения емкости одного из датчиков порт, подключенный ко второму должен иметь низкий уровень сигнала, т.е. служит заземлением для разрядки емкости. Другое достоинство такой схемы в том, что емкость каждого датчика может быть измерена в двух направлениях: зарядка от нуля до высокого уровня и разрядка от V cc до порога низкого уровня. На рисунке 9 показан этот метод.

Рис. 9.

Подсчет тактов нужно производить два раза: во время заряда и разряда. При этом шум 50/60 МГц оказывает меньше влияния на результат измерения.

Программное обеспечение

После того как результат измерения получен, его нужно программно интерпретировать. Шум источника питания, сдвиг частоты синхронизации, внешние 50/60 МГц шумы могут привести к неправильному принятию решения.

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

Отслеживание базовой емкости датчика

Без возможности динамически отслеживать изменения емкости датчика, всякого рода нестабильности могут привести к ложному обнаружению нажатия кнопки или ее «залипания». Рассмотрим вариант с простой кнопкой, которая имеет два состояния: включена/выключена. В случае если результат смещается, он может приблизиться к порогу, при достижении которого кнопка считается нажатой, то есть произойдет ложное срабатывание.

Один из методов отслеживания и подстройки базовой емкости показан на рисунке 10.

Нужно обратить внимание на то, что эти действия выполняются для каждого датчика отдельно. Вычисление переменной "Delta" и подстройка "base" производится по-разному в RO- и RC-алгоритмах. В RO измеренное значение уменьшается, когда емкость конденсатора увеличивается; а в RC измеренное значение увеличивается.

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

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

Рис. 10.

Реализация функции обычной кнопки

Построение кнопок является самым распространенным вариантом использования емкостных датчиков. На рисунке 11 дан пример построения системы с четырьмя кнопками.

Рис. 11.

Порог, при котором принимается решение, что кнопка нажата, должен быть выше шумов.

Реализация функции слайдера

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

Самый простой вариант построения слайдера можно организовать, если для каждого датчика определить несколько позиций. В примере, приведенном ниже (рисунок 12), рассматривается система, в которой для каждого датчика определено 16 позиций. В результате получается 64-позиционная система.

Рис. 12.

В качестве DELTAMAX выбирается максимальное значение емкости, которое может быть достигнуто. Затем производится деление диапазона от 0 до DELTAMAX на определенное число шагов Steps. Ноль соответствует случаю, когда кнопка не нажата. По максимальному значению определяется положение пальца. Более линейная передаточная характеристика системы достигается с помощью интерполяции значений всех датчиков.

Мультиплексирование датчиков для построения слайдера

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

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

Рис. 13.

Заключение

В статье рассмотрены два метода реализации емкостных датчиков прикосновения с использованием MSP430. Каждый из методов имеет свои достоинства и недостатки. Рассмотрим основные из них.

  • Метод на основе осциллятора:

— Требуется микроконтроллер с компаратором Comp_A+;
— Число независимых датчиков ограничено количеством входов Comp_A+;
— Требуется один внешний резистор R на каждый датчик, а также цепь из трех R;
— Чувствительность ограничена потреблением мощности (программируемое время измерения);

  • Метод на основе резистора:

— Может быть реализован на любом микроконтроллере MSP430;
— До 16 независимых датчиков (16 портов ввода/вывода, работающих с прерываниями);
— Один внешний резистор R на каждые два датчика;
— Чувствительность ограничена максимальной частотой микроконтроллера (фиксированное время измерения);
— Минимальное потребление энергии;

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

Полное описание различных примеров применений MSP430, исходные тексты программ, дополнительную информацию можно найти на сайте www.сайт в разделе, посвященном микроконтроллерам.

Получение технической информации, заказ образцов, поставка —
e-mail:

Новое семейство тактовых генераторов

Компания Texas Instruments представила семейство программируемых тактовых генераторов, имеющих от 1 до 4 схем ФАПЧ. ИС позволяют генерировать до 9 тактовых сигналов, синтезируемых из одной входной частоты. Каждый выход поддерживает внутрисистемное программирование частоты до 230 МГц. Перечисленные особенности предоставляют ряд преимуществ. В их числе — пониженное потребление, более быстрый процесс проектирования и простота изменения тактовых частот без необходимости повторного проектирования системы. Эти преимущества позволят существенно снизить стоимость потребительских приложений, в т.ч. IP ТВ-приставок, IP-телефонов, цифровых медиасистем (цифровые телевизоры, устройства с потоковыми медиаданными, принтеры, навигационные системы и портативные устройства).

Новые тактовые генераторы оптимизированы на работу совместно с процессорами DaVinci TM (TI) для генерации тактовых сигналов цифровых процессоров, аудио АЦП или кодеков, а также контроллеров Ethernet или USB. Встроенный кварцевый генератор, управляемый напряжением (VCXO) позволяет выполнить частотную синхронизацию различных потоков данных.

Состав нового семейства тактовых
генераторов
Наименование ФАПЧ Выход, В
CDCE949 4 2,5/3,3
CDCE937 3 2,5/3,3
CDCE925 2 2,5/3,3
CDCE913 1 2,5/3,3
CDCEL949 4 1,8
CDCEL937 3 1,8
CDCEL925 2 1,8
CDCEL913 1 1,8
О компании Texas Instruments

О том, как прикрутить к микроконтроллеру ёмкостный сенсор прикосновения. Эта идея показалась мне довольно перспективной, некоторым приборам сенсорные клавиши подошли бы куда лучше механических. В этой статье я расскажу о своей реализации этой полезной технологии на основе отладочной платы STM32 Discovery.

Итак, только начав осваивать STM32, я решил в качестве упражнения добавить устройству способность определять прикосновения. Начав разбираться с теорией и практикой по вышеупомянутой статье, я повторил схему товарища "a. Она работала идеально, но мне, любителю минимализма, захотелось её упростить, избавившись от лишних элементов. Лишними на мой взгляд оказались внешний резистор и дорожка к питанию. Всё это уже есть в большинстве микроконтроллеров, в том числе в AVR и в STM32. Я имею в виду подтягивающие резисторы портов ввода/вывода. Почему бы не заряжать пластинку и наши пальцы через них? В ожидании подвоха я собрал на макетке схему, которая, к моему удивлению, заработала с первого же раза. Собственно говоря, схемой это называть даже смешно, ведь всё что нам нужно - это просто подсоединить контактную пластинку к ножке отладочной платы. Всю работу на себя возьмёт микроконтроллер.

Что же из себя представляет программа? Во первых две функции:
Первая выводит на ножку сенсора (нулевой пин регистра C) логический «0»

Void Sensor_Ground (void) { GPIOC->CRL = 0x1; GPIOC->BRR |= 0x1; }

Вторая настраивает тот же вывод на вход, с подтяжкой к питанию.

Void Sensor_InPullUp (void) { GPIOC->CRL = 0x8; GPIOC->BSRR |= 0x1; }

Теперь в начале цикла опроса вызовем Sensor_Ground(), и подождём некоторое время чтобы разрядить на землю весь остаточный заряд на сенсоре. Затем обнулим переменную count, которой будем считать время зарядки сенсора и вызовем Sensor_InPullUp().

Sensor_Ground(); Delay(0xFF); //простой пустой счётчик count = 0; Sensor_InPullUp();

Теперь сенсор начинает заряжаться через внутренний подтягивающий резистор номиналом порядка десятков КОм (30..50КОм у STM32). Постоянная времени такой цепи будет равняться считанным тактам, поэтому я поменял кварцевый резонатор на отладочной плате на более быстрый, 20МГц (кстати, я не сразу заметил, что оказывается на STM32 Discovery кварц меняется без пайки). Итак считаем такты процессора, пока на входе не появится логическая единица:

While(!(GPIOC->IDR & 0x1)) { count++; }

После выхода из этого цикла в переменной count будет храниться число, пропорциональное ёмкости сенсорной пластинки. В моём случае с чипом на 20МГц значение count равняется 1 при отсутствии нажатия, 7-10 при самом лёгком касании, 15-20 при нормальном прикосновении. Остаётся лишь сравнить её с пороговым значением и не забыть снова вызвать Sensor_Ground(), чтобы к следующему циклу опроса сенсор уже был разряжен.
Полученной чувствительности хватает для уверенного определения прикосновений к голым металлическим площадкам. При прикрытии сенсора листом бумаги или пластика чувствительность падает в три - четыре раза, хорошо определяются только уверенные нажатия. Чтобы увеличить чувствительность в случае, когда сенсор необходимо прикрыть защитным материалом, можно повысить тактовую частоту микроконтроллера. С чипом серии STM32F103, способном работать на частотах до 72МГц, помехой не будут и миллиметровые преграды между пальцем и сенсором.
По сравнению с реализацией "a, мой подход работает гораздо быстрее (порядка десятка тактов на опрос одного сенсора), поэтому я не стал усложнять программу, настраивая прерывания по таймеру.

Напоследок видео с демонстрацией работы сенсора.

Main.c тестовой программы.

На микроконтроллер

Cпасибо пользователю за очень полезную статью ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery , пользователю за идею и доходчивое теоретическое описание.

UPD. После комментариев "a я решил разобраться с тактированием и обнаружил, что по умолчанию STM32 Discovery настроен на тактовую частоту
(HSE / 2) * 6 = 24 MHz, где HSE - частота внешнего кварца. Соответственно поменяв кварц с 8 на 20 МГц, я заставил бедную STM"ку работать на 60 МГц. Так что во-первых, некоторые из выводов очевидно не совсем верны, во-вторых то чем я занимался может привести к сбоям чипа. На случай таких сбоев в микроконтроллере есть HardFault прерывание, воспользовавшись им, я проверил более высокие частоты. Так вот, сбоить чип начинает только на 70 МГц. Но хотя эту конкретную программу контроллер переваривает на 60МГц, при использовании периферии или работе с Flash памятью он может повести себя непредсказуемо. Вывод: относитесь к данному топику как к эксперименту, повторяйте только на свой страх и риск.

Как известно, — любая металлическая поверхность, например, металлический предмет, пластина или дверная ручка. У сенсоров отсутствуют механические элементы, что в свою очередь придает им значительную надежность.

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

Описание работы сенсорного датчика прикосновения

Функционирование ниже приведенной схемы сенсора основывается на применении имеющегося в домах электромагнитного поля, которое создает размещенная в стенах электропроводка.

Прикосновение к датчику сенсора рукой равносильно подсоединению антенны к чувствительному входу усилителя. В результате этого наведенное сетевое электричество поступает на затвор полевого транзистора, который играет роль электронного переключателя.

Данный сенсорный датчик прикосновения достаточно прост вследствие применения полевого транзистора КП501А (Б, В). Данный транзистор обеспечивает пропускание тока до180 мА при предельном напряжении исток-сток до 240В для буквы А и 200В для букв Б и В. Для защиты от статического электричества на его входе имеется диод.

Полевой транзистор обладает большим входным сопротивлением, и для того чтобы управлять им хватает статического напряжения, которое больше порогового значения. Для данного типа полевого транзистора номинальное пороговое напряжение составляет 1…3 В, а максимально допустимое равно 20 В.

При прикосновении рукой к датчику Е1, степень наведенного потенциала на затворе является достаточной для открывания транзистора. При этом на стоке VT1 будут электрические импульсы продолжительностью 35 мс, и имеющие частоту электрической сети 50 Гц. Для переключения большинства электромагнитных реле необходимо всего 3…25 мс. Для предотвращения дребезга контактов реле, в момент прикосновения, в схему включен конденсатор C2. За счет накопленного заряда на конденсаторе, реле будет включенным даже в тот полупериод сетевого напряжения, когда VT1 будет закрыт. Пока есть прикосновение к датчику сенсора, реле будет во включенном состоянии.

Конденсатор C1 увеличивает помехоустойчивость сенсора к высокочастотным радиопомехам. Менять чувствительность прикосновения к сенсору можно путем изменения емкости C1 и сопротивления R1. Группа контактов К1.1 осуществляет управление внешними электронными устройствами.

Добавив к данной схеме триггер и узел коммутации сетевой нагрузкой можно получить .