Мультиплексирование когда-либо превосходит Чарлиплексирование?

17

Я рассмотрел два метода, и мультиплексирование действительно имеет только одно преимущество: легче отследить неисправный светодиод, чем в массиве Charlieplex.

Может ли кто-нибудь более знающий объяснить другие компромиссы?

Крис Б. Беренс
источник

Ответы:

26

Да, мультиплексирование и чарлиплексирование имеют свои преимущества и лучше всего подходят для различных задач.

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

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

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

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

Во-вторых, убийцей является то, что для чарлиплексирования обычно требуются драйверы с тремя состояниями. Однако мультиплексирование выполняется со строгой двоичной логикой включения-выключения. Если у вас микроконтроллер с низким числом выводов и вы хотите управлять большим количеством светодиодов, то просто использовать внешние логические микросхемы (например, сдвиговый регистр и / или драйверы светодиодов) для управления осями X и Y. Большинство микросхем регистра сдвигового регистра не поддерживают тристатирование, необходимое для того же действия в массиве Чарлиплекса. Доступны специальные драйверы Charlieplexed, но они не так универсальны.

В-третьих, в массиве Charlieplexed каждый вывод, который не активно что-то делает, все еще подключается к светодиодам через слабое («высокое сопротивление») соединение. И хотя соединение слабое, оно ненулевое. Предположим, что у вас есть 25 выводов ввода / вывода, подключенных к сетке светодиодов. Если вы зажжете один светодиод - взяв одну из этих 25 линий высотой и одну из этих 25 линий низко, это оставит 23 линии с высоким импедансом. В каждом месте, где высокая линия ввода / вывода проходит через светодиод к нейтральной линии, есть некоторая возможность утечки тока. Немного. Может быть, микроампер здесь или там. Но с современными, эффективными светодиодами этого часто достаточно, чтобы создать видимые побочные эффекты.

В-четвертых, управлять яркостью светодиодов в массиве Чарли сложно. В мультиплексированном массиве вы можете использовать любое количество общедоступных микросхем светодиодов драйвера для регулирования тока, которые регулируют яркость каждого столбца в отдельности, используя регулировку тока в сочетании с драйвером ШИМ. В той степени, в которой местоположения матрицы Чарлиплекса адресуются индивидуально и используют только резистор на строку или столбец, гораздо труднее выполнить точечную коррекцию яркости и полную анимацию градаций серого / цвета в массиве Чарлиплекс.

Уинделл Оскай
источник
1
Хорошо читать. Обеспечивает некоторое понимание ваших пегги дизайнов ...
NickHalden
Просто купил тусклые обычные светодиоды, но ореолы все еще являются проблемой. Лучше ли использовать резистор для каждого светодиода вместо каждой линии? Я вожу 6 светодиодов с использованием Attiny85. Раньше я использовал резисторы 330 Ом для каждой линии, а теперь я использую 1K. В 1K нагрузка меньше, но все же есть, также светодиоды не такие яркие, как при 330 Ом, конечно. Так лучше ли, чтобы у каждого светодиода был собственный резистор, чтобы устранить это?
Codebeat
3

Наиболее существенным недостатком светильников "Charlieplexing" является то, что он ограничивает количество светодиодов, которые можно использовать с n-way мультиплексированием, до n (n-1). Я не вижу требования к драйверу с тремя состояниями как большую проблему с техникой в ​​целом. Конечно, необходимость использования двух обычных драйверов вместо драйвера с тремя состояниями уменьшит выгоду от CharliePlexing, но в некоторых случаях преимущества все же могут остаться (например, это может уменьшить количество соединительных проводов между панелью с драйверами и панелью с огни или выключатели).

Что касается коммутаторов Charlieplexing, в статье Википедии не упоминается самый большой недостаток: Charlieplexing не позволяет контроллеру пассивно ожидать нажатия кнопки. С другой стороны, он слишком пессимистичен в отношении требований к компонентам. В 1997 году я выпустил устройство, которое сканирует восемь кнопок с использованием трех выводов ввода-вывода и одного вывода только для ввода на PIC12C508, без необходимости в каких-либо внешних диодах или других компонентах, кроме IIRC, подтягивания для вывода PIC, который не иметь один встроенный; При таком подходе можно было бы обработать десять кнопок с добавлением другого подтягивающего резистора (для другого вывода ввода / вывода, у которого его нет), но клиенту нужно всего восемь кнопок, поэтому в этом не было необходимости.

Supercat
источник
У вас есть схема этого где-то в сети?
Codebeat
@ Erwinus: Все провода от процессора получают подтягивание. Подключите переключатель к каждой возможной паре проводов (так, если есть четыре провода, это будет шесть переключателей; если пять проводов, 10; если шесть, семь или восемь, 15, 21 или 28). Подключите переключатель между каждым проводом и землей (один дополнительный переключатель на провод).
суперкат