Клеммные колодки Keen Side

Малопотребляющий двухпроводный интерфейс клавиатуры 4х4

Texas Instruments MSP430F112

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

КОМПЭЛ представляет техническое руководство по выбору компонентов Hongfa для зарядных станций

Двухпроводный интерфейс резистивного делителя напряжения кодирует положение нажатой клавиши клавиатуры 4 × 4.
Рисунок 1. Двухпроводный интерфейс резистивного делителя напряжения
кодирует положение нажатой клавиши клавиатуры 4 × 4.

Для выполнения обоих требований в схеме на (Рисунке 1) используются матричная клавиатура и резисторная цепь, разделенная на две секции строк и столбцов. Для кодирования любой нажатой клавиши клавиатуры 4 × 4 достаточно семи резисторов, при этом схема потребляет энергию только во время нажатия клавиши. И наоборот, при отсутствии нажатых клавиш ток в режиме ожидания приближается к нулю. Используя резисторы только двух номиналов, пусть RA = RB = RC = R1 и RD = RE = RF = RG = R2. Присвоив адресам x и y клавиш значения от нуля до трех, для любой замкнутой клавиши можно рассчитать напряжение на резисторе RG с помощью следующей формулы:

Питание резисторных цепочек опорным напряжением АЦП VREF позволяет выполнять логометрическое преобразование, исключающее ошибки декодирования клавиш, обусловленные флуктуациями VREF. Следующая формула описывает коэффициент деления напряжения r(x,y) для любого нажатия клавиши:

Отношение p = R1/R2 представляет собой соотношение сопротивлений резисторов групп строк и столбцов. Для p = 4 нужно в диапазоне [1/16, 1] рассчитать 16 значений r(x,y) как функцию позиции нажатой клавиши. Как правило, минимальная разница между коэффициентами деления r имеет место для ключей с близкими индексами x,y, таких как (3,2) и (3,3). Для N-разрядного АЦП и отношения p = 4 АЦП должен иметь разрешение, удовлетворяющее следующему неравенству:

Обратите внимание, что величина, обратная 240 (0.0041…), превышает обратную величину 28, поэтому для схемы требуется АЦП с разрешением не менее 8 бит (N ≥ 8 бит). 

К сожалению, компоненты со стандартными допусками номиналов T не могут обеспечить идеального выполнения этого неравенства. Вместо этого вычисляется разность коэффициентов деления d = r(3,2) – r(3,3) для наихудшего случая. Наименьшее значение d имеет место при минимальном значении RG и RD и максимальном значении RA, RB, RC, RE и RF. Можно учесть сопротивления всех резисторов и определить общее отношение p для номинальных значений R1 и R2:

Одно и то же значение T применяется ко всем резисторам. Если n = 8 и p = 4, предыдущее неравенство дает решение T < 0.018, что указывает на возможность правильной кодировки 16 клавиш с помощью резисторов, имеющих допуск ±1%. Более того, если теперь принять выбранный фиксированный допуск T, можно решить неравенство, чтобы получить требуемый предел отношения p сопротивлений R1 и R2. Если T = 0.01, решением неравенства становится p < 4.074.

В схеме на Рисунке 2 используется микропроцессор Nitron MC68HC908QT4 компании NXP, который служит испытательным стендом для клавиатуры, основанной на вычисленных выше номиналах резисторов, а в качестве опорного напряжения резисторной матрицы VREF использует напряжение питания VCC. Чтобы выполнить требование для p (4.074 > p > 4), следует использовать резисторы со стандартными сопротивлениями из ряда E48 и допусками ±1%: R1 = 10 кОм и R2 = 40.2 кОм.

Использование аналогового выхода опорного напряжения микроконтроллера и логометрического аналого-цифрового преобразования обеспечивает правильное кодирование клавиатуры.
Рисунок 2. Использование аналогового выхода опорного напряжения микроконтроллера
и логометрического аналого-цифрового преобразования обеспечивает
правильное кодирование клавиатуры.

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

Таблица 1. Выходные коды при нажатии одной клавиши
Нажатая клавиша/сопротивление (Ом)
X
Y   3 2 1 0
3 1/15…16 2/21 3/32 A/63…64
2 4/17 5/23 6/36 B/85
1 7/18 8/25 9/42 C/127
0 */19 8/28 #/51 D/255
Пимечание. Символы перед косой чертой соответствуют
обозначениям клавиш клавиатуры.

Если приложению требуется микроконтроллер, в котором отсутствует внутреннее прерывание, генерируемое АЦП, к выходу VOUT схемы на Рисунке 1 можно подключить внешний компаратор. Порог срабатывания компаратора надо установить ниже наименьшего возможного выходного напряжения, в данном примере – напряжения VREF, деленного на 16, и выход компаратора будет служить источником прерывания клавиатуры для микроконтроллера.

Таблица 2. Выходные коды при нажатии двух клавиш
Нажатые клавиши Сопротивление (Ом)
C+# 141…142
C+0 134…135
C+* 132
B+# 109
B+0 98
B+9 91
B+8 88
A+8 76
A+7 70…71
A+6 68

Обратите внимание, что микроконтроллеры с 10-разрядными АЦП, такие как NXP MC68HC908QB или Texas Instruments MSP430F11, могут обслуживать матрицу клавиатуры из пяти строк и шесть столбцов с 10 кодирующими резисторами. Повторный анализ показывает, что правильно кодировать ключи позволяют отношение p сопротивлений строк и столбцов от 5 до 5.51 и допуск номиналов резисторов менее 4.3%. Можно использовать однопроцентные резисторы из ряда E48 с номиналами 10 кОм для R1 и 51.1 кОм или 53.6 кОм для R2.

Ссылки

  1. Amorim, Vitor, and J Simões, "ADC circuit optimizes key encoding," EDN, Feb 4, 1999, pg 101

Материалы по теме

  1. Datasheet Texas Instruments MSP430F112
  2. Datasheet NXP MC68HC908QY1

EDN

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Two-wire, four-by-four-key keyboard interface saves power

29 предложений от 25 поставщиков
Микросхема Микроконтроллер, MCU 16Bit MSP430 RISC 4KB Flash 2.5V/3.3V 20Pin TSSOP
ChipWorker
Весь мир
MSP430F112IPW
Texas Instruments
54 ₽
Элитан
Россия
MSP430F112AIPW
Texas Instruments
268 ₽
MSP430F112IPW
Texas Instruments
от 474 ₽
МосЧип
Россия
MSP430F112IPWR
Texas Instruments
по запросу
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя