Муфты электромонтажные от производителя Fucon
РадиоЛоцман - Все об электронике

Мультиплексирование сигналов клавиатуры и сегментных индикаторов. Чарлиплексирование

Maxim ICM7218

Aubrey Kagan

Embedded

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Еще где-то году в 1982 меня попросили спроектировать изделие с 72 отдельными светодиодами (Рисунок 1). Я решил проблему, воспользовавшись микросхемой ICM7218, позволявшей индивидуально управлять восемью 7-сегментными индикаторами, так что я просто работал с одним светодиодом как с одним из сегментов. Восемь оставшихся светодиодов, если я правильно помню, управлялись с помощью микроконтроллера. Для этого потребовалось бы до 24 выводов микросхемы.

Мультиплексирование сигналов клавиатуры и сегментных индикаторов. Чарлиплексирование
Рисунок 1. Устройство на основе микроконтроллера 8051 с 72
светодиодами, сгруппированными в матрицу – красное
пятно, которое вы видите посередине платы.

Как назло, решение, которое могло бы мне помочь, появились намного позже того, как я завершил проект. Чарлиплексирование было предложено в 1990-х годах (по-видимому, его корни зародились совсем незадолго до этого) Чарли Алленом (Charlie Allen) из компании Maxim. В то время оно взбудоражило мир электроники, откликнувшийся публикацией множества конструкторских решений, основанных на этой концепции.

Мультиплексирование сигналов клавиатуры и сегментных индикаторов. Чарлиплексирование
Рисунок 2. Три линии управляют шестью светодиодами
методом чарлиплексирования.

Идея чарлиплексирования заключалась в использовании на линиях ввода/вывода биполярных драйверов, чтобы каждый вывод мог как отдавать, так и принимать ток. Но линия ввода/вывода может быть еще и «выключена», когда находится в высокоимпедансном состоянии, или в режиме чтения. Проанализировав простую схему на Рисунке 2, мы увидим, что если на линии P0 присутствует высокий логический уровень (ток вытекает), а на линии P1 – низкий (ток втекает), и P2 находится в высокоимпедансном состоянии, светодиод DS1 загорится. Всего здесь возможны шесть вариантов, показанных в Таблице 1.

Таблица 1. Возможные комбинации.
P0 P1 P2 Включается светодиод
1 0 Z DS1
0 1 Z DS2
1 Z 0 DS5
0 Z 1 DS6
Z 1 0 DS3
Z 0 1 DS4
*) Z – состояние высокого импеданса

Ток светодиодов нужно ограничивать, и в случае, когда все они одного типа, будет достаточно трех резисторов, показанных на Рисунке 2. Если же вы используете разные светодиоды, тогда каждому светодиоду будет нужен свой последовательный резистор. Электрические свойства светодиодов гарантируют, что они не выдут из строя, и засветится только один. Обратное напряжение на любом светодиоде ограничено прямым напряжением параллельного светодиода, и не выйдет за пределы максимально допустимого значения. Когда p-n переходы двух последовательно соединенных светодиодов смещены в прямом направлении, напряжение на них ограничивается подключенным параллельно одиночным светодиодом, и для включения пары напряжения будет недостаточно.

Количество светодиодов, которыми позволяет управлять эта технология, рассчитывается как N × (N–1), где N равно числу линий. Но это не совсем то, что нужно, поскольку на самом деле вам интересно знать обратное – сколько линий потребуется для заданного числа светодиодов. Я не стану говорить, что вам придется решать квадратные уравнения, но вместо этого для небольших чисел покажу нужные соотношения в Таблице 2.

Таблица 2. Соотношение между количеством линий, количеством
светодиодов и скважностью для каждого светодиода.
Количество линий 2 3 4 5 6 7 8 9 10
Количество светодиодов, N 2 6 12 20 30 42 56 72 90
Скважность, (1/N) 50% 16.7% 8.3% 5% 3.3% 2.4% 1.8% 1.4% 1.1%

Я подумал про себя, почему бы не расширить схему на большее количество линий, а затем… засомневался. Как бы вы подошли к решению этой задачи? Я отправился на поиски в Интернет и набрел на этот метод [2], который и реализовал с помощью шести выводов.

Нарисуем сначала линии с резисторами, горизонтально выходящие из микросхемы. Затем к первой линии добавим диодные пары в количестве N–1 (в данном случае пять), как показано на Рисунке 3а.

Мультиплексирование сигналов клавиатуры и сегментных индикаторов. Чарлиплексирование
Рисунок 3а. Шесть линий микросхемы и пять светодиодных
пар на первой линии.

Будем копировать светодиодные пары вниз на каждую линию, каждый раз уменьшая количество пар справа, и получим схему, изображенную на Рисунке 3б.

Мультиплексирование сигналов клавиатуры и сегментных индикаторов. Чарлиплексирование
Рисунок 3б. Копируя светодиодные пары, сокращаем их
количество справа по диагонали.

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

Мультиплексирование сигналов клавиатуры и сегментных индикаторов. Чарлиплексирование
Рисунок 3в. Законченное аппаратное решение для чарлиплексирования.

В руководстве по применению [3] компании Maxim показано, как подключать 7-сегментные индикаторы с общим катодом.

Конечно же, чарлиплексирование – не панацея. Как вы можете видеть в Таблице 2, скважность становится очень маленькой. Само по себе это не страшно, но увеличение импульсного тока, необходимое для того, чтобы сохранить заданный уровень яркости, может загнать вас в угол, когда вы столкнетесь с предельно допустимыми режимами светодиодов, что мы уже обсуждали в предыдущей статье [1]. Однако ограничивающим фактором могут оказаться не характеристики светодиодов, а выводы микроконтроллера, нагрузочной способности которых будет недостаточно, чтобы отдавать и принимать требуемый ток. Улучшить ситуацию можно с помощью дополнительных аппаратных средств, описанных в статьях [4] и [5].

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

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

Мультиплексирование сигналов клавиатуры и сегментных индикаторов. Чарлиплексирование
Рисунок 4. Знакомая конфигурация чарлиплексирования
для переключателей.

Все линии должны быть подтянуты к питанию посредством задания соответствующей конфигурации портов или с помощью внешних резисторов. Микроконтроллер поочередно настраивает каждую линию на вывод, в то время как остальные конфигурируются входами. Каждый выход, в свою очередь, опускается в «0», а затем ищутся входы, на которых установился низкий логический уровень. Пара вход/выход позволяет определить позицию нажатой кнопки.

В этой серии статей мы рассмотрели несколько методов сокращения количества выводов при сканировании переключателей и управлении светодиодами. Мир стал более сложным, и сегодня уже есть многоцветные светодиоды. Одно из решений, сокращающих число линий ввода/вывода, основано на использовании сдвигового регистра WS2811 компании Worldsemi и описано в [6]. А можете ли вы предложить другие методы? Будете ли вы использовать чарлиплексирование в будущем?

Ссылки

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

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

На английском языке: Keyboard and display multiplexing - Charlieplexing

37 предложений от 27 поставщиков
Драйвер дисплея, ЖКД 8 знаков, 7 сегментов, 4В до 6В питание, параллельный интерфейс, PLCC-28
EIS Components
Весь мир
ICM7218DIQI
Maxim
75 ₽
Akcel
Весь мир
ICM7218CIJIR5254
от 206 ₽
Элитан
Россия
ICM7218CIJI
1 381 ₽
ТаймЧипс
Россия
ICM7218RIPI
Maxim
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя