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

Texas Instruments CD74HC74

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

Вебинар «Новинки и решения Traco для промышленных и отраслевых приложений» (28.10.2021)

Вывод микропроцессора подключен к тактовому входу последовательного счетчика, имеющего выходы промежуточных каскадов (Рисунок 1). В своей простейшей форме этот конечный автомат состоит из двух D-триггеров, соединенных каскадно, чтобы образовать двухразрядный счетчик со сквозным переносом. Старший значащий бит счетчика (MSB) также подключен к тактовому входу через резистор R1.

Этот простой последовательный счетчик с несколькими выходами, в котором используются два D-триггера, позволяет одному универсальному входу/выходу микропроцессора управлять несколькими светодиодами.
Рисунок 1. Этот простой последовательный счетчик с несколькими выходами, в котором используются
два D-триггера, позволяет одному универсальному входу/выходу микропроцессора управлять
несколькими светодиодами.

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

Процессор может начать определение начального состояния счетчика с выполнения цепочки действий, которую назовем HighClockRead. HighClockRead состоит из последовательной установки на выводе состояний «лог. 1», «лог. 0», «лог. 1» с последующим переключением вывода на ввод и ожиданием порядка микросекунды стабилизации заряда емкости вывода через резистор R1. Затем считывается состояние MSB.

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

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

Эта схема работает, потому что микропроцессор может считывать состояние счетчика и изменять его настолько быстро, что глаз не в состоянии увидеть какие-либо промежуточные состояния светодиодов. Единственные временные требования состоят в том, чтобы задержка в счетчике и время установления RC учитывались процессором. Это требование легко выполняется.

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

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

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

  1. Datasheet Texas Instruments CD74HC74

Electronic Design

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

На английском языке: Simple Technique Drives Multiple LEDs From One Processor Pin

Изготовление 1-4 слойных печатных плат за $2

32 предложений от 24 поставщиков
IC: цифровая; D триггер; Каналы: 2; HC; SMD; SO14; Упаковка: туба
CD74HC74M96
Texas Instruments
3,51 ₽
T-electron
Россия и страны СНГ
CD74HC74M96
Texas Instruments
6,58 ₽
DIP8.RU
Россия и страны ТС
CD74HC74M
Texas Instruments
44,99 ₽
CD74HC74EE4
Texas Instruments
по запросу
Запись вебинара «Микросхемы для защиты цепей питания: ограничители всплесков напряжения и тока, контроллеры горячей замены, идеальные диоды»
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Зачем такие сложности, когда можно просто хранить состояние счетчика во внутренней памяти микропроцессора.
  • Можно на вход сбросов триггеров поставить RC цепочку, конденсатор - к общему проводу, а резистор - к питанию. Тогда при подаче напряжения триггеры первоначально будут установлены в состояние низкого уровня, а состояние регистра можно хранить в памяти процессора. Это проще.